Frage: mehrere Hardware PWMs benötigt

tenor

Mitglied
30. Sep. 2012
169
0
16
44
Sprachen
  1. BascomAVR
Hallo,
sind gerade dabei das Aquarium auf LED umzurüsten und haben uns da für die LED Stripes entschieden.
Diese wollte ich jetzt mit PWM Signalen dimmen. So eine Steuerung liegt ja bereits bei den Stripes dabei.

ähnlich diesem hier: http://www.mikrocontroller.net/topic/247317

Für meinen bisherigen Controller setze ich den Atmega 16 ein.
Ich brauch 2 unterschiedliche Farben, das macht dann 6 PWM Signale.
Evtl. brauche ich für eine Dosierpumpe dann noch 1 PWM.

Bin mir nicht sicher ob reines Software PWM ausreichend ist, da die Steuerung ja noch mehr machen soll..

Gibt es ähnlich einem IO Expander auch eine Erweiterung für die PWMs?

Ich habe bisher bei anderen AVRs max 6 PWMs gefunden, eine Erweiterung von diesem hier wäre mir lieber,
ausserdem kommt ja evtl. noch mal ein stripe dazu... Daher generell interessant zu wissen :)

Von der größe zu schätzen haben die bei dem mitgelieferten Controller wohl ein attiny verwendet, spricht ja wohl auch für ein Soft PWM.
Wieviel kann man davon gleichzeitig verwenden?
 
Du kannst einfach einen 8 Kanal LED-Treiber verwenden, was anderes als PWM ist es auch nicht.
 
Danke,
Hab mir da gerade datenblätter dazu angesehen, aber ich werde nicht so recht schlau daraus..

Mein Ziel ist es Kanal 1 mit 5V, Kanal 2 mit 3V, Kanal 6 mit 10V etc. Zu betreiben.
Wie soll ich bei so einem Treiber die Werte der einzelnen Kanäle übergeben?
 
Ich verstehe das leider nicht so recht wie das gemeint ist.
Das interessanteste ist im Moment der hier:
http://www.nxp.com/documents/data_sheet/PCA9634.pdf
edit: die wären auch super :)
http://www.linear.com/product/LT8500
http://pdfserv.maximintegrated.com/en/ds/MAX6966-MAX6967.pdf

Aber der ist auch nur schwer zu bekommen und keine Ahnung ob ich dem jetzt über die I²C Schnittstelle jedem Kanal einfach nur einem Wert zuweisen kann
und der Treiber führt dann das PWM Signal aus.

Die anderen Treiber die ich gefunden habe, leitend as PWM Signal vom AVR einfach nur weiter, das bringt mir hier jedoch nicht viel.
 
Hallo,

wo ist denn Dein Problem? Bzw. was verstehst Du nicht?

Der PCA9634 ist schon mal nicht schlecht. Ich habe hier noch ein Paar von den PCA9531 und den TLC59108 (8-kanal, 8-PWM Kanäle, bis 120mA pro Kanal)

PCA9531: Datenblatt
TLC59108: Datenblatt

Ich denke, der zweite wäre der Richtige für Dich.

Es sind beides 8-bit Treiber, das heißt, dass Du 256 Schritte hast. Angenommen, Du hast 5v am Eingang, das entspricht 5/256 = 0,0195v pro Schritt. Wenn Du nun 3v haben willst, stellst Du de PWM auf ca. 154 und hast Deine 3v. Bei 10v wird es etwas spannender, da brauchst Du noch einen Transistor, der als Verstärker arbeitet.

Bei dem TLC59108 ist es so, dass Du 8 Ausgänge hast und jeder Ausgang hat einen einen PWM-Controller drin. Diesem Controller sagst Du dann einfach einen Wert zwischen 0 und 255, der dann dem Duty Cycle entspricht. Das siehst Du auf der Seite 16 im Datenblatt. Beim PCA9634 ist es genau so, siehe Seite 10.

Ich kann Dir etwas C-Code für den TLC59116 posten, der hat zwar 16 Kanäle, aber das ist für Dich absolut egal, da die Register und alles gleich sind.

Grüße
Heinrich
 
ok, Danke! Hab gestern noch recht viel gelesen und vor allem gesucht.
Ich finde nirgends so einen Baustein.

Gerne würde ich so einen Typ mal testen, denke auch das er genau das richtige ist, aber keine Ahnung wo man den her bekommt.
Hast du da einen Tip?

War gestern schon drauf und dran mir eine Alternative mit einem 2. Mikrocontroller zu überlegen, das ist aber auch alles nur murks..
 
Zweite MCU ist Murks.

Also von den TLC59108 habe ich ein paar da, wenn Du willst, kannst sie haben. Kann Dir heute Abend sagen, wieviele das sind. Ich habe sie damals bei Digikey bestellt.

Grüße
Heinrich
 
hab gerade bei digikey geschaut, 18€ Versandkosten...
Ausserdem haben die kein DIP Gehäuse für Print Platinen.

Was für eine Gehäuse Art haben deine?

Gibt es noch alternative Quellen für ICs?

Meine RTC habe ich z.B. bei IT-wns.de geholt.
Die haben leider nichts mit PWM...
 
Meine haben TSSOP20 Gehäuse. Ich kaufe nichts in THT-Bauform, nur SMD.

Ich bestelle oft bei diesen Händler:

www.reichelt.de (die erste Anlaufstelle)
de.mouser.com
de.digikey.com
www.mikrocontroller-praxis.de (ist von diesem Forum :) )


Mir ist kein LED-Treiber bekannt, den es in THT-Bauform gibt.

Grüße
Heinrich
 
Danke!
Eine SMD Variante habe ich bei Reichelt nocht entdeckt, habe ich vorher wohl übersehen.
Das auf eine "normale" Platine zu löten ist wohl auch eher mist...

Denke das beste wird für meinen Einsatz dann doch der 2 MCU sein.

Der Atmega48 hat ja bereits 6 PWM Kanäle und kostet auch nur ca. 2,50€.
Am besten werde ich versuchen den Atmega 16 via I2C bus an den Atmega 48 zu koppeln, so dass ich diesem nur noch
die jeweiligen PWM Werte der Kanäle liefern lasse..

Wird zwar etwas dauern bis ich das raus hab, aber trotzdem die bessere Alternative.
 
Ja, danke, das wäre ne option. Leider keine I²C Schnittstelle, aber dennoch interessant!
Leider haben sie die anderen Bausteine nicht bei eBay... Schade eigentlich.

Hab noch 2 Shops finden können:
http://at.rs-online.com
http://de.farnell.com

Hab gestern zum testen erstmal den Atmega48 bei Pollin bestellt.
 
Denke das beste wird für meinen Einsatz dann doch der 2 MCU sein.

Der Atmega48 hat ja bereits 6 PWM Kanäle und kostet auch nur ca. 2,50€.

Ähm, jö. Okay, also Du willst tatsächlich sagen, dass 2x MCU einfacher sein soll als 1x MCU + 1x LED-Treiber? TLC59108 kostet bei Mouser 1,91€ für den Preis hättest Du ihn von mir bekommen können. Dazu einpaar Kerkos, ein Widerstand und das Thema ist durch.

Wenn Du zweite MCU nimmst, dann brauchst Du den ganzen Geraffel wie Quarz, Abblockkondensatoren, ISP, ... auch zwei Mal. Also was soll da einfacher / günstiger sein? Und der TLC59108 hat 8 PWM-Kanäle.

Naja, es ist jedem selbst überlassen, was und wie er macht. Aber nachvollziehen kann ich sowas nicht.
 
Naja, das Problem ist die Bauform..
Ich kann des so nicht auf meine Platine bringen.
Momentan hoffe ich noch das ich mit dem internen Oszillator auskomme und keinen externen Quarz benötige...
Das wird sich halt noch zeigen müssen ;)

ein I²C Baustein mit PWM und DIP Gehäuse wäre natürlich das Optimum..
Da habe ich aber nichts gefunden.
 
Es gibt aber noch Adapter von SMD auf DIP.

Den internen Oszillator kannst Du den Hasen geben, der taugt nicht viel, wenn Du einen vernünftigen Takt brauchst.

Was hast Du genau für eine Platine?
 
Ich benutze die gute alte Streifenraster Platine.
Selber eine Ätzen hatte ich zwar irgendwann mal vor, aber der Aufwand hat sich bisher nie gelohnt.
In Serie gehe ich ja auch nicht damit ;)

So ein Adapter wäre natürlich eine Option! Daran werde ich bei der nächsten Bestellung auf jeden Fall denken.

Dachte der interne Oszi wäre für PWM noch brauchbar, da das ja nicht so 100% sein muss, sprich man sieht es ja nicht.
Hatte da was von 5-10% Toleranz gelesen.
Aber du hast recht, da ich ja nen I²C Bus für die Verbindung der beiden Controller nehmen muss, kann das Ärger geben...
Also doch noch nen Quarz mit drauf...

Wäre alles so einfach wenn Conrad ein vernünftiges Sortiment hätte, da könnte ich die Teile dann nach der Arbeit eben abholen ... :)
 
Hallo,

Ich benutze die gute alte Streifenraster Platine.
Selber eine Ätzen hatte ich zwar irgendwann mal vor, aber der Aufwand hat sich bisher nie gelohnt.
In Serie gehe ich ja auch nicht damit ;)
also ich nehme mitlerweile für Schaltungen nur noch Epoxid und Lötpunkte. Ist zwar etwas teurer aber sehr haltbar und beim Aufbau ist die Leiterbahnführung wesentlich flexibler umsetzbar.

Lötstreifenraster nehme ich nur für SMD-Gehäuse (SO im 1,27mm Raster). Aber auch auf FR4-Träger (Epoxid).

Gruß
Dino
 
Den internen Oszillator kannst Du den Hasen geben, der taugt nicht viel, wenn Du einen vernünftigen Takt brauchst...
Genau den braucht er doch aber nicht, oder?
Wenn ich das jetzt richtig verfolgt habe, soll der Slave PWM-Signale für Beleuchtung erzeugen (ich glaube nicht, daß man die Temperaturbedingten Taktverschiebungen überhaupt sehen kann -> auf den Duty-Cycle sollte das praktisch keinen Einfluß haben, ob die PWM-Frequenz etwas schneller oder langsamer ist, hat keinen optischen Effekt).
Die kommunikative Anbindung soll über eine synchronisierte (Takt-Signal) Hardware-Schnittstelle erfolgen...
Im Prinzip kommt er dann mit einem Kerko am Slave, und einem Reset-Pullup aus.
Abgesehen davon könnte der Master auch seinen Takt an den Slave weiterleiten...

P.S.: Ich habe für Manfred Burghammer vom ESRF mal eine simple PWM-Dimmung zusammengebappt, mit einem LM3407. Das PWM-Signal erzeugt ein Tiny2313A - ohne Quarz. Und da kommen die Anweisungen über den UART von der Beamline, also ohne Synchronisierung. Bisher sind keine Unregelmäßigkeiten bekannt...
(Anekdote am Rande: dafür wollten wir ein Loch (0,3mm) durch eine SMD-LED bohren - Ceramic vs Drill: Ceramic wins :p)
 
Das ist doch schon mal gut zu wissen das das auch mit dem internen Oszillator noch klappt!
Nur beim Bus hatte ich mir jetzt sorgen gemacht.

Mich würde es interessieren wie du den LM3407 ansteuerst mit dem Tiny.
Hast du da evtl. noch einen Schaltplan?
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)