Предыстория банальна - у г-на Некта, видимо от скачка напряжения в сети, вылетел блок питания и унёс за собой базу. Не сэкономь iRobot на защитных стабилитронах и предохранителях, может быть обошлось бы малой кровью. А так база выгорела почти полностью - ключевой транзистор, конденсаторы, стабилизатор и собственно контроллер. Так у меня появился повод исполнить давнее желание и досконально разобраться с работой зарядной базы. Результат - "ремонтный" микроконтроллер на ATTiny13, полностью заменяющий родной iRobot-овский. Смотрим картинки:
Схема iRobot compact charger base:Подключение в схему базы "ремонтного" контроллера attiny13:Сверху:Снизу:Собрано для испытаний:Видео испытаний -
https://yadi.sk/i/bNG0Dkj2mUckCЗдесь прошивка и пр. файлы проекта -
https://yadi.sk/d/J6nxn-Y-mUhf6 Установка фьюзов:
Принцип работы зарядной базы iRobot (см.оригинальную схему):
1. Ключ Q5 закрыт, ИК-светодиоды излучают команды, проверяем уровень напряжения на АЦП-входе ADP1. Если контакты базы свободны от робота и прочих НЛО, то на них висит около 3В через D11,R40, а на входе ADP1 около 2.8В - крутимся в п.1.
2. Если на контакты базы приехал робот (эквивалент ~3.3кОм) или на них повесили сопротивление 2.5-18кОм, на входе ADP1 уровень меняется на 0,65-1.7В - выключаем ИК-светодиоды и включаем ключ Q5. В результате напряжение блока питания подаётся на контакты базы, а через тр-р Q1 и р-р R37 вход ADP1 засаживается на землю.
3. Если после включения ключа Q5 уровень на входе ADP1 НЕ меняется с 0,65-1.7В на 0В, это означает аварийную ситуацию (сгоревший транзистор Q5) - все отключаем и часто моргаем светодиодом.
4. Для проверки стоИт ли ещё робот на базе или уехал, 5 раз в секунду (каждые 200 мс) отключаем ключ и проверяем напряжение на входе ADP1. Если около 0,65-1.7В, переходим к п.2. Если больше 1.7В, переходим к п.1.
Вот и весь "протокол"!