Hallo zusammen, gibt es einen Chip mit I2C Schnittstelle der mir einen Analogen 1-10V Wert zu einem Digital nutzbaren Wert umsetzt? Ich möchte über einen 1-10V Wert eine LED Leiste Dimmen. Bitte keine Diskussion das es andere Techniken gibt als 1-10V, denn das ist durch das Steuergerät fest vorgegeben. Danke schonmal. Grüße Stephan
@decimad, Na irgendwie sollte man die Daten ja auch aus dem Chip dann zum weiterverarbeiten in den µC bekommen. Wäre doch sicher einfacher als wenn der Chip dann zwar drüber bescheid weiß, es meinem µC aber nicht verraten möchte.
Mit einem Attiny deiner Wahl per ADC dein 1-10Volt Signal einlesen und als PWM ausgeben. Hat auch ne I2C Schnittstelle.
@Luca, da hast Du recht. Ich hatte vergessen zu erwähnen, das ich davon 8 Signale verarbeiten muss. Dachte das dies am besten 1 Chip übernehmen kann.
:
Bearbeitet durch User
Noch als nachtrag: Ideal wäre natürlich und so hab ich mir das auch gedacht, das der Chip direkt mit den 1-10V umgehen kann, ohne das ich das über einen Teiler schicken muss.
Viele AVR Mikrocontroller haben 8 analoge Eingänge. ADC mit 10V Eingangsspannung gibt es nicht - glaub' ich. Du wirst sowieso irgendwelche Widerstände vorschalten, um die Eingänge vor Überspannung zu schützen.
Ich möchte das jetzt auch mal im Gedanken durchspielen... So ein ATMega32 hat ja schonmal 8 ADCs, aber nur 4 PWMs. Also müsste man wohl schauen, dass man die PWM in Software umsetzt oder? Welche Dimm-Auflösung möchtest Du denn erreichen? Sagen wir mal 100 Takte für Compare&Co per Software und Zyklus... 200 Hz PWM, 16 MHz ... Da ist noch viel Luft für gute Auflösung, oder nicht? Oder gibt's Tricks mehr Kanäle aus den gegebenen PWMs zu kitzeln?
Alternativ ginge in diesem langsamen Fall natürlich auch etwas viel Kleineres und ein Multiplexer vor einem einzigen ADC, diese Möglichkeiten immer! Aber um die 8 Ausgangspins kommt man wohl nicht drumherum, wenn man gute Auflösung erreichen will, denke ich?
Aber wie bekommt man parallel zu solch einer Sofware-PWM noch eine vernünftige I²C-Kommunikation hin, ohne die PWM zu blockieren? Im FPGA wäre das ja alles trivial...
Opamp Sägezahn mit nachgeschaltetem Schmitttrigger ist zu kompliziert?
Ich lese mir gerade http://www.mikrocontroller.net/articles/Soft-PWM durch. Die ersten beiden Trivialansätze waren natürlich offensichtlich. Die Idee für den dritten "intelligenten" Ansatz hatte ich auch, aber wieder verworfen. Was passiert denn, wenn die PWM-Counter-Differenz so zwischen zwei PWM-Kanälen so klein ist, dass die ISR länger braucht? Dann würde er doch das Rücksetzen des entsprechenden Kanals einfach überspringen?
@Magnus: Wie macht man da denn eine Master-gesteuerte I²C-Kommunikation ohne die ISR-Abarbeitung für die Soft-PWM zu blockieren? Ich muss ja noch lernen, mit den Gegebenheiten klarzukommen, schwer wirds wahrscheinlich nicht sein, aber ich kann eben nicht alles auf Anhieb, ohne mir Gedanken drüber zu machen :)
@Oldie: Sogar ein Spannungsteiler ist eigentlich schon zuviel für den OP, Deinen Vorschlag müsste man ja auch noch acht Komparatoren replizieren und hätte vor allem kein I²C zum Auslesen der Werte, oder nicht?
Wahrscheinlich ist es das beste ich nehme einen MAX1238. Der kann 8 Eingänge erfassen und wird per I³C ausgelesen. Muss dann zwar auch mit Spannungsteilern arbeiten, dachte halt es gibt schon fertige Chips die mir die 1-10V direkt erfassen können ohne noch viel Schaltung darum zu bauen. Ein Problem ist es das nun aber auch nicht. Danke nochmal an alle. Vielleicht fällt einem ja doch noch so ein Chip ein der das kann. Dann bin ich natürlich auch noch offen dafür.
decimad schrieb: > @Magnus: Wie macht man da denn eine Master-gesteuerte > I²C-Kommunikation > ohne die ISR-Abarbeitung für die Soft-PWM zu blockieren? Der Slave schickt einfach kein "ACK" bevor er die Anfrage bearbeiten kann.
Ach jetzt verstehe ich das. Du suchtest von Anfang an nur einen AD-Wandler mit I²C-Schnittstelle? Ich dachte das Teil sollte direkt PWM am anderen Ausgang liefern (Titel und Text unterschiedlich, habe nicht alles genau gelesen), deshalb auch meine Frage wofür überhaupt I²C.
decimad schrieb: > Ach jetzt verstehe ich das. Du suchtest von Anfang an nur einen > AD-Wandler mit I²C-Schnittstelle? Ich dachte das Teil sollte direkt PWM > am anderen Ausgang liefern (Titel und Text unterschiedlich, habe nicht > alles genau gelesen), deshalb auch meine Frage wofür überhaupt I²C. Ja genau, nur mit dem extra, das der Chip direkt 1-10V hätte einlesen können. Die weitere PWM Verarbeitung soll ein Atmega8 übernehmen, denn davon hab ich noch genug rum liegen und die Pins reichen aus. Bevor man sich wieder neue Controller holt dürfen ruhig auch mal die aus der Bastelkiste ihre Dienste antreten ;-)
@Magnus: Dann müsste der Slave aber auch die PWM-Counter-Werte betrachten und sich einen Zeitschlitz herausfischen, in dem ein volles Datenwort übertragen werden kann, oder nicht? Also ich finde das schon nicht mehr "trivial", weil es eben eigentlich unabhängige Teile miteinander verkoppelt und für "nichtdeterministisches" Timing am Bus sorgt, wenn man das so ausdrücken darf... Also maximal mögliche ACK-Latenz ausrechnen etc...
Der kann +/-10V direkt wandeln, auch 8 Kanäle: LTC1859 - 8-Channel, 16-Bit, 100ksps SoftSpan A/D Converters with Shutdown http://www.linear.com/product/LTC1859 Von Linear gibt es auch noch einige andere.
:
Bearbeitet durch User
Hihi, einen extra IC (LT, i.a. nicht gerade die preiswertesten) mit 16bit Auflösung um 16 popelige 0805-Widerständchen einzusparen und am Ende vielleicht 10bit-PWM zu erzeugen - das nenne ich mal einen sehr sinnvollen Ansatz :-)
decimad schrieb: > Ich möchte das jetzt auch mal im Gedanken durchspielen... So ein > ATMega32 hat ja schonmal 8 ADCs, aber nur 4 PWMs. >... > Oder gibt's Tricks mehr Kanäle aus den gegebenen PWMs zu kitzeln? Ja, der Trick heisst Atmega1284. Kennt ihr eigentlich nichts anderes als die alten Scheissgurken? mfg.
Es gibt auch noch die AT90PWWxx. Oder mal über den AVR-Tellerrand hinauslugen (STM32F3 z.B.) Für den Preis des LTC bekommst du mindestens 5 Stk davon :-)
Stefan us schrieb: > Viele AVR Mikrocontroller haben 8 analoge Eingänge. > > ADC mit 10V Eingangsspannung gibt es nicht - glaub' ich. Du wirst > sowieso irgendwelche Widerstände vorschalten, um die Eingänge vor > Überspannung zu schützen. Klaro, MAX127 z.B. http://krumeltee.wordpress.com/2011/07/27/max127-i%C2%B2c-ad-wandler-am-avr/
@Thomas Eckmann: Ich hab keine Ahnung was einige Hardwareler am Tag so ertragen müssen, aber ich finde um 23+ Uhr sollte dann wieder die zivilisierte Kommunikation möglich sein. Ich habe keine Ahnung von Atmel MCUs oder überhaupt irgendwelchen, außer dass ich mal für eine AMD 168ER-Kröte eine Minimalsoftware schreiben musste. Ich finde, man sollte in einem Forum wie diesem davon ausgehen, dass halt auch mal ein paar planlose Leute umherwandeln... Deshalb habe ich diese Aufgabe auch als Gedankenspiel hergenommen, wie man da so rangehen könnte. Die von Dir vorgeschlagene MCU hat aber doch auch nur 6 PWM-Kanäle, wenn ich das Sheet auf der ersten Seite richtig deute? Vielleicht werde ich aber auch irgendwann mal alle Modelle und deren Spezifikationen auswendig kennen...
Auf den Preis habe ich jetzt nicht geschaut - stimmt schon der ist teuer. Dafür ist der auch Industrietauglich, da der nicht kaputt geht wenn mal 24V angeschlossen werden. (Meistverwendete Schaltschrankspannung.) Und 16 Bit sind auch recht viel. Der Link dient hauptsächlich zum weiter suchen, denn alle Postings zuvor zeigten die Richtung "das gibt es nicht" und "musst einen extra Controller programmieren" usw. Der STM32 wäre in jedem Fall die bessere Controllerwahl, denn: Wenn der PWM 10KHz sein soll, dann kann der STM32 immer noch mit 7200 Bit auflösen. Das können die AVR und PIC nicht! TMR1 mit 72MHz > 10KHz PWM = 7200 Bit Auflösung = 12Bit-AD-Wandler kann sehr exakt ausgegeben werden.
decimad schrieb: > Die von Dir vorgeschlagene MCU hat aber doch auch nur 6 PWM-Kanäle, wenn > ich das Sheet auf der ersten Seite richtig deute? > Vielleicht werde ich aber auch irgendwann mal alle Modelle und deren > Spezifikationen auswendig kennen... Nein. Der hat 8. Hätte ich sonst erwähnt? mfg.
http://www.atmel.com/Images/Atmel-8272-8-bit-AVR-microcontroller-ATmega164A_PA-324A_PA-644A_PA-1284_P_datasheet.pdf Da schreiben sie doch "six PWM channels". Normalerweise neigen die Hersteller doch eher zu unrealistischen Übertreibungen? Daher ging ich jetzt auch davon aus, dass die 6 PWM-Channel über irgendeine Kombination von Countern und Vergleichswerten zustande kommen.
decimad schrieb: > http://www.atmel.com/Images/Atmel-8272-8-bit-AVR-microcontroller-ATmega164A_PA-324A_PA-644A_PA-1284_P_datasheet.pdf > > Da schreiben sie doch "six PWM channels". Normalerweise neigen die > Hersteller doch eher zu unrealistischen Übertreibungen? Daher ging ich > jetzt auch davon aus, dass die 6 PWM-Channel über irgendeine Kombination > von Countern und Vergleichswerten zustande kommen. Dieses Datenblatt ist das fieseste, was Atmel im Angebot hat. Um die Existenz des Timer3 zu erkennen, muss man, wie in der Bibel, diverse Stellen richtig interpretieren. "Hallo, hallo, der 1284 hat einen Timer3!" steht da nirgendwo. Vielleicht ist ihnen das peinlich. Fakt ist allerdings: Er hat ihn. mfg.
Thomas Eckmann schrieb: > Dieses Datenblatt ist das fieseste, was Atmel im Angebot hat. Um die > Existenz des Timer3 zu erkennen, muss man, wie in der Bibel, diverse > Stellen richtig interpretieren. Zum Beispiel auf Seite 5. Habs mal rauskopiert und farblich hervorgehoben.
Magnus M. schrieb: > Thomas Eckmann schrieb: >> Dieses Datenblatt ist das fieseste, was Atmel im Angebot hat. Um die >> Existenz des Timer3 zu erkennen, muss man, wie in der Bibel, diverse >> Stellen richtig interpretieren. > > Zum Beispiel auf Seite 5. Habs mal rauskopiert und farblich > hervorgehoben. Interessant. So langsam steigern sie sich. Im Ersten Datenblatt waren die Interruptvektoren der einzige Hinweis auf den Timer3. Der wurde einem regelrecht untergejubelt. mfg.
Okay, ich glaub's ja, ich hab mich halt nur an die erste Seite gehalten :( Warum geizen die Hersteller eigentlich so mit den Zählern, die sind doch eigentlich recht "einfach" im Aufbau und werden oft gebraucht, sodass man doch eigentlich mindestens mal für die hälfte der IO-Pins eine anbieten könnte? Oder doch nicht so sehr? Naja, wenn ich viele PWMs brauche, muss ich ja nur den FPGA bemühen, da ist das in schnellster schnelle hingefrickelt ;)
decimad schrieb: > Okay, ich glaub's ja, ich hab mich halt nur an die erste Seite gehalten > :( > Warum geizen die Hersteller eigentlich so mit den Zählern, die sind doch > eigentlich recht "einfach" im Aufbau und werden oft gebraucht, sodass > man doch eigentlich mindestens mal für die hälfte der IO-Pins eine > anbieten könnte? Oder doch nicht so sehr? Naja, wenn ich viele PWMs > brauche, muss ich ja nur den FPGA bemühen, da ist das in schnellster > schnelle hingefrickelt ;) Nicht die Hersteller, sondern nur AVR. Lese mal in dem Artikel was der hat: STM32
Ja, so muss dass! Klotzen und nicht kleckern! Mein zukünftiges von euch vorgeschlagenes Board hat ja genau die ;) Was spricht da eigentlich noch für Atmel? hehe
Stephan W. schrieb: > Die weitere PWM Verarbeitung soll ein Atmega8 übernehmen, denn davon hab > ich noch genug rum liegen und die Pins reichen aus. Und warum dann nicht die 8 1-10V Signale direkt in die A/D Eingänge des ATmega8?
MaWin schrieb: > Und warum dann nicht die 8 1-10V Signale direkt in die A/D Eingänge des > ATmega8? Gute Frage. Du meinst mit Spannungsteiler?
:
Bearbeitet durch User
Die meisten Atmels können nur (max) Vcc+0,7V. Das noch nicht mal alle. Bei 10V verlieren die die Fassung oder springen aus Selbiger. Direkt, mit einem einfachen Spannungsteiler, würde ich nur Sonntagnachmittagsspannungen anlegen.
M. H. schrieb: > Du meinst mit Spannungsteiler? also hier nehm ich nen spannungsteiler 4,7k/4,7k um auf 10v zu kommen. direkt am adc pin noch ein 10nf keramikkondensator nach gnd und gut.
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.