avrdude, “народный” драйвер и фонари, все просто
Внезапно пришлось поковыряться с ATtiny13a. Смешная микросхемка, но вот так сложилось, что китайцы любят притуливать их в свои фонарики. Килобайт памяти, а какой потенциал 😉
Занудный текст и куски некоего кода – далее по тексту.
Прошивка: http://budgetlightforum.com/node/799 (аккуратно выкусываем-правим 191-ю строчку под свои нужды, отключаем-влючаем режимы, комплируем avr-gcc, и все работает).
114c114
< #undef EXTENDED_MODES
---
> #define EXTENDED_MODES
123c123
< #define MONITOR_BAT
---
> #undef MONITOR_BAT
191c191
< 0x09, 0x06, 0x04, 0x00, 0x00,
---
> 0x03, 0x06, 0x08, 0x00, 0x00,
Дальше:
cd Fixed\ Modes/ && make clean && make
# программатор должен быть подключен ;)
avrdude -c usbasp -p t13 -u \
-U eeprom:w:BLF-VLD.eep \
-U flash:w:BLF-VLD.hex:a \
-U lfuse:w:0x79:m \
-U hfuse:w:0xFD:m
Здесь очень много “вкусного” кода, попытки разобраться продолжаются https://code.launchpad.net/~toykeeper/flashlight-firmware/trunk .
Собственно программатор usbasp, чистокровный китаец, которого пришлось отмывать из пакетика 😉 Распиновка в гугле (usbasp pinout). Нужна еще распиновка ATtiny13 (там же гуглится, attiny13 pinout).
Как устроено. AMC7135 (линейный стабилизатор тока). На ножку PB1 прикручена группа AMC (от 1 до 8 штук, зависит от жадности и хотелок китайца, делающего дизайн драйвера, пиковое потребление соотв. тоже растет до 3А). На ножке – ШИМ. Есть теория разделения AMC на группы, то есть на разные ножки (контроллера). Не пробовал. Управление – только силовая кнопка. Теоретически я рассматриваю вариант тактовой кнопкой (electronic switch). Не пробовал, но хочу попробовать для турбо-режима.
Мораль. Я рад, что мне этим не приходится заниматься на постоянной основе 😉 Программист из меня ни-ка-кой.