Hallo Miteinander, vielleicht kann mir jemand helfen? Ich möchte das RFM12b an einen Atmega328 betreiben. Der RFM12B arbeitet allerdings mit 3v3, der Atmega mit 5V. Ein Spannungsteiler mit Widerstände kommt nicht in Frage. Als alternative denke ich an einen Pegelwandler. Im Netz wie auch hier - ein schon oft beschriebenes Thema. Leider finde ich für mich keine vollständig erklärende Lösung. Evtl. kann mir jemand eine gute Lösung verraten. Wenn er mir hierzu noch eine entsprechende Beschaltung aufzeigen könnte, wäre ich sehr dankbar. Grüße amecke
Tach, a) Pegelwandler: 1) Spricht was dagegen, den Atmega328 auch mit 3V3 zu betreiben? 2) Pegelwandler: Geht natürlich auch, aber selbst gekaufte sind auf der HV->LV Seite häufig auch nur als Spannungsteiler realisiert. 3) Für Wagemutige: Der RFM12B rennt auch mit 5V sagt das Internetz. Aus eigener Erfahrung kann ich das bestätigen, hatte mal einen für einige Tage im 5V-Dauerbetrieb. Folgeschäden? Bisher keine, rennt seit Monaten fehlerfrei mit Batteriespannung. b) RFM12-Beispiele: Schon mal hier geguckt? Beitrag "Beispielprogramm für RFM12 433MHz Funk-Module"
Vielen Dank für deine Antwort. Im Augenblick spricht eigentlich nichts dagegen den Atmega328 mit 3,3V zu betreiben. (...das zu schaltende Relais (SSR) arbeitet glaube mit 3...5V.) Als Spannungsregler hätte ich jetzt einen L7805CV benutzt. Dieser regelt allerdings die Spannung auf 5V. Könntest du mir einen Regler nennen welcher auf 3,3V reguliert. Wie würden dann hierzu die externe Beschaltung aussehen?
> Könntest du mir einen Regler nennen welcher auf 3,3V reguliert. Nein, nicht ohne die Randbedingungen ( Vin, Aout ) zu kennen. Je grösser die beiden, desto mehr Abwärme -> Package -> Kühlung. -> Gugl + "Festspannungsregler 3.3V" öffnet dir das ganze Universum. Oder aber im Online-Katalog eines Versenders (Reichelt, Conrad, ... ), denn dort gibt es gleich die Antwort auf deine zweite Frage: > Wie würden dann hierzu die externe Beschaltung aussehen? -> Datenblatt des von dir ausgewählten Spannungsreglers meistens nur je ein Kondensator/Elko zwischen Vin/Vout und GND.
...es kann so einfach sein. ;-) Habe jetzt den LM1117 bei reiche*t gefunden. Würde folgendes Szenario funktionieren? 9V <--> L7805CV <-- (5V) --> Atmega328 (Betriebsspannung) ^ | |----> LM1117 <-- (3,3V) --> RFM12B (Betriebsspannung) An der Versorgungspannung von 9V zapfen sich einmal der L7805CV und der LM1117 die Spannung ab. ... Die 3,3V Datenleitungen (SPI) für die Ansteuerung des RFM12B realisiere ich dann mittels Spannungsteiler.
amecke schrieb: > Die 3,3V Datenleitungen (SPI) für die Ansteuerung des RFM12B realisiere > ich dann mittels Spannungsteiler. Auf einmal doch mit Spannungsteiler?
Nein, bzw. nicht vollständig mit Spannungsteilern. Nur die Datenleitungen für den RFM12b: -- MOSI (D in) -- SCK (Clock) -- SS (Select) Den Rest schließe ich - bis auf die +3,3V Betriebsspannung des RFm12b - direkt an den Atmega328. Die +3,3V des RFM12b über den oben beschriebenen LM1117 Festspannungsregler.
amecke schrieb: > Den Rest schließe ich - bis auf die +3,3V Betriebsspannung des RFm12b - > direkt an den Atmega328. Schon mal im Datenblatt des Atmega geguckt, wie hoch die Spannung sein muss, die zuverlässig als H erkannt wird? Kann zwar funktionieren, ist aber von "robust design" soweit entfernt wie Politik von Wahrheit.
Der Rest ist IRQ und MISO (DOut). Was müsste denn deiner Meinung nach - noch gemacht werden? (Beschaltungsmäßig)
katastrophenheinz schrieb: > Schon mal im Datenblatt des Atmega geguckt, wie hoch die Spannung sein > muss, die zuverlässig als H erkannt wird? 0,6*Vcc ;)
Vih ( die Spannung, die zuverlässig als H erkannt wird ) ist bei deiner Beschaltung nur um 0.3 V überschritten. Im Normalfall funktioniert das. Aber bei Störungen auf den Leitungen können diese 0.3V zuwenig sein und stellen sich als schwer zu findende Fehlerquellen heraus. Daher: Zum Ausprobieren gehts, aber für ein robustes Design würde ich dir empfehlen, die Pegel der Ausgangsssignale vom RFM12 auf 5V anzupassen http://www.mikrocontroller.net/articles/Pegelwandler#3.3V_-.3E_5V
Ok, - verstehe! Hmm..., die Pegelwandler auf der Erklärungsseite sind wohl eher schlecht zu bekommen?! Könntest du mir denn einen Pegelwandler empfehlen? Diese müsste ja dann 5 Eingänge und 5 Ausgänge haben.
amecke schrieb: > Als alternative denke ich an einen Pegelwandler. Siehe Pegelwandler. katastrophenheinz schrieb: > 1) Spricht was dagegen, den Atmega328 auch mit 3V3 zu betreiben? Scheint mir die einfachste Lösung zu sein. Für den 328P kann ich 12,280 Mhz empfehlen, das ist Baudratenfreundlich. Wenn ich mich richtig erinnere, ist der 328P bei 3.3V bis knapp 14 Mhz spezifiziert (safe ratings). Das Datenblatt klärt mit einem Diagramm darüber auf. amecke schrieb: > Könntest du mir denn einen Pegelwandler empfehlen? Diese müsste ja dann > 5 Eingänge und 5 Ausgänge haben. Schau dir obigen Artikel an. Die 74AVC Familie scheint genau das zu bieten.
> Könntest du mir denn einen Pegelwandler empfehlen? Diese müsste ja dann > 5 Eingänge und 5 Ausgänge haben. Nein, du brauchst nur je zwei, denn die Richtung 5V->3.3V funktionieren ja problemlos über Spannungsteiler. Die Richtung 3.3->5V kannst du mit MOSFETs bauen, hier gibt's die Schaltung: http://www.sparkfun.com/datasheets/BreakoutBoards/Level-Converter-v10.pdf oder mit einem 74HCT-Baustein: 74HCT125 ist zwar ein wenig oversized (Bietet 4fach, du brauchst 2x), aber frisst ja kein Brot.
... nimm 74hct125. Kostet 0,21 bei Reichelt. Jede andere Lösung wird teurer, wenn du die Teile nicht in der Bastelkiste liegen hast.
Nochmal vielen Dank für die Hilfen bisher. Hier nochmal eine Skizze, wie ich ungefähr jetzt die Schaltung aufbauen würde. Evtl. kann der eine oder andere einige Tipps bzw. Ratschläge dazu geben?!
...da ist jetzt was faul: 1) Du möchtest mit dem ...125 doch erreichen, daß der mega328 5V-Logigpegel an den Eingangsleitungen hat, die vom RFM12 kommen. Erreichst du das mit deiner Schaltung? 2) Gleichzeitig willst du mit einem Spannungsteiler aus zwei Widerständen erreichen, daß von den 5V-Ausgängen des mega328 nur noch 3,3V am RFM12 ankommen. Wieviele Volts kommen denn mit deiner Schaltung bei logisch 1 am RFM12 an? 3) Der 74HCT125 hat Eingänge, die mit nichtG1...nichtG4 gekennzeichnet sind. Hast du die auf dem Schirm? 4) Was hast du mit den Pins 20-22 vor, die jetzt unbeschaltet gemalt sind? Guck dir mal andere Designs an, wie die mit den Analog-Spannungen umgegangen sind z.B. Arduino ( nicht gut ) oder den hier (besser): http://download.chip45.com/Crumb168_328_V2.3_schematics.pdf Für den Anfang tut die Arduino-Lösung ( AVcc = Vcc ), wenn du ernsthaft mit den Analogfunktionen arbeiten willst, dann empfiehlt sich die bessere Lösung, die ist genauso gebaut wie das Atmel-Manual das vorgibt.
Einfach zwei Dioden in Reihe vor dem RFM Modul. Bleiben 3,6-3,8V als Versorgung übrig. Ist zumindest näher am Spec als 5V. Einfach und günstig.
> 1) Du möchtest mit dem ...125 doch erreichen, daß der mega328 > 5V-Logigpegel an den Eingangsleitungen hat, die vom RFM12 kommen. > Erreichst du das mit deiner Schaltung? Ja, das möchte ich erreichen. Ich dachte - ich würde das mit skizzierter Schaltung erreichen?! Mein aktuelles Verständnis sieht so aus, das der 74HCT125 ein Pegelwandler ist. Dieser eine Pegelanpassung von 5V auf 3,3V und 3,3V auf 5V durchführt und ohne externe Beschaltung auskommt. Schalte ich 5V an den Eingang A1 bekomme ich am Ausgang Y1 die gewünschten 3,3V. Umgekehrt, also wenn ich 3,3V an Y1 lege an A1 5V bekomme. > 2) Gleichzeitig willst du mit einem Spannungsteiler aus zwei > Widerständen erreichen, daß von den 5V-Ausgängen des mega328 nur noch > 3,3V am RFM12 ankommen. Wieviele Volts kommen denn mit deiner Schaltung > bei logisch 1 am RFM12 an? Die Spannungsteiler habe ich verworfen. Wie du ja schon erwähntest, würde die Richtung atmega328 zu RFM12B rein Pegeltechnisch funktionieren. Also per Spannungsteilerregel 5V auf 3,3V herunterteilen. Eine logische 1 vom RFM12B von etwa 3,3V zum Atmega328 dagegen, könnte bei Störungen nicht immer korrekt funktionieren. Daher der Einsatz des Pegelwandlers. > 3) Der 74HCT125 hat Eingänge, die mit nichtG1...nichtG4 gekennzeichnet > sind. Hast du die auf dem Schirm? Ja, zumindest habe ich diese auf dem Datenblatt erkannt. Sagen mir aber nicht wirklich etwas. Ich hätte jetzt vermutet das diese das Signal invertieren?! Müssen diese Pins denn geschaltet werden? Oder per Pullup-down Widerständen auf einen definierten Zustand gebracht werden?! > 4) Was hast du mit den Pins 20-22 vor, die jetzt unbeschaltet gemalt > sind? 20 und 21 auf Vcc und 22 auf Gnd
amecke schrieb: > Dieser eine Pegelanpassung von 5V auf > 3,3V und 3,3V auf 5V durchführt und ohne externe Beschaltung auskommt. > Schalte ich 5V an den Eingang A1 bekomme ich am Ausgang Y1 die > gewünschten 3,3V. Umgekehrt, also wenn ich 3,3V an Y1 lege an A1 5V > bekomme. nicht ganz, der taugt nur für die Richtung 3.3 -> 5. Die Richtung 5->3.3 realisierst du am einfachsten über Spannungsteiler (je zwei Widerstände mit passenden Werten in Reihe). Wenn du also die 3.3->5 nicht realisieren möchtest, verzichte komplett auf den 125 und nimm stattdessen 2x3 Widerstände für die Umsetzung 5->3.3 Warum geht 125 nicht für die Richtung 5->3.3? Logisch 1 am Ausgang ist immer ein Spannungswert nahe Vcc, 0 immer nahe 0V. Wenn du den 125 also mit 5V betreibst, kommen hinten auch 5V raus. Jetzt könnte man ja auf die Idee kommen: "super, dann betreibe ich den mit 3.3V". Geht aber auch nicht, weil 74hct125 nicht mit dieser Spannung spezifiziert und außerdem darf ein Eingangssignalpegel nie deutlich höher als Vcc sein. Falls doch, dann werden irgendwelche PN-Übergänge zum Substrat leitend, die nie leitend werden dürfen und du baust aus der gesamten Chipfläche im Grunde genommen nur noch eine Diode in Durchlassrichtung. Heute gibt es Schutzschaltungen, die das verhindern, aber zu Anfangszeiten von CMOS war das ein zuverlässiges Mittel, seinen Chip zu grillen. Also würde ich an deiner Stelle einfach die Widerstände nehmen. >Ja, zumindest habe ich diese auf dem Datenblatt erkannt. Sagen mir aber >nicht wirklich etwas. Ich hätte jetzt vermutet das diese das Signal >invertieren?! Müssen diese Pins denn geschaltet werden? Oder per >Pullup-down Widerständen auf einen definierten Zustand gebracht werden?! Im Datenblatt steht in der Logiktabelle bei nichtG=1 am Ausgang ein Z. "Z" steht für "Ausgang hochohmig". D.h. da kommt nur dann was raus, wenn du nichtG auf 0v legst. Aber da du ja komplett auf 125 verzichten kannst, brauchst du dich da nicht weiter drum kümmern. >20 und 21 auf Vcc und 22 auf Gnd Lass Aref erstmal unbeschaltet und mit 100nF gegen GND abblocken. Ausserdem je 100nF zwischen Vcc und Gnd und Avcc und GND, möglichst dicht am Chip, wenn möglich gleich unter den IC-Sockel verbauen. Schließlich fehlt bei dir noch die Beschaltung des Reset-Pins und der 6pol. Pfostenstecker für die Programmierung über ISP. In dem verlinkten Schaltplan von oben kannst du sehen, was dafür zu tun ist.
> Wenn du also die 3.3->5 nicht realisieren möchtest, ... Das verstehe ich jetzt nicht. Du hattest doch die Problematik mit dem zu kurzen Signalabstand angesprochen? > ...Vih ( die Spannung, die zuverlässig als H erkannt wird ) ist bei deiner > Beschaltung nur um 0.3 V überschritten.... > Daher: Zum Ausprobieren gehts, aber für ein robustes Design würde ich > dir empfehlen, die Pegel der Ausgangsssignale vom RFM12 auf 5V > anzupassen... Deshalb die Erweiterung mit dem Pegelwandler (74HCT125). Nach dem aktuellen Wissenstand würde jetzt die Schaltung wie folgt aufbauen. (siehe Skizze) Was ist jetzt mit den High-Signalen (3,3V) vom RFM12b? Bei schlecht Wetter könnte der Atmega diese nicht als High erkennen. ;-)
...dann guck noch mal auf deinen handcrafted schematic, den du gestern gepostet hast: - Die Ausgangssignale des RFM12 ( MISO, IRQ ) gehen ohne irgendwas dazwischen an Eingänge des 328. d.h. da kommen 3,3V an und dort müsste der Pegelwandler dazwischen. - Die Eingangssignale des RFM12 ( MOSI, SCK, SS ) kommen über den 125. Da der aber auch an 5V hängt, sind die Pegel an dessen Ausgang immer noch 0/5V. Also unverändert. Und am RFM12 kommt immer noch ein zu hoher Pegel an. Da muss ein Spannungsteiler hin.
>Die Eingangssignale des RFM12 ( MOSI, SCK, SS ) kommen über den 125. >Da der aber auch an 5V hängt, sind die Pegel an dessen Ausgang immer >noch 0/5V. Du hast Recht - das macht überhaupt keinen Sinn. >Die Ausgangssignale des RFM12 ( MISO, IRQ ) gehen ohne irgendwas >dazwischen an Eingänge des 328. d.h. da kommen 3,3V an und dort müsste >der Pegelwandler dazwischen. Stimmt! not(robust design) ... Ok, - hier jetzt mein zweiter handcrafted schematic. :-)
So wird ein Schuh draus! Sieht gut aus. Ich würde jetzt noch einen 6pol. ISP-Stecker vorsehen und 10k von nReset nach Vcc.
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.