1 PIN -коммуникация

DM3YAB
Чт, 8 ноября 2018 г. 18:03
Мон,
Я ищу 1 одно пин -связь между Attiny45 и STM32Duino.
Задача Аттини
1.) Сон (7 мкА),
2.) Режим ожидания; спать через 5 минут (просыпайтесь на низком уровне int0),
3.) Управление напряжением батареи / управление зарядом / STM32 & Устройства управление мощностью.

Теперь у меня есть PIN -конец, чтобы общаться с STM32F103C8.
Протокол-вопросы:
СТМ > Attiny: напряжение аккумулятора ? Аттини > STM: напряжение [3300]
Протокол-командир:
СТМ > Аттини: Станабди ! (Attiny Sleep, пока не проснется на низком уровне int0)
СТМ > Аттини: Сон ! (Attiny Sleep; до сброса с помощью USB Plug In)
СТМ > Attiny: сбросить режим ожидания (режим сохранения питания)
Аттини > STM: батарея до минимума
Аттини > STM: выключится

Связь медленно и редко (каждые 4 минуты режима резервного режима сброс)
Тот же булавка должна получить и отправлять. Но получай только, а затем отправьте ответ.

Что невозможно: softserialintap :( ; Softserialintcc :( ; Softwareseriesstm32 (USB 48 МГц) :?
Программное обеспечение и программное обеспечение

Кто -нибудь когда -либо создавал такое общение ? (Google молчит по этой теме.)
Неважно, последовательно, один провод, Манчестер & Сопутствующий. Это должно работать одинаково для обоих (Attiny/STM32).

VY 73 Андреас

Rogerclark
Чт, 8 ноября 2018 г. 8:18 вечера
Существует протокол под названием OneWire, который, я думаю, мог быть разработан Dallas Semiconductor.

Я думаю, что есть мастер -библиотека OneWire для STM32, но не рабская библиотека.

Однако я думаю, что у AVR есть библиотека Мастера и Рабов

Вы можете попробовать использовать это. Но я думаю, что он использует подтягивания, поэтому не может быть разработан для низкого использования мощности

Martinayotte
Чт, 8 ноября 2018 г., 21:52
Существует также библиотека PJON, хотя у меня никогда не было времени, чтобы попробовать, который предлагает режим SoftwareBang с одной шиной GPIO с подтягиванием, похожим на OneWire, но библиотека предоставляет оба отправителя/получатель.

Маркб
Чт, 8 ноября 2018 г., 22:31
С помощью последовательного программного обеспечения должно быть возможно настройка вывода ввода -вывода в качестве последовательного получения, за исключением коротких периодов, когда узел хочет передавать. Возможно, вы захотите поместить резистор между двумя узлами и иметь уровень проверки протокола для случая столкновений, а также подтягивающего резистора, чтобы сохранить сеть в стабильном состоянии между передачами.

DM3YAB
Вт 13 ноября 2018 г. 5:39
Мойн из озера Констанс,
Спасибо за ваш отзыв.
Я решил использовать Onwire. Библиотека OneWireHub (DS2438) я переписал свои потребности.
Теперь у меня есть -> 8 -битная команда, 16 -битная температура, 16 -битное напряжение, 16 -битный счетчик.
В настоящее время я тестирую, я все еще делаю документальный фильм и пытаюсь сделать это шоу здесь.
VY 73 Андреас

DM3YAB
Пн, 03 декабря 2018 г., 5:45 утра
Мойн из озера Констанс,

Запрос о помощи моего проекта.
Я установил связь между Atmel 328 (Master) и Attiny (Slave), которая работает хорошо. Протокол - это почти одновоенный (без приставания и пауза между каждым символом). Без прерывания с таймером достаточно памяти для оставшихся задач Аттини.
Внедрение 1-проводного протокола http: // www.Техноблога.com/show?1LJD
… Использование открытого или открытого вывода. …. , Но, к счастью, вы сможете достичь того же эффекта Программирование штифта на низком уровне:
Порт = портб & ~ (1<<OneWirepin);
Затем два состояния достигаются путем переключения между входом и выводом. Я предоставил процедуры, которые делают это под названием Pinlow и Pinrelease: if(ledPin = 13) { }

Стивестронг
Пн, 03 декабря 2018 г. 9:45 утра
Используйте GPIOA.

DM3YAB
Пт 21 декабря 2018 г. 9:27 утра
Мон,
После многих тестов, вариаций и неудач я выбрал вариант (для меня), который хорошо работает с Atmel & Pic и STM. Я пишу только важные функции; Остальная часть должна быть запрограммирована с помощью осциллографа (поэтому нет гарантии, что это хорошо для «начинающих».)

Еще раз кратко описание функции:
(Любой) Одиночная общение без прерывания и "навороты".
Отправить байт или получить байт (или больше), не потребляя много памяти.
Требование: PIN должен удерживать с резистором (4.7K) до VDD. [Как onewire.]

Описание для Atmel (attiny45): typedef struct stm32_pin_info { gpio_dev *gpio_device; /**< Maple pin's GPIO device */ timer_dev *timer_device; /**< Pin's timer device, if any. */ adc_dev *adc_device; /**< ADC device, if any. */ uint8 gpio_bit; /**< Pin's GPIO port bit. */ uint8 timer_channel; /**< Timer channel, or 0 if none. */ uint8 adc_channel; /**< Pin ADC channel, or ADCx if none. */ uint8 pinMode; /**< mode specific by pinMode call (Roger Clark added to optimize compatibility with Arduino API*/ } stm32_pin_info;

Zoomx
Пт 21 декабря 2018 г. 10:55 утра
Отличная работа. Мое единственное предложение - изменить имена функций, так как OneWire - это протокол, используемый некоторыми датчиками Далласа и другими устройствами, и уже есть библиотека с этим именем.

Стивестронг
Пт 21 декабря 2018 г., 17:45
задержка микросекунды (..) доступен в ядре Роджера.

DM3YAB
Солнце 23 декабря 2018 г., 6:59
Мон ,
Пожалуйста, проверяйте по случаю: (с осциллографом, пожалуйста !)
void loop () {pinmode (pa8, output); DigitalWrite (PA8, High); задержкамикросекунд (1); DigitalWrite (PA8, Low); задержкамикросекунд (1); }
Или/и
void loop () {pinmode (pa8, output); DigitalWrite (PA8, High); задержкамикросекунд (1); DigitalWrite (PA8, Low); задержкамикросекунд (1); pinmode (pa8, input); задержкамикросекунд (1); }

Пожалуйста, меняйте микросекунд (1-511) и запишите в таблице, как долго ваш STM32 нужен для чего-то.
Теперь разверните свою тестовую программу: добавьте серийный или i2c или spi или, возможно, все вместе. И посмотрите все, что вы написали в первом таблице.
Может быть, еще один: попробуйте выбрать другую доску. Есть некоторые STM32F103, которые имеют. (Нуклео, клен & Сопутствующий.)
Uuuuups больше не подходит ? Ах, да. 5 недель, от 2 до 3 часов в день >> Проверьте, попробуйте, изменяйтесь, изменяйтесь и начните все сначала.
(Я инженер системы, здесь я себя знаю ! (В основном) я говорю что -то только тогда, когда я убежден. Итак, я попробовал это, это случилось со мной так и это повторяется. Я слишком (старый) инженер с высокой частотой. В электронике нас сравнивают с волшебниками/колдунами. Из незаметного времени я должен что -нибудь доказать, это нет Достаточно, если это работает. Я тоже совершаю ошибки, но учиться на них, так что я не непогрешим.)
[Извините за мой английский. Немецкий мой язык. Я надеюсь на английском понятно.]

Серийная скорость USB ?