Пятница, 26 Апрель 2013 12:00

Модифицируем 8xAMC7135 ATtiny13A LED Driver

Автор 
Оцените материал
(5 голосов)
8xAMC7135 ATtiny13A LED Driver 8xAMC7135 ATtiny13A LED Driver © 2013, Tamagotchi.

Расскажу о моей модификации драйвера светодиодов Nanjg 105C. Оригинальное изделие можно приобрести, например, здесь http://intl-outdoor.com/amc71358-5mode-circuit-board-nanjg-105c-28a-p-216.html. Там-же можно и ознакомится с его характеристиками.

А вот, что может модифицированный драйвер:

1. Четыре режима работы. Переключение как от мощного к слабому, так и от слабого к мощному (в зависимости от варианта прошивки)

  • Максимум  2.1,2.45 или 2.8А (в зависимости от варианта прошивки)
  • 700mА включено 2 шт. 7135
  • 180mА включено 1 шт. и ШИМ
  • минимум 5mA одна 7135 и ШИМ

2. Память режимов. Драйвер помнит режим, в котором был до отключения и включается именно в нем. Возможна прошивка программы без памяти, тогда драйвер включается в одном, зараннее заданном режиме.
3. Защита от дребезга контактов – драйвер не будет хаотично менять режимы и не будет срабатывать защита от разряда аккумулятора.
4. Высасыватель батареи – переключение режимов при достижении на батарее критически низкого напряжения и затем полное отключение фонаря.
5. Индикация напряжения на батарее, включается тремя очень быстрыми кликами кнопки питания.
Полностью заряжено – 5 миганий, разряжено – одно мигание.
6. Термоконтроль: Драйвер переключением режимов снижает ток при перегреве. Если потребуется до полного отключения. Возврат к полному режиму – короткий клик. (Возможна прошивка без этой функции)

Наборы функций в прошивке определяются дефайнами при компиляции:

//#define POW2100VER // Версия с максом 2100mA
//#define POW2450VER // Версия с максом 2450mA
#define POW2800VER // Версия с максом 2800mA
#define NOTHEMP  // без термоконтроля. //Наличие ТК требует программирования RSTDISBL
#define DOWNTOUP // пререключение режимов от минимума до масимума
#define NOMEM // вариант без памяти. Желательно использовать совместно с DOWNTOUP
 

Чтобы залить программа работала в драйвере нужно его немного модифицировать. Режем дорожки в местах, отмеченных стрелками 1 и 2:

Напаиваем 2 перемычки и все – готово. Пора заливать прошивку.

Пример установки фусов в программе PonyProg:

Если Вы компилируете прошивку с опцией термоконтроля, то необходимо дополнительно запрограммировать RSTDISBL. Будьте внимательны, после этого Вы больше не сможете заливать прошивку в МК без высоковольтного программатора или другого устройства для исправления fuse bits.

Если Вас заинтересовал драйвер, я рекомендую прочитать две ветки на сайте fonarevka.ru:

В архиве исходные коды прошивки для AVR-GCC. Для их загрузки необходимо зарегистрироваться на сайте.

Прочитано 19209 раз Последнее изменение Пятница, 26 Апрель 2013 16:17

8 комментарии

  • Комментировать Сергей Воскресенье, 28 Апрель 2013 14:19 написал Сергей

    У меня есть драйвер на PIC контроллере. Но из-за стробоскопа (низкая частота ШИМ) хочу оставить только силовые микросхемы 7135 и заменить его на тиньку.
    Скачал ваш проект, но т.к. никогда раньше не занимался этим, немного трудно разобраться :)
    В v1.5 только ли-он или ли-фе тоже там есть?
    Какие выводы тиньки отвечают за включение мин, среднего и макс режимов?
    Если вам не трудно, могли бы вы удалить из прошивки контроль температуры и проверку заряда батареи (3 коротких нажатия).
    Чтоб осталось отключение при напряжении меньше 3В для ли-он и управление тремя группами 7135.
    С остальным я думаю смогу разобраться.
    Буду пытаться сделать управление тремя микросхемами 7135 вашей прошивкой (диод 3Вт)

  • Комментировать Tamagotchi Понедельник, 29 Апрель 2013 10:09 написал Tamagotchi

    Насколько я помню, у PIC и ATtiny выводы питания не совпадают и просто поменять один на другой не получится. А почему бы не написать программу под уже имеющийся на драйвере МК.

  • Комментировать Сергей Понедельник, 29 Апрель 2013 12:06 написал Сергей

    Во первых вы уже сделали такую прошивку, как бы мне самому хотелось. Изучать язык программирования для того, чтоб сделать фонарик я не готов :)
    Во вторых МК там скорей всего залочен будет, все равно его выпаивать и менять на другой. А так сразу использую атини. Программатор на Атмел куплен. По контактам может и не совпадет, буду проводками соединять.

    Из форума, я так понимаю, мне подойдет версия без термоконтроля и без запоминания режимов (от мин к макс) - 7135x8v1.8_RM_NT_NM_2100.hex
    Вопрос (у меня нет такого драйвера, посмотреть негде), какие ножки МК используются для:
    1) Включения одной 7135 (в том числе ШИМ)
    2) Включения трех 7135
    3) Включения восьми 7135
    Я не пойму, в чем разница между 2100 и 2800 вариантами прошивки. Разве ножки разные используются для включения групп режимов?

  • Комментировать Tamagotchi Понедельник, 29 Апрель 2013 14:46 написал Tamagotchi

    нога 5 соединена с 1 шт. 7135
    нога 2 - 2 шт.
    нога 6 - 5 шт.

    Разница между 2100 и 2800 в том, что на максимальном режиме включено разное количество 7135.

  • Комментировать Сергей Понедельник, 29 Апрель 2013 15:47 написал Сергей

    Спасибо. Использую вашу прошивку для 2800 и
    5 нога - 1*7135
    2 нога 2*7135
    6 нога 1*7135
    По идее токи 1400/700/350/шим 40-6
    Максимум немного больше желаемого, но не на долго для ХМЛ в налобнике пойдет.

  • Комментировать Tamagotchi Понедельник, 29 Апрель 2013 17:16 написал Tamagotchi

    А сколько нужен максимум?

  • Комментировать Сергей Вторник, 30 Апрель 2013 05:53 написал Сергей

    в начале думал сделать на 3х7135, но на форуме пояснили, что 5 нога (минимальные режимы) - чисто ШИМ, 2 нога для среднего режима (две микросхемы), а макс режим - все три ноги включены постоянно (2, 5, 6) и на 6 ноге висят все оставшиеся 7135.
    Я еще попробую, как оно будет с тремя микросхемами, по одной на каждой ноге и если не понравится добавлю, чтоб было две на 2 ножке (получится ШИМ на мин и мунлайт, 700мА средний и 1400мА макс)

  • Комментировать Tamagotchi Вторник, 30 Апрель 2013 07:37 написал Tamagotchi

    Можно отпаять от 6-ой ноги 1 шт. и оставить 4 и больше ничего не прогать, а исправить это:
    #ifdef POW2100VER // 2100mA
    PORTB |= (1PORTB1);
    #else // 2800mA
    PORTB |=(1PORTB1 | 1PORTB3);
    #endif
    #ifdef POW450VER // 2450mA
    OCR0A = 0x00;
    #else
    OCR0A = 0xFF;
    #endif
    на
    PORTB |= (1PORTB1);
    OCR0A = 0x00;
    тогда в максимуме напряжение будет только на 6-ой ноге.

Оставить комментарий

Убедитесь, что вы вводите (*) необходимую информацию, где нужно
HTML-коды запрещены

Пользователь

Поиск

Календарь

« Октябрь 2017 »
Пн Вт Ср Чт Пт Сб Вс
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31