Guten Morgen Community, bei meiner Suche nach einem passenden Controller bin ich auf die PIC24F08KMXXX Serie gestoßen, als konkretes Modell sei hier der PIC24F08KM101 genannt. Laut MAPS kann dieser maximal 7 PWM Chanel bereit stellen. Da diese Serie soweit ich es überblicke alle Anforderungen erfüllen würde ich mich für Controller aus der Serie entscheiden, doch sind diese mit einem Preis von knapp 2 Euro das Stück nicht unbedingt so günstig. Da ich mich bisher hauptsächlich Theoretisch mit Elektrotechnik befassen musste und MCU Technik nur 1 Jahr in der Schule hatte, fehlt mir leider der Überblick über die möglichen Kandidaten, so dass ich euch um eure Hilfe bitten möchte einen passenden zu finden. Die Anforderungen an den Controller sind nicht sehr hoch, so dass ein PIC24 wohl überpowert wäre, daher hier einmal kurz die Anforderungen an den Controller: 1. 5V Versorgungsspannung. 2. 6 unabhängige PWM Chanel. (Könnte auch via Soft PWM gelöst werden) 3. 12 Bit PWM Genauigkeit. 4. PWM Frequenz von etwa 2kHz. 5. Eine UART Schnittstelle, wenn der Aufpreis für CAN unter 10 ct. liegt, wäre CAN erwünscht. 6. Pro I/O Port, der PWM liefert 20mA seek Current, also gesamt 120mA. 7. Reset + 1 Externer Interrupt Da ich mich in dem Gebiet echt nicht auskenne, würde ich mich freuen, von euch ein paar hilfreiche Vorschläge zu bekommen. Der MCU muss nichts anderes können, als über UART (oder CAN) Daten für die LED Steuerung zu erhalten. Diese Daten bestehen pro Chanel aus einem Zielwert (0 - 255) und aus einem Verzögerungswert, der null oder auch einen Wert in ms haben kann. Während der Verzögerung soll die LED des jeweiligen Chanels gleichmäßig auf den Zielwert herunter gedimmt werden. (Innerhalb des MCUs Linear, außerhalb mittels vor berechnetem Array auf die Helligkeitswahrnehmung abgestimmt.) Bei dieser Aufgabe wird vermutlich nicht so viel Rechenleistung oder besonders viel Speicher benötigt. Es ist geplant den Controller zusammen mit den LEDs auf eine kleine Platine als LEDs Modul zu verbauen. Da für eine gleichmäßige passive Beleuchtung mit 160 Modulen gerechnet werden, drückt ein teurer Controller natürlich ordentlich auf den Geldbeutel, daher hoffe ich auf günstige und funktionale Alternativen zu der PIC24F08MKXXX Serie. Das waren jetzt soweit alle Infos die mir einfallen, sollte noch etwas wichtiges Fehlen werde ich dies so schnell wie möglich nach reichen. Mit freundlichen Grüßen Marcel
SW PWM mit 6*(4096*2kHz) Auflösung ist sportlich. Wenn es nur fürs menschliche Auge ist, reicht deutlich weniger. 120mA auch. Möglich wäre auch ein zweiter Controller und dann je 3 HWPWMs. Ein reiner Slave ist relativ einfach.
Nur so als Idee: Kennst du den PCA9685 ? Ok, ist etwas overkill mit 16 PWM-Channels á 12 Bit, aber für die Extra-Kanäle findet sich sicher eine Verwendung. Dann muss dein µC nur Uart/Can -> I²C Übersetzer spielen. Und rein theoretisch können da 62 solche Chips an einen I²C-Bus. Je nachdem wie dein Gesamt-System aussieht, kannst du evtl. gleich hunderte PWM-Kanäle mit einem Zentralen µC verwalten, deine LED-Steuermodule nur mit PCA9685 bestücken (gibt billige Platinen fix und fertig aus China), und als Bus-System I²C, ggfs. mit Repeatern alle xx Meter, verwenden.
Achim S. schrieb: > SW PWM mit 6*(4096*2kHz) Auflösung ist sportlich. Wenn es nur fürs > menschliche Auge ist, reicht deutlich weniger. 2kHz sind schon o.k., wenn man auch bei Bewegung kein PWM-Flimmern sehen möchte. Hier mal ein Codebeispiel: Beitrag "AVR: Fast-PWM (BAM) 12 Bit für 8 Kanäle" Mit UART wäre z.B. der ATtiny2313 dafür geeignet. Microchip gibt ab 100Stck 0,55$ als Preis an (0,67$ ab 1Stück).
:
Bearbeitet durch User
Schwarzseher schrieb: > Ok, ist etwas overkill mit 16 PWM-Channels á 12 Bit, aber für die > Extra-Kanäle findet sich sicher eine Verwendung. Und wenn nicht, ist das bei knapp 12ct pro Kanal auch nicht so tragisch ;-) z.B. ebay 401230985895
Peter D. schrieb: > Hier mal ein Codebeispiel: ohne das jetzt analysiert zu haben, ... Dort kannst Du ohne HW-PWM jeden Kanal einzeln auf 120ns (1/8MHz) genau steuern und das auch noch faden UND nebenbei CAN oder Serielle machen? Respekt. Ohne HW-Unterstützung (z.B. Pattern-Generator) muss das schon sehr ausgefuchst sein. Spätestens, wenn 2 PWMs relativ nahe beieinander liegen.
PIC24F08KM202 dsPIC33EV32GM002 PIC24F16KM202 dsPIC33EV64GM002 dsPIC33EV32GM102 dsPIC33EV32GM004 PIC24F08KM204 dsPIC33EV128GM002 PIC24F16KM204 dsPIC33EV64GM102 dsPIC33EV64GM004 dsPIC33EV32GM006 dsPIC33EV32GM104 dsPIC33EV128GM102 dsPIC33EV128GM004 dsPIC33EV256GM002 dsPIC33EV64GM006 dsPIC33EV64GM104 . . .
Achim S. schrieb: > Dort kannst Du ohne HW-PWM jeden Kanal einzeln auf 120ns (1/8MHz) genau > steuern und das auch noch faden UND nebenbei CAN oder Serielle machen? So besonders ist das nicht. BAM Modulation ist keine pwm. Es werden N Pulse ausgeben mit der einer Länge von jeweils 2^n. Die kürzesten Pulse sind am zeitkritischsten und werden mit gesperrten Interrupts durchgeführt. Das geht bei avrs zyklengenau bis zur Traktate, also bis 20MHz. Das gleiche lässt sich etwas langsamer bei Arms auch mit DMA machen. Mit Schieberegistern und OE Pin geht das mit einem pwm Kanal für das ganze Register.
Achim S. schrieb: > Möglich wäre auch ein zweiter Controller und dann je 3 HWPWMs. Ein > reiner Slave ist relativ einfach. Daran mehrere Controller zu nutzen, habe ich tatsächlich noch nicht gedacht. Wird vermutlich günstiger werden, als einen großen zu verwenden. Der PCA9685 ist in der Tat etwas groß. Peter D. schrieb: > Mit UART wäre z.B. der ATtiny2313 dafür geeignet. > Microchip gibt ab 100Stck 0,55$ als Preis an (0,67$ ab 1Stück). Der kleine Bursche scheint sehr gut geeignet zu sein :D Auf den "... (Gast) " muss ich wohl nicht genauer eingehen, wenn man mehr als nur die Überschrift liest, wird es klar werden... Eine möglichst kleine Lösung würde mir am besten gefallen, denn es geht um einen möglichen Controller für dieses Projekt: Beitrag "Gibt es einen passenden BUS zur steuerung vieler Clients über mehrere Meter?" Da es sich in diesem Beitrag eher um den BUS statt um das System drehen sollte, habe ich dieses Thema versucht aus zu lagern. Insgesamt wird auch nur ein Stromfluss von 80mA / 4 (pro Pin) + 2 mal Transistorsteuerung benötigt. Ich hatte vergessen, dass ich nicht alle LEDs auf 0V herunter ziehe. Ich bedanke mich bis hier hin auf jeden Fall für eure Antworten, auch wenn ich teilweise noch genau nach rechnen muss. :D Mit freundlichen Grüßen Marcel
Achim S. schrieb: > ohne das jetzt analysiert zu haben, ... Dort kannst Du ohne HW-PWM jeden > Kanal einzeln auf 120ns (1/8MHz) genau steuern und das auch noch faden > UND nebenbei CAN oder Serielle machen? Respekt. So schlimm ist das nicht. Die CPU-Last beträgt bei 12Bit 9%. Es bleibt also genug Zeit fürs Faden und das Empfangsprotokoll. Die BAM-Idee (Assembler und C kombiniert) ist auch nicht von mir. Einen Wermutstropfen gibt es aber, der AVR kann keine Interruptprioritäten. CAN oder UART muß man also in der Mainloop pollen, damit die PWM nicht flackert.
:
Bearbeitet durch User
Ich habe jetzt mal einen Schaltplan fertig gestellt und würde mich über kurzes Feedback zu der Schaltung freuen. Ich bin mir mit den PMOS Transistoren noch unsicher, eventuell kennt ja einer von euch noch eine andere Schaltmöglichkeit. Der Spannungsdrop an den LEDs ist an den +12V -> +5V Strecken 6V, bei den übrigen 9,6V. Die LEDs werden jeweils mit 20mA durch flossen. Mit freundlichen Grüßen. Marcel
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.