Är sugen på att leka lite med starka RGB LEDar, tänkte göra några spotar (kanoner) och sedan styra dem från min dator. Jag börjar med design av en 3 kanalers LED drivare som jag matar med reglerad 12 VDC. Kommer inte att bli så billigt men syftet med projektet är att fördjupa mig i ämnet och ha lite roligt...
Krav:
- Direkt kontroll av LED som drivs med konstant ström 350 mA, 750 mA eller 1000 mA
- Direkt kontroll av RGGB LED (två gröna dioder i serie, typiskt spänningsfall ca 9 V @ 1 A)
- Flera enheter ska kunna kopplas samman med en data bus, individuell styrning via dator
Kod: Markera allt
Supply Voltage: 12 VDC
LED Forward Voltage Drop: 2 to 11 V
Output Current: 1 A
Diming Frequency: > 100 Hz
Diming Steps: 256
Output Current Ripple: <20%
Switching Topology: Buck Converter
Switching Frequency: 100 kHz @ 1 A
150 kHz @ 750 mA
300 kHz @ 350 mA
Har en förkärlek till Atmel AVR, så valet föll på ATtiny261, denna krets har bl.a:
- intern 8 MHz oscillator
- 3 kanalers PWM modul som klockas via intern PLL med 64 MHz, 10 bitar, ställbar period
- 10 bitars A/D omvandlare med inbyggd valbar förstärkning (kommer att använda 20x) och differentiella ingångar
- intern spänningsreferes (två olika, kommer att använda 2.56 V)
- kost ca 15 SEK
Kommer att använda: "continious mode inverse Buck Converter with current feedback"
Vid 1 A har jag valt en PWM frekvensen på 100 kHz, om vi accepterar 20% rippel ström (inte synligt) och beräknar storlek på spole enligt Coiltronics: Switching Regulator Inductor Design så får vi att den måste minst vara 95 uH, om vi sedan kopplar in en 350 mA LED och använder samma PWM frekvens så behöver spolen vara 270 uH... Därför kommer PWM frekvens att vara ställbart beroende på vilken typ av LED man kopplar in. Vid 350 mA så kommer switch frekvensen att vara 300 kHz (storleken på spolen måste då vara 90 uH alltså samma som vid 1A last). Å andra sidan kommer vi att vid dessa högre switchfrekvenser uppleva större switch förluster men det borde inte vara något problem eftersom strömmen är mindre. Kommer trots allt att montera en större induktans på 200 uH på kortet då det blir mindre rippel
Val av avkopplingskondensatorer
Jag har beräknat behovet av keramiska kondensatorer på ingången till 19 uF enligt Input and Output Capacitor Selection
Jag har nöjt mig med 2x2.2uF (storlek 1206) på varje kanal, kommer att bli lite högre rippel men det borde blir tillräckligt bra ändå... Finns 1206 med högre värde men mycket dyrare...
Enligt samma information har jag beräknat behov av bulk kodensator till 605 uF... Jag har nöjt mig med 3x100 uF = 300 uF. Jag förskjuter startar av dimning för varje kanal så att det inte blir så stora ström transienter för bulk kondensatorerna att jobb mot. Layout är förberedd så att jag kan köra med större bulk kondensatorer om det visar sig att det behövs
Ström feedback
Fick lägga till några extra komponenter på schemat (en 2N7002 och lite passiva komponenter), då sample and hold kretsen på mikrokontrollern är för långsam (sample and hold ar några A/D klock cyckler innan den har låst)
Kommunikation:
Kommer att koppla alla enheter i en ring (alltså varje enhet har både en mottagare och en sändare), en slags daisy chain, PC:n sänder till första, första sänder till andra, osv... Kommer att använda en tråd för TX förberett för twisted pair, men det borde gå vägen utan då jag bara ska ha upp till 5 m kabel mellan en sändare och en mottagare. Har filtrerat ganska hårt, mikrokontroller har Schmitt trigger så det borde gå bra. Har förberett för ring (sista enheten sänder tillbaka till PC) men kommer att nöja mig utan (alltså endast TX ut från PC). Machester kodad signal ca 19200 bitar per sekund.
Kort storlek: 10 cm x 5 cm
Höjd: 8 mm (3D vyn visar högre kondensatorer + 3D modell av spole saknas)
KiCAD 3D layout: schema: bill of material: