Forum: Mikrocontroller und Digitale Elektronik "Spannungsfeld" - Fonera - Levelshifter - Butterfly


von Norbert (Gast)


Lesenswert?

Hallo zusammen,

ich habe hier das folgende Setup liegen:

La Fonera (FON2100) mit serieller Schnittstelle
Levelshifter 3.3Volt
Butterfly mit serieller Schnittstelle

(Das konkrete Projekt sieht vor: Butterfly liesst diverse Sensoren, gibt 
die Werte via Butterfly/USART aus und der Fonera verarbytet diese 
weiter.)


(1) Wenn ich mein Notebook mit USB/Serial-Wandler via Levelshifter an 
den Fonera anschliesse: Kann ich kommunizieren.

(2) Wenn ich das Butterfly mit USB/Serial-Wandler an das Notebook 
anschliesse: Kann ich kommunizieren.

Was nicht funktioniert:

(3) Fonera<->Levelshifter<->Butterfly.

Auf dem Fonera ist OpenWRT installiert; theoretisch wuerde ich gerne 
mittels
1
screen /dev/ttyS0 9600 8N1
Ausgaben vom Butterfly lesen. Das funktioniert nur leider nicht.

Ich vermute, dass der "on board levelshifter" vom Butterfly da irgendwie 
zwischenfunkt; mir fehlen aber die Kentnisse, da genau zu analysieren. 
Hat jemand eine Idee, woran es (genau) liegen koennte?

Als Levelshifter habe ich diesen: 
http://www.dd-wrt.com/wiki/index.php/LaFonera_Hardware_Serial-Cable-Port#Very_simple_console_adapter 
aufgebaut; ein alternativer mit Max3232 funktioniert leider ebenfalls 
nur in Setup (1) und (2).

Vielen Dank fuer Tipps schonmal,

--
Norbert

von Jan (Gast)


Lesenswert?

Hallo,

ich bin gestern abend über genau das gleiche Problem gestolpert:

Mein Setup:

PC -> max3232 -> LaFonera    OK (Senden und Empfangen)
PC -> max3232 -> atmega8L    OK (Senden und Empfangen)
LaFonera -> atmega8L         FAIL(Und ja, TX und RX richtig 
angeschlossen)

Da sowohl die LaFonera als auch der atmega8L auf 3,3V laufen (der atmega 
wird durch die pins der Fonera gespeist) sollte das eigentlich 
funktionieren.

@ Norbert:
Hast du schon eine Lösung gefunden?

...meine Welt steht Kopf :) werde da sonst wohl mal mit den Oszilloskop 
dran müssen...

von Jan (Gast)


Angehängte Dateien:

Lesenswert?

Also "To whom it may concern",

ich habe heute abend mal das Ganze analysiert... Habe das Oszi mal an TX 
der Fonera gehängt und mitgeloggt, was da so über die Leitung geht... 
Soviel ist sicher..

1.) das TX Signal von der Fonera kommend ist sauber.
Hier nochmal zu Erinnerung: 0.0V == false, 3,3V == true

2.) wenn man NUR TX von der Fon an RX des Atmega8L anschließt 
funktioniert die Kommunikation von der Fonera zum Atmega8L reibungslos. 
(Der Atmega8L wird dabei von der Bordspannung der Fonera gespeißt ~3,3V)

JETZT KOMMTS:

Hab danach auch mal TX vom Atmega8L an RX von der Fonera angeschlossen 
und sobald ich nun etwas vom Atmega via Fonera schickte, schmierte der 
Atmega8L ab und am Oszi kam nur noch Müll an.

KOMISCH dachte ich mir und habe nachgemessen mit dem verblüffenden 
Ergebnis: an RX der Fonera liegen 3,0V an!?! Meines Wissens nach sollte 
das nicht der Fall sein, da das doch ein Eingangspin ist. Der soll 
schließlich horchen, was da vom TX des Atmega8L kommt.
Zum Vergleich: am RX des Atmega8L liegt 0V an. Am TX des Atmega8L 3,3 
Volt (ist ja auch ok so, da die Ruhespannung 3,3 Volt sein soll)

WAS PASSIERT ALSO, WENN DER ATEMGA8L ANFÄNGT ZU SENDEN?
Der Atmega8L zieht TX auf 0,0V (fürs Startbit) und auf dem RX der Fonera 
liegt noch 3,0V an. Genau, BÄM, Kurzschluss.

Wenn die Fonera mit dem PC über den MAX3232 kommuniziert scheint dies 
offensichtlich nicht zu passieren (Warum wieso - kein Plan- da muss ich 
als Hobbyelektriker nochmal nachdenken, nachmessen und Datenblätter 
lesen :)

Was meint Ihr? (Antwort immer gewünscht)

mfg Jan

von Marc (Gast)


Lesenswert?

Klingt für mich eher nach einem Pullup auf der RX-Leitung von der 
Fonera, hab meine Fonera leider grad nicht zur Hand, sonst würde ich das 
nachmessen.
Gruß Marc

von Jan (Gast)


Lesenswert?

Bytheway,
Ich sende von der Fonera mittels:
1
echo -e -n "foo\r" > /dev/ttyS0
 das kann man auch prima in scripte einbauen.

Sonst halt
1
opkg install minicom
und dann mit
1
minicom -s
 Baudrate etc einstellen.

-e = Escapezeichen beachten
-n = nicht selber \n\r am Ende senden (kann gut nerven :)


PS: (bevor man irgendwas mit ttyS0 macht muss man natürlich in 
/etc/inittab alles mit "#" auskommentieren, was mit sttyS0 zu tun hat, 
sonst wird die serielle Schnittstelle an ne Console gebunden)

von Martin P. (billx)


Lesenswert?

lustig is ja auch das die fonera nicht bootet wenn noch was an der 
schnitstelle hängt..... steht irgendwo im openwrt oder ddwrt wiki

von Jan (Gast)


Lesenswert?

Moin,

@ Marc: ich habe selber mal nachgemessen: Zwischen V++ und RX der Fonera 
sind 100kOhm pull up Widerstand eingebaut.. Der Pull up soll den RX der 
Fonera auf logisch 1 halten, damit Störsignale keine Chance haben.
Ok.
Bleibt die Frage offen, warum der Atmega beim Sendevorgang hängen bleibt 
und nur durch kurzes Abziehen der Versorgungsspannung wieder zum Leben 
zu erwecken ist.

mfg Jan

von Jan (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

habe soeben das Ganze mal mit nem 100 Ohm "Schutzwiderstand 
ausprobiert". Funktioniert!
Aber: ohne funktioniert es nun auch.... HUST

Kein Plan, aber jetzt kann ich ohne Probleme senden und empfangen. Weis 
nicht, was ich die letzten Tage falsch gemacht hab...

Tja, manchmal ist es nen Layer8-Problem und sitzt zwischen Tastatur und 
Stuhl.... ;)


mfg Jan

von Ingo (Gast)


Lesenswert?

@ Jan:
Ich versuche auch verzweifelt die Console von der seriellen 
Schnittstelle der Fonera zu trennen.
Leider ist inittab bei mir (DD-WRT) read-only und ich kann nichts 
auskommentieren.
Hast Du da eine Idee?

Gruß, Ingo

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.