Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выбор интерфейса для монитора SLA на ATtiny25.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
kv_addr
Вкратце об устройстве.
Монитор предназначен для контроля состояния аккумуляторной батареи 12 В емкостью от 50 до 100 А*ч.
В процессе разряда аккумулятора ведется контроль напряжения и отданого нагрузке количества электричества (фактическая емкость). Предусмотрена аварийная сигнализация о почти полном разряде и индикация уровня заряда по требованию (кнопка) - "полный/половина/на исходе". Регистрируется также количество циклов заряд/разряд.
В процессе зарядки зарядное устройство считывает данные с монитора, оценивает состояние аккумулятора, заряжает. Контроллер на ЗУ тоже AVR.

Возник вопрос выбора итерфейса. В контроллере монитора для этого есть свободной только одна линия порта. Т.е. в любом случае нужен однопроводный интерфейс. Требования к нему весьма простые - переслать несколько байтов на малой скорости на расстояние 1-1,5 метра по одному проводу.

Сразу же вроде бы напрашивается 1-wire. Тем более, опыт работы с различными далласовским устройствами есть. Точнее, напрашивается эмуляция 1-wire slave устройства, коим будет монитор. Даже встречал реализацию подобного. Но, вроде как это не есть самым оптимальным решением, существуют и иные однопроводные интерфейсы. Хотя бы тот же LIN, с которым на практике до сих пор дела не имел, но немного о нем знаю. Возможно существуют еще простые однопроводные интерфейсы? Не мог бы кто подсказать, что еще из такого имеется? Достаточно, чтобы были только один master и один slave.

В любом случае реализация будет только софтовой, потому как только одна нога под это свободна, контроллер только восьминогий, т.е. tiny25, в крайнем случае - tiny45. Зато в момент обмена контроллера монитора с контроллером ЗУ мониторному контроллеру заниматься будет больше нечем, кроме как обменом данными, и под это можно задействовать либо один, либо оба таймера.
prottoss
Сделате софтовый USART. Одной ноги и для приема и для передачи хватит и для мастера и для слэйва. Лишь бы памяти программ хватило sm.gif
kovigor
Цитата(kv_addr @ Apr 2 2011, 14:23) *
В любом случае реализация будет только софтовой, потому как только одна нога под это свободна, контроллер только восьминогий, т.е. tiny25, в крайнем случае - tiny45.


Обычный чисто программный UART, работающий под управлением мастера. Мастер вызывает слэйв и передает ему команду, который постоянно слушающий линию слэйв должен выполнить. Затем мастер переключается на прием и ждет данных от слэйва. Как-то так ...
kv_addr
Цитата(prottoss @ Apr 2 2011, 15:13) *
Сделате софтовый USART. Одной ноги и для приема и для передачи хватит и для мастера и для слэйва. Лишь бы памяти программ хватило sm.gif

Спасибо за вовремя поданый совет, это как раз тот случай, когда чем проще, тем лучше.
В принципе, склоняюсь к этому, особо мудрить незачем. Поскольку никакой специальной привязки ни к чему нет, софтовый UART и WAKE вполне пройдут. В два килобайта все должно бы преспокойно вложиться. В крайнем случае возьму tiny45.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.