Hallo, ich habe zwei Bluetoothmodule. Diese laufen mit 3,3V. Mein uC muss allerdings wegen diverser anderer Peripherie mit 5V betrieben werden. Daher muss ein Pegelwandler für UART her. Ich dachte dabei ans selber erstellen. Klappt das so wie ich mir das gedacht habe (Anhang)? Es handelt sich einmal um das BTM-222 und einmal um das BLK-MD-SPK-B. Da ich das BLK-MD-SPK-B nur ab und an eventuell mal programmieren muss dachte ich mir das ich die Module einfach mittels "jumper" an die UART verbindung hängen kann. Ich danke euch schonmal.
>Klappt das so wie ich mir das gedacht habe (Anhang)? Nein. Mach an die Basis aller Transistoren einen 1k Widerstand. Genauso nochmals je einen an die BC556 vom Kollektor nach Masse
Ich würde einfach den rx vom btm direkt an den uC anschließen (alles
>2,5V sollte eigentlich als high erkannt werden). An den tx einfach
einen Spannungsteiler und gut is
Wenns der µC unterstützt: die 3V3-TX kannst direkt an den 5V-RX hängen (TTL regelt). In die andere Richtung tuts ein einfacher Spannungsteiler aus zwei Widerständen.
Feststellen, ob die 5V-Seite mit 3,3V high leben kann. Wen ja, dann ist eine Richtung schon fertig. Für die andere Richtung tut es ein Spannungsteiler.
Ist ein ATMega128A also der sollte ja 3,3V als High erkennen. Und vom uC zum BTM222 ein Widerstand in die Leitung und ein weiterer nach dem Widerstand gegen GND!?
Rene H. schrieb: > Ist ein ATMega128A also der sollte ja 3,3V als High erkennen. Tut er. > Und vom uC zum BTM222 ein Widerstand in die Leitung und ein weiterer > nach dem Widerstand gegen GND!? Ja. 2K2/4K7 beispielsweise.
Ja cool das dass doch einfacher geht als gedacht :) Dann änder ich das mal. Aber wie ich gezeichnet habe würde theoretisch auch klappen!? Klappt es mit einem Spannungsteiler als mit i2c oder reicht es da vollkommen aus die Leitungen einfach auf 3V3 zu pullen und gut ist?
Joachim B. schrieb: > warum einfach wenn es auch kompliziert geht? Bei der Variante wär ich vorsichtig, wenn die 3,3V Seite einen stromsparenden Modus kennt. Weils dann passieren kann, dass sie darin fast 5V Betriebsspannung abkriegt, versorgt über Widerstand und Diode.
Rene H. schrieb: > Aber wie ich gezeichnet habe würde theoretisch auch klappen!? Nur zusammenklappen aka Kurzschluss. Da fehlen allerhand Widerstände. > Klappt es mit einem Spannungsteiler als mit i2c oder reicht es da > vollkommen aus die Leitungen einfach auf 3V3 zu pullen und gut ist? Pullup auf 3,3V und fertig.
:
Bearbeitet durch User
Hallo, viel zu umständlich.. Wie schon die Vorredner es geschrieben haben, wird dein Controller die high Pegel aus der 3V3 Seite als high erkennen. Für 5V ausgehend 3V3 eingehend nimmst Du einfach einen einen schnellen Mosfet. Spannungsteiler sind nicht so toll wenn Du hohe Übertragungsraten hast. Oder noch besser, wenn es mit der anderen Peripherie passt und dein Controller es unterstützt, versorge ihn doch mit 3V3. Dann brauchst du nichts mehr wandeln.
A. K. schrieb: > Bei der Variante wär ich vorsichtig, wenn die 3,3V Seite einen > stromsparenden Modus kennt. OK, ich betreibe das am Atmel zu PI und vom Atmel zum ESP8266 ohne Probleme
Bülent C. schrieb: > Spannungsteiler sind nicht so toll wenn Du hohe > Übertragungsraten hast. Obige Dimensionierung 2K2/4K7 verbindet problemlos einen 5V ATtiny841 mit einem 3,3V Raspberry Pi bei 115200 bps über 20cm. Viel schneller wird er hier vmtl. auch nicht arbeiten. Im Prinzip hast du recht, bei 8 MHz SPI könnte das ein Thema sein, oder bei meterlangem Kabel. Aber nicht bei UART mit dafür normalen Bitraten auf kurze Distanz.
:
Bearbeitet durch User
A. K. schrieb: > Bülent C. schrieb: >> Spannungsteiler sind nicht so toll wenn Du hohe >> Übertragungsraten hast. > > Obige Dimensionierung 2K2/4K7 verbindet problemlos einen 5V ATtiny841 > mit einem 3,3V Raspberry Pi bei 115200 bps. Viel schneller wird er hier > vmtl. auch nicht arbeiten. > > Im Prinzip hast du recht, bei 8 MHz SPI könnte das ein Thema sein. Aber > nicht bei UART mit dafür normalen Bitraten. Ein weiterer Aspekt ist der erhöhte Stromverbrauch. Da bratet er unnötig, um nur einen Highpegel zu zerteilen. Wenn ich mich nicht irre, wird die maximale Übertragungsrate durch das Tiefpassverhalten des Spannungteilers in Verbindung mit dem I/O Port begrenzt.
Rene H. schrieb: > allerdings wegen diverser anderer Peripherie mit 5V betrieben werden. > Daher muss ein Pegelwandler für UART her. Dann fällt die Variante mit 3V3 Versorgung aus.
Bülent C. schrieb: > Ein weiterer Aspekt ist der erhöhte Stromverbrauch. Da bratet er > unnötig, um nur einen Highpegel zu zerteilen. Ja. Bei Batteriebetrieb würde ich das nicht machen. Unter 1mA treiben einen aber nicht in jeder Schaltung in die Pleite. > Wenn ich mich nicht irre, wird die maximale Übertragungsrate durch das > Tiefpassverhalten des Spannungteilers in Verbindung mit dem I/O Port > begrenzt. Richtig. Aber ist das hier relevant?
also das ist mein ersten UART projekt. Bislang kam ich immer mit i2c au, dies kann das BTM222 nicht. Auch finde ich es langsam nervig ständig PCA9515 als i2c levelshifter einzusetzen. Werden teuer auf dauer, habe ich gerade nicht da und kriege ich bis zum Wochenende nicht. Gleiches gilt für UART levelshifter. Daher kam mir diese idee. Freue mich das es auch einfacher geht. Da ich noch nichts mit UART gemacht habe und ich mir das BTM222 nicht gerade zerschießen möchte ein paar Daten: ATMega128, 16Mhz Quarz, 5v BTM222, 3,3v Baudrate Standard 19..... Verbindung auf der selben Platine. Leiterbahnen 4-5 cm lang. Befehle kommen per Handy rein und sollen verarbeitet werde, Werte werden per BT ans Handy gegeben und sollen angezeigt werden. Nichts zeitkritisches. Das Handy soll rein als "Fernbedienung" fungieren.
Wichtig ist aber, dass du die direkt verbundene Leitung seitens des 5V Gerätes nicht versehentlich mal als Ausgang programmierst. Kannst ggf. einen Angstwiderstand 2K2 reinmachen.
A. K. schrieb: > Ja. Bei Batteriebetrieb würde ich das nicht machen. Unter 1mA treiben > einen aber nicht in jeder Schaltung in die Pleite. Das wissen wir ja eben nicht, ob es Batteriebetrieben sein sollte. Ausserdem müssen wir ja Energiebewusst denken :-) A. K. schrieb: >> Wenn ich mich nicht irre, wird die maximale Übertragungsrate durch das >> Tiefpassverhalten des Spannungteilers in Verbindung mit dem I/O Port >> begrenzt. > > Richtig. Aber ist das hier relevant? Kommt auf die Anforderung und seinem Platinen Layout an.. Auf einer Platine wimmelt ja es nur so an Kapazitäten.
Rene H. schrieb: > ATMega128, 16Mhz Quarz, 5v > BTM222, 3,3v > Baudrate Standard 19..... > Verbindung auf der selben Platine. Leiterbahnen 4-5 cm lang. > > Befehle kommen per Handy rein und sollen verarbeitet werde, Werte > werden per BT ans Handy gegeben und sollen angezeigt werden. > > Nichts zeitkritisches. Das Handy soll rein als "Fernbedienung" > fungieren. Wegen welcher Peripherie musst Du deinen ATMega mit 5V betreiben?
Bülent C. schrieb: > Kommt auf die Anforderung und seinem Platinen Layout an.. Auf einer > Platine wimmelt ja es nur so an Kapazitäten. 3K/50pF gibt eine Grenzfrequenz von ca. 1MHz und mehr als 50pF sind das auch einmal rund um die Platine gewickelt nicht. Er arbeitet aber offenbar mit 19200bd.
Also alleine schon durch den 16Mhz Quarz muss der ATMega zwingend mit 5V betrieben werden. Der Verbrauch ist erstmal nicht wirklich Vorrangig. Betrieben wird das ganze an einem 500VA Ringkerntrafo, 2x 30V gleichgerichtet mit Mittelanzapfung und Schaltregler zu 5V und 3,3V. Also wieviel da "verbraten" wird ist mir egal. Es muss funktionieren.
A. K. schrieb: > 1MHz A. K. schrieb: > 19200bd. Da vergleichen wir jetzt aber Äpfel mit Birnen...Es stimmt aber, das er von der Begrenzung weit weg ist. Hast Recht, in seinem Fall würde ein Spannungsteiler ausreichen, dann hat er halt einen Lötpunkt mehr als wenn er nur einen Mosfet nehmen würde. :-)
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.