Forum: Platinen Pegelwandler 5V<==>3.3V (BTM-222)


von N. G. (newgeneration) Benutzerseite


Lesenswert?

Hallo ihr anderen Forenmitglieder,

ich habe ein "Problem", bzw. muss jetzt auf die schnelle Wissen, wie ein 
möglichst kleiner SMD-Pegelwandler, der 5V in 3V3 wandelt (und 
umgekehrt).

Konkret geht es um ein BTM-222, das in einer 5V-Platine zum Einstatz 
kommen soll. Diese 5V sind fest, da andere Sensoren sonst nicht 
funktionieren. Controller ist übrigens ein mega2560.

Falls jemand eine hilfreiche Antwort hat, wäre ich sehr dankbar. Falls 
noch Infos fehlen einfach nachfragen, aber ich hoffe, dass ich alles 
habe.

mfg
N.G.

von Martin D. (martin_d69) Benutzerseite


Lesenswert?

Irgendwie fehlt da was an deinem Satz!

> ich habe ein "Problem", bzw. muss jetzt auf die schnelle Wissen, wie ein
> möglichst kleiner SMD-Pegelwandler, der 5V in 3V3 wandelt (und
> umgekehrt).

von N.G. (Gast)


Lesenswert?

Martin D. schrieb:
>> ich habe ein "Problem", bzw. muss jetzt auf die schnelle Wissen, wie ein
>> möglichst kleiner SMD-Pegelwandler, der 5V in 3V3 wandelt (und
>> umgekehrt
...heißt.
Jaja, das handy...

von Martin D. (martin_d69) Benutzerseite


Lesenswert?

Z.B: SY89322VMG

von ... (Gast)


Lesenswert?

Martin D. schrieb:
> Z.B: SY89322VMG

geht nicht, er braucht einen bidirektionalen Pegelwandler.
PCA9306 z.B.

von N.G. (Gast)


Lesenswert?

Gibts den auch in smd oder nur auf platine?
Googlebilder (ihr braucht nix sagen ^^) liefert nur kleine platinen

von ... (Gast)


Lesenswert?


von Max H. (hartl192)


Lesenswert?

Ich würde so etwas aufbauen:
http://www.smarkwardt.de/data/images/articles/i2c-level-shift-mosfet.png

Wenn du keine schnellen Signale hast kannst du für die Wandlung von 5V 
--> 3.3V einen Spannungsteiler verwenden.

von N.G. (Gast)


Lesenswert?

UART bei 192000 Baud(bin mir grad net sicher, aber halt die 
Standarteinstellung vom BTM222). Imho ist das zu schnell für nen 
Spannungsteiler

von Max H. (hartl192)


Lesenswert?

N.G. schrieb:
> Imho ist das zu schnell für nen Spannungsteiler

Der Pegelwandler de ich gepostet habe funktioniert bidirektional und 
auch bei I2C mit 400kHz.

von N.G. (Gast)


Lesenswert?

Sry, hatte ich übersehen. Dachte nur es wäre auch ein spannungsteiler

von Maxx M. (maxx2206)


Lesenswert?

Hi,

wie klein ist "möglichst klein" subjektiv für Dich? ;)

Ich hab mir für meine BTM222 Adapterplatinen ein Layout erstellt und die 
Pegelwandlung mit je 2 BC847 samt nötigen Widerständen realisiert.
Der Platzbedarf insgesamt ist nicht sehr groß. Vorteil ist zweifelsfrei 
die Einfachheit der Bauteile und der geringe Preis von insgesamt wenigen 
Cent.

Falls gewünscht kann ich später mal die entsprechenden Screenshots 
nachreichen.

Auch ein Austausch der Erfahrungen wäre evtl. interessant da ich die 
module für die einfache Datenübertragung in Verbindung mit meinen 
MPU6050 in Verbindung mit einem Smartphone oder Notebook Nutzen will, im 
Moment aber noch ein wenig mit dem eigentlichen Datenaustausch kämpfe... 
Es wird zwar gesendet und Empfangen, aber irgendwie bin ich nicht sicher 
ob das Wechseln zwischen Kommandos und reinem "Echo" bzw. durchreichen 
immer richtig hinhaut.

Ciao...

von N.G. (Gast)


Lesenswert?

Hallo Maxx,

Erst mal danke für deine Antwort. Wäre Klasse, wenn du noch Bulder dazu 
hättest. Wenn ich dir auch helfen kann gerne

von Maxx M. (maxx2206)


Angehängte Dateien:

Lesenswert?

Hi,

hier mal die entspr. Ausschnitte aus meinen Eagle Dateien...

Den separaten Reset zum AVR habe ich leider erst im überarbeiteten 
Layout berücksichtigt. Viele beispielschaltungen zum BTM222 hatten aber 
auch keinen. Ich hoffe also, dass meine Probleme mit der "klaren" 
Kommunikation nicht daran liegen.
In den wenigen Beispielen zum BTM222 bei denen der Reset explizit 
verdrahtet ist, wird gerne mal einer ausgeführt um den Ausgangszustand 
des Moduls sicherzustellen.

