Вижте края на поста за обновената версия на драйвера

Искам да ви представя и споделя едно драйверче, по което работя от няколко седмици. Базирано е на LM3409(HV) бък чиповете, работи с PWM и аналогово затъмняване. Приема от 6 до 75 волта входящо захранване и може да регулира до 5 ампера за светлодиодите.  Схемата е общо взето от документацията на чиповете плюс няколко елемента за регулиране на 5-0 волта за аналоговото затъмняване (удобно за ардуино и подобни контролери).

Ето и схемата:

Платката е изработена изцяло от SMD компоненти за да стане малка и е около 38мм на 31мм. За съжаление, основният чип го има само в 10-MSOP пакет, който не е от най-лесните за запояване, но най-долу съм сложил едно видео как се запоява, за тези, които не знаят и не могат.

Последната версия на платката:

И в 3Д:

Списъка с частите за 12 светлодиода (48 волта захранване) с максимум около 1 ампер ток изглежда така:

LM3409HV

Part Description Mouser Part # Future Electronics
R1 Current Sense Resistors - 1watt .22ohms 1% 2512 71-WSL2512R2200FEA  
R2 1/10watt 49.9Kohms 1% 0603 71-CRCW0603-49.9K-E3  
R3 1/10watt 6.98Kohms 1% 0603 71-CRCW0603-6.98K-E3  
R4 1/10watt 1.0Kohms 1% 0603 71-CRCW0603-1.0K-E3  
R5 1/10watt 16.5Kohms 1% 0603 71-CRCW0603-16.5K-E3  
R6 1/10watt 91Kohms 1% 0603 660-RK73H1JTTD9102F  
R7 1/10watt 30Kohms 1% 0603 71-CRCW0603-30K-E3  
C1 100volts 2.2uF 10% X7R 1210 80-C1210C225K1R  
C2 100volts 2.2uF 10% X7R 1210 80-C1210C225K1R  
C3 1.0uF 16V 10% 0603 810-C1608X7R1C105K  
C4 0.1uF 50volts 5% X7R 0603 80-C0603C104J5RAUTO  
C5 470pF 50volts C0G 5% 0603 810-CGA3E2C0G1H471J  
D1 Schottky (Diodes & Rectifiers) 3A 100V SMC 863-MBRS3100T3G  
L1 Power Inductors 33uH 3.42A 0.108ohms 12.5x12.5 704-DRA124-330-R  
Q1 MOSFET Power P-Chan 100V 5.6 Amp DPAK 844-IRFR9120PBF  
U1 LM3409HV 10-MSOP   LM3409HVMY/NOPB

BOM LibreOffice
BOM Excel

За различни комбинации от ток и брой на диоди има няколко формулки, които могат да се намерят в техническите данни на чипа:
LM3409.pdf

За PWM затъмняване, R4, R6, R7 и C6 не трябва да се слагат на платката. Също така трябва да се свъжрат средните два пина на четворката.
За аналогово затъмняване, всички части се слагат и се свързват пин 1 с 2 и пин 3 с 4 на четворката.

Всичко това е под лиценз  Creative Commons Признание-Некомерсиално-Споделяне на споделеното 3.0 и пакет с всички изходни файлове може да се свали от тук:
LM3409HV0.3.zip

Ако някой ме насочи към български онлайн магазин за части, мога да направя списък с части за по-лесно поръчване, но като цяло цената на частите за една платка е около 8 долара от mouser, а платките могат да се поръчат от места като seeedstudio.com или iteadstudio.com за 12 долара за 10 платки.

А ето и малко истински снимки и видео на драйвера в употреба:


Ето и забързано видео, как аз сглобявам драйеврчето. Не казвам, че съм експерт, но върши работа. Най-важното е да се ползва много тънък калай!


Обновено 23ти януари 2012:
Пет месеца по-късно, мисля, че имам крайна версия на този прект и съм доста доволен как се разви. Доста промени от началото:

Добавих 12 битов i2c DAC, който ни позволява над 4000 стъпки аналогов контрол. Транзистора е по-голям за да се справя по-добре с топлината и вече има място на платката за голям радиатор. Също така се наложи да добавя и няколко компонента за изключване на диодите когато контролното напрежение падне до нула.



За I2C dac:
Успях да немря само два варианта: MCP4725 и MCP4726. Двата са общо взето идентични с тази разлика, че единият има външен пин за конфигуриране на адреса, а другия има пин за външено контролно напрежение. И двата работят с последната версия на платка, но при MCP4725 трябва да се избере адреса с малкото джъмперче на платката.

Адресиране:
И двата чипа ползват 1100 като първи 4 бита и 3 допълнителни бита, които могат да се конфигурират.
За MCP4725 има 4 вариянта от производителя: 110000X, 110001X 110010X и 110011X, като X е 0 или 1 в зависимост от джъмперчето на платката.
MCP4726 няма външен пин за адрес и се води че Microchip има 8 варианта на този чип, но никъде не намерих последните 4.

Какво означава това?
Означава, че могат да се сложат 8 драйвера с MCP4725 или 4 с MCP4726 на един i2c бъс.

Със външния контролен пин на MCP4726 може да се поиграе малко повечко и да се сложи един потенциометър, който да наглася максималното контролно напрежение, но тогава могат да се ползват само 4 драйвера на бъс.

Програмиране:
Тъй като контролът вече става през i2c, а не PWM не може просто да се направи digitalWrite(LEDPIN, 255); :). Но все пак не е толкова трудно за програмиране. Командите са 4 байта:
1 байт – адреса на чипа
2 байт – команда
3 и 4 байт – регистрите за 12те бита (последните 4 бита са игнорирани)

Скоро сигурно ще напиша и библиотечка за драйвера за Ардуино.

Както винаги, всичко е с отворен код:
BOM, схема и други файлове

Enjoy