Kommunikation via Arduino klappt soweit auch scheinbar solange es direkt 
im Code geschieht (z.B. habe ich quasi "hardcoded" den Namen des Moduls 
mit einigen AT Befehlen zu Programmanfang geändert um beim nächsten 
Verbindungsaufbau meldete es sich dann auch mit diesem am Smartphone). 
Versuche, sinnvolle Reaktionen über die serielle Konsole der Arduino IDE 
zu bekommen scheitern dagegen...

Wie auch immer... die Transistorlösung zur Pegelwandlung benötigt zwar 
eine gewisse Menge Bauteile, diese sind aber im Centbereich angesiedelt 
und je nach eigenem Layout lassen sie sich gut und relativ platzsparend 
einfügen...

Ciao...

von Maxx M. (maxx2206)


Lesenswert?

Hi,

schon irgendwelche Fortschritte bzw. war die Idee mit den 
Transistorstufen als Pegelwandler hilfreich?

Wie auch immer.. animiert durch Deine Anfrage hab ich meine 
Testschaltung(en) auch wieder ausgegraben und werde mich auch wieder 
daran machen. Beim letzten mal hatte ich wie bereits angedeutet 
maßgeblich 2 Probleme...
1. die Übertragung von der Arduino IDE zum Smartphone klappte nicht über 
die Konsole. Fixe Strings oder Daten die im Programmcode standen wurden 
scheinbar gut übertragen.
2. Die Übertragung zur (modifizierten) BluetoothChat App erfolgt in eher 
unregelmäßigen Byteschüben, d.h. ich bekomme keine ganzen Strings 
übertragen. Die ankommenden Daten (z.B. Echos der ans BTM gesendeten 
Kommandos) kommen scheinbar willkürlich.

Statt einem einfachen

"ATI2"

kommt z.B.

"AT"
"I"
"2"

am Smartphone an, obwohl keine separaten CRs oder LFs mit gesendet 
werden.

Die eigentliche Idee hinter meinen BTM222 Versuchen ist, die Module an 
diverse Sensoren (habe z.B. einige MPU6050 bzw. ADXL335 Module hierzu 
erstanden) zu koppeln um die ermittelten Daten in Echtzeit in einer 
einfachen Android App darzustellen. Eine zweite Projektidee sieht vor, 
Meßwerte mit dem internen ADC eines AVR zu erfassen (ca. 1Vss analog) 
und ebenfalls als String zu übertragen und als einfache Kurve 
anzuzeigen.

Die BluetoothChat App dient erstmal nur dem Sicherstellen der 
erfolgreichen Übertragung dieser "Telegramme", die spätere Auswertung 
bzw. Aufbereitung in einer kleinen App sollte erst dann in Angriff 
genommen werden. Und eben an diesem Punkt stecke ich irgendwie fest. 
Evtl. ja auch nur mit meiner Herangehensweise ^^ ?!

Wenn Du Deine Pegelwandlung soweit fertig hast und wir uns über die 
nachfolgende Übertragung und (erfolgreiche) Auswertung der eigentlichen 
Daten ein wenig Austauschen könnten wäre das sehr nett...

Ciao...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Maxx M. schrieb:
> Statt einem einfachen
> "ATI2"
>
> kommt z.B.
>
> "AT"
> "I"
> "2"
> am Smartphone an
Mit Hochkommata, oder wie? Wo siehst du das?

> obwohl keine separaten CRs oder LFs mit gesendet werden.
Kannst du die Daten auch mal in binärer Form (also als hexadezimale 
Zahlen) anzeigen lassen. Dann siehst du ja, ob da ein OxD oder ein OxA 
mitkommt...

von Maxx M. (maxx2206)


Lesenswert?

Hi,

hab mir die Sache heute nochmal vorgenommen.
Ein Teil des Problems lag am Arduino UNO.
Die Kommunikation mit dem BTM lief über die Hardware-Serial, diese hat 
aber scheinbar immer sporadisch Zeichen geschluckt, da die Schnittstelle 
auch zur Kommunikation mit der Konsole der Arduino IDE genutzt wird. 
Interessanterweise eben auch, wenn ich überhaupt keine Konsolenausgabe 
in meinem Test-Sketch verwendet habe. Wieso ist mir och schleierhaft...

Als ich das Modul schließlich an einem Arduino Mega und dessen 2. 
serieller Schnittstelle angeschlossen habe klappte das mit der 
Übertragung dann auf Anhieb tadellos.
Die AT Kommandos im Setup Teil werden Zeilenweise ausgegeben, und auf 
einzelne Zeichen wie "1" oder "2" die vom Smartphone kommen wird in der 
einfachen Switch Bedingung auch richtig reagiert.

Soweit scheint also schon mal alles zu funktionieren. Die nächsten 
Schritte wären nun, ganze "Telegramme", also klar definierte Strings mit 
einfacher Kennung am Anfang zur Auswertung (später sollen ja 
unterschiedliche Daten wie z.B. x/y/z Bewegung oder parallele analoge 
Werte eines Meßgebers übertragen werden) und Terminierung (\n) zu senden 
und am Smartphone zu lesen/interpretieren.

Mit den Stringfunktionen bin ich aber scheinbar noch ein wenig auf 
Kriegsfuß... da ist erst mal Nachsitzen angesagt ;)

Ciao...

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
Noch kein Account? Hier anmelden.