hi @all, ich versuche gerade einen arm-cortex mit einem atmel reden zu lassen - i2c und spi fallen aus - erster versuch war rx/tx (uart) direkt zu verbinden, das tut aber nicht - also versuche ich rs232 von meinem 2ten versuch hab ich mal den schaltplan angehängt, kann mir jemand einen tip geben warum das nicht funktioniert ??? auf dem foto ist das verwendete breakout ...
Hallo, > Ray M. schrieb: > - erster versuch war rx/tx (uart) direkt zu verbinden, > das tut aber nicht Wenn die direkte Verbindung nicht geht, dann wird jede umständlichere Verbindung auf Umwegen auch nicht funktionieren. Also kläre, warum die direkte Verbindung nicht geht. - Ist Rxd und Txd tatsächlich korrekt über Kreuz verdrahted worden? - Kommt auf Txd übrhaupt ewas raus (mit Oszi prüfen)? - Sind die Parameter auf beiden Seiten gleich? - Sind irgend welche Zusatzbedingungen, z.B. Hardware-Handshakes, nicht beachtet worden? Gruß Öletronika
U. M. schrieb: > Hallo, >> Ray M. schrieb: >> - erster versuch war rx/tx (uart) direkt zu verbinden, >> das tut aber nicht > Wenn die direkte Verbindung nicht geht, dann wird jede umständlichere > Verbindung auf Umwegen auch nicht funktionieren. > > Also kläre, warum die direkte Verbindung nicht geht. > - Ist Rxd und Txd tatsächlich korrekt über Kreuz verdrahted worden? ja ... 2 kabel mal ustecken um das zu testen ging ja schnell ;) > - Kommt auf Txd übrhaupt ewas raus (mit Oszi prüfen)? ja > - Sind die Parameter auf beiden Seiten gleich? welche parameter ??? 9600/8/N/1 meinst du ? > - Sind irgend welche Zusatzbedingungen, z.B. Hardware-Handshakes, nicht > beachtet worden? wenn ich wüste von was du hier sprichst, könnte ich das checken, leider bin ich kein elektroniker sonder quereinsteiger/bastler, deshalb stell ich hier im forum eventuell auch so halbgare fragen ... ich hab noch einen test gemacht - an stelle des arm-cortex einen 2ten atmel genommen - uart<-->uart kommunikation funktionert dann - aber über die schaltung mit den pegelwandlern reden die beiden atmels auch nicht mit einander, deshal die annahme das hier was nicht stimmt sinn der übung ist das die dinger über 2-3meter mit einander verbunden werden sollen und dabei die übertragungsleitung so störunanfällig wie möglich sein soll, dabei ist noch wichtig => je weniger kabel je besser ;)
wenn ich 2 arm-cortex via rx/tx-uart zusammenstecke funktioniert es wenn ich 2 atmel via rx/tx-uart zusammenstecke funktioniert es wenn ich einen atmel und einen arm-cortex via rx/tx-uart zusammenstecke geht nix ich nehme mal an das dies irgedwas mit unterschiedlichen ttl-pegeln zu tun hat, deshalb wollte ich die schaltung mit den 2x max3232 verwenden, aber das tut auch nicht ... wie bekomme ich eine communication von arm und atmel über serial oder ttl-uart ans laufen, hat eventuell noch jemand einen tip ???
Weißt Du wirklich, was Du da tust? Anhand Deiner Zeichnung oben: Warum laufen die beiden (Arduino- bzw. ARM-)Platinen jeweils mit 5V und beide Max3232 mit 3,3V? Das kann so nicht gehen. Der Max muss immer mit der Spannung (3,3V bzw. 5V) laufen, die die zugehörige Prozessorplatine als Pegel für RS232 hat. Der Cortex hat sicher keine 5V, (ev. mit Konverter?) sondern 3,3V, die muss sein MAX3232 auch bekommen.
google schrieb: > Weißt Du wirklich, was Du da tust? nein, sonst würde ich ja nicht fragen ? ;) > Anhand Deiner Zeichnung oben: Warum laufen die beiden (Arduino- bzw. > ARM-)Platinen jeweils mit 5V und beide Max3232 mit 3,3V? Das kann so > nicht gehen. ok ... > Der Max muss immer mit der Spannung (3,3V bzw. 5V) laufen, die die > zugehörige Prozessorplatine als Pegel für RS232 hat. Der Cortex hat > sicher keine 5V, (ev. mit Konverter?) sondern 3,3V, die muss sein > MAX3232 auch bekommen. ok, alles klar ... dann teste ich das mal mit allen beteiligten an der gleichen spannungsversorgung ... danke für den hinweis ...
Ray M. schrieb: > google schrieb: >> Weißt Du wirklich, was Du da tust? > > nein, sonst würde ich ja nicht fragen ? ;) > >> Anhand Deiner Zeichnung oben: Warum laufen die beiden (Arduino- bzw. >> ARM-)Platinen jeweils mit 5V und beide Max3232 mit 3,3V? Das kann so >> nicht gehen. > > ok ... > >> Der Max muss immer mit der Spannung (3,3V bzw. 5V) laufen, die die >> zugehörige Prozessorplatine als Pegel für RS232 hat. Der Cortex hat >> sicher keine 5V, (ev. mit Konverter?) sondern 3,3V, die muss sein >> MAX3232 auch bekommen. > > ok, alles klar ... dann teste ich das mal mit allen beteiligten an > der gleichen spannungsversorgung ... > > danke für den hinweis ... funktioniert auch nicht, ich hab es jetzt wie im schaltplan und alle an der gleichen spannungsversorgung, also vcc von den uC's und +/- von den max3232 komischerweise wird einer der beiden max3232 auch heiß ... wieso das ???
Hallo, > Ray M. schrieb: > wenn ich 2 arm-cortex via rx/tx-uart zusammenstecke funktioniert es > wenn ich 2 atmel via rx/tx-uart zusammenstecke funktioniert es > > wenn ich einen atmel und einen arm-cortex via rx/tx-uart zusammenstecke > geht nix da habe ich die Vermutung, dass die Schnittstellenparameter nicht übereinstimmen. Bei 2 gleichartigen uC mit gleicher Programmierung würde es ja nicht auffallen, wenn z.B. die Baudrate daneben liegt. Kannst das aber auch mit dem Oszi prüfen. Bei 9600/8N/1 müßten die 10 Bits (8 Datenbits + Start- und Stoppbit) abzählbar sein und die Bitlänge von ca. 0,104ms sollte auch geprüft werden. Prüfe auch, das die Pegel korrekt sind. Nicht dass die auf einer Seite negiert werden -> Ruhepegel auf TTL-Seite = High ( ca. 3V...3,3V) -> hinter RS232-Treiber = Low (-3V...-15V)) Bei unterschiedlichen uC wäre es aber reiner Zufall, dass beide zufällig die gleiche Abweichung haben. Wenn du einen RS232-Treiber dran hast, könntest du auch eine Verbindung zu einem PC herstellen und die Übertragung mit einem Terminalprog. überprüfen. Da würde sich eine falsche Baudrate auch sofort bemerkbar machen. Den Hinweis mit der falschen Betriebsspannung an den RS232-Treibern hast du zur Kenntnis genommen? Wenn so ein chip heiß wird, gibt es normal 3 Möglichkeiten a) Der ist kaputt b) Der wird am Ausgang überlastet. c) Der ist falsch beschaltet. Gruß Uwi
U. M. schrieb: > Hallo, >> Ray M. schrieb: >> wenn ich 2 arm-cortex via rx/tx-uart zusammenstecke funktioniert es >> wenn ich 2 atmel via rx/tx-uart zusammenstecke funktioniert es >> >> wenn ich einen atmel und einen arm-cortex via rx/tx-uart zusammenstecke >> geht nix > da habe ich die Vermutung, dass die Schnittstellenparameter nicht > übereinstimmen. > Bei 2 gleichartigen uC mit gleicher Programmierung würde es ja nicht > auffallen, wenn z.B. die Baudrate daneben liegt. > Kannst das aber auch mit dem Oszi prüfen. ok, ich bin kein elektroniker, ich kann nur gut software ;) muss ich zu einem bekannten, der hat ein oszi ... > Bei 9600/8N/1 müßten die 10 Bits (8 Datenbits + Start- und Stoppbit) > abzählbar sein und die Bitlänge von ca. 0,104ms sollte auch geprüft > werden. > Prüfe auch, das die Pegel korrekt sind. Nicht dass die auf einer Seite > negiert werden > -> Ruhepegel auf TTL-Seite = High ( ca. 3V...3,3V) > -> hinter RS232-Treiber = Low (-3V...-15V)) > > Bei unterschiedlichen uC wäre es aber reiner Zufall, dass beide zufällig > die gleiche Abweichung haben. > > Wenn du einen RS232-Treiber dran hast, könntest du auch eine Verbindung > zu einem PC herstellen und die Übertragung mit einem Terminalprog. > überprüfen. > Da würde sich eine falsche Baudrate auch sofort bemerkbar machen. > > Den Hinweis mit der falschen Betriebsspannung an den RS232-Treibern hast > du zur Kenntnis genommen? ja ... hab ich auch schon behoben, hilft nur nix ;( > Wenn so ein chip heiß wird, gibt es normal 3 > Möglichkeiten > a) Der ist kaputt dann wären 2 von 3 meiner neu erworbenen breakouts def. ;( > b) Der wird am Ausgang überlastet. was sagt mir das, "am ausgang überlastet", da hängt ja nix dran außer wieder ein max3232 > c) Der ist falsch beschaltet. das sollten die breakout-boards eigentlich verhindern, ich als elektronik-anfänger nehme immer breakouts um die falsche beschaltung eines ic's usw. in einem testaufbau zu vermeiden, das finale schltplan-layout lass ich dann immer leute machen die wissen was sie tun ;)
so hab ich jetzt mal alle hinweise eingearbeitet, die aktuelle schaltung häng an warum das nicht funktioniert versteh ich allerdings nicht, dass ist doch keine hexerei ... ;(
Jetzt ist der Zeitpunkt, dass Du mehr zu den benutzten Controllerboards sagst. Vielleicht hat der ARM ja bereits einen Pegelwandler drauf? Außerdem sagte ich nicht, dass Du alles an 5V anschließen sollst. Du solltest schauen, mit welchen Pegeln Deine Prozessoren an der Uart arbeiten und die Wandler dementsprechend mit Spannung versorgen. Hast Du mal Dein Breakout-Board mit dem Datenblatt des Max3232 verglichen?
nochmal zur eigentlichen frage zurück ;) ziel ist es ja nur einen atmel mit einem arm-cortexM4 zu verbinden, leitungslänge ca. 2meter - 2 atmels (mini pro & nano) einfach via rx/tx (ttl) zu verbinden geht - 2 arm-cortexM4 einfach via rx/tx (ttl) zu verbinden geht - 1 atmel mit 1 arm-cortexM4 einfach via rx/tx (ttl) zu verbinden geht nicht ;( meine annahme war das die uart's wegen irgendwas nicht miteinander klar kommen, unterschiedliche ttl-pegel oder was weis ich ... also war der ansatz, machen wir einfach einen rs232/ttl-wandler an jeden und da ein 2meter serial-kabel dazwischen und gut ist ... aber das geht wie gesagt auch nicht ... scheint ich hab hier irgendwas nicht ganz verstanden ??? ;(
google schrieb: > Jetzt ist der Zeitpunkt, dass Du mehr zu den benutzten Controllerboards > sagst. Vielleicht hat der ARM ja bereits einen Pegelwandler drauf? 1x arduino mini pro (3,3V) 1x arduino mini pro (5V) 1x arduino nano (5V) 1x Teensy 3.1 > Außerdem sagte ich nicht, dass Du alles an 5V anschließen sollst. Du > solltest schauen, mit welchen Pegeln Deine Prozessoren an der Uart > arbeiten und die Wandler dementsprechend mit Spannung versorgen. ahh, wenn der uart mit 3.3V arbeitet muss auch der pegelwandler mit 3.3V arbeiten, bei 5V dementsprechend ... richtig ? > Hast Du mal Dein Breakout-Board mit dem Datenblatt des Max3232 > verglichen? nein, werde ich jetzt sofort nachholen ... das datenblatt den max3232cse sagt nur Versorgungsspannung 3,3 - 5,5 VDC Eingangsspannung 0,4 - 4,9 VDC Ausgangsstrom ±0,05µ A Ausgangsspannung ±5,4 VDC was fange ich damit an ?
Ray M. schrieb: > google schrieb: >> Jetzt ist der Zeitpunkt, dass Du mehr zu den benutzten Controllerboards >> sagst. Vielleicht hat der ARM ja bereits einen Pegelwandler drauf? > > 1x arduino mini pro (3,3V) > 1x arduino mini pro (5V) > 1x arduino nano (5V) > 1x Teensy 3.1 1x Teensy LC hatte ich noch vergessen ...
liege ich richtig das alle controllerboards eigentlich immer intern mit 3.3V arbeiten und einige nur 5V tolerant sind ... wäre es dann nicht wie in meinem ersten plan eigentlich richtig, controllerboards an 5V und pegelwandler an 3.3V ??? jetzt steh ich komplett im wald ;(
Ray M. schrieb: > liege ich richtig das alle controllerboards eigentlich immer intern > mit 3.3V arbeiten und einige nur 5V tolerant sind ... > wäre es dann nicht wie in meinem ersten plan eigentlich richtig, > controllerboards an 5V und pegelwandler an 3.3V ??? > > jetzt steh ich komplett im wald ;( zum thema pegelwandler-breakout hab ich das im netz gefunden, was mich zu der 3.3V/5V trennung im ersten schaltplan veranlasste
Ray M. schrieb: > Ray M. schrieb: >> liege ich richtig das alle controllerboards eigentlich immer intern >> mit 3.3V arbeiten und einige nur 5V tolerant sind ... >> wäre es dann nicht wie in meinem ersten plan eigentlich richtig, >> controllerboards an 5V und pegelwandler an 3.3V ??? >> >> jetzt steh ich komplett im wald ;( > > zum thema pegelwandler-breakout hab ich das im netz gefunden, > was mich zu der 3.3V/5V trennung im ersten schaltplan veranlasste das eigentliche endziel, von den verständnisversuchen dazwischen, ist teensy3.1 <---> arduino mini pro (5V variante)
wie lang darf eigentlich ein kabel sein wenn ich die beiden controllerboards einfach via rx/tx-ttl zusammenhänge ? gehen da 2-2.5 meter ??? wenn ich das thema arm <---> atmel nicht auf die reihe bekomme nehm ich halt auf beiden seiten einen teensy und fertig ... nur verstehen würde ich doch irgendwie gern ...
Hallo, > Ray M. schrieb: > meine annahme war das die uart's wegen irgendwas nicht miteinander klar > kommen, unterschiedliche ttl-pegel oder was weis ich ... TTL-Pegel liegen normal zwischen 0V und 5V. Wenn uC aber mit 3,3V betrieben werden, dann ist der Pegel eben zwischen 0V und 3,3V. Die High-Pgel über 3V reichen aber normal aus, um damit auch TTL-Eingänge schalten zu können. Umgekehrt muß man prüfen, ob uC mit Ucc=3,3V TTL-Pegel bis 5V tolerieren. Falls nicht, kann man den Pegel auch einfach mit Spannungteiler anpassen. Das alles ist solange recht unkritisch, wie man langsame Signale hat. > also war der ansatz, machen wir einfach einen rs232/ttl-wandler an jeden > und da ein 2meter serial-kabel dazwischen und gut ist ... aber das geht > wie gesagt auch nicht ... Und ich habe dir oben schon mal geschrieben, dass die komplizierte und umständliche Lösung erst recht nicht funktioniert, wenn die einfache und direkte schon nicht geht. Du solltest also das Problem fixen und nicht zusätzlichen Schnickschnack dran pappen, ohne das Problem gefunden zu haben. Und nochmal: Zum Testen kannst du an einen uC auch den RS232-Treiber dran machen und dann versuchen zu einem COM-Port von PC mittel Terminalprogramm Verbindung aufzunehmen. Da kannst du die Kommunikation in beide Richtungen leicht testen. Gruß Öletronika
Ray M. schrieb: > nur verstehen würde ich doch irgendwie gern ... dein Arduinino arbeitet wohl default mit 5V! das wäre die Spannung für den MAX3232 dein Arm arbeitet default mit 3,3V das wäre die Spannung für seinen MAX3232, jeder braucht seinen eigenen! dann kannst du die RS232 Seiten über Kreuz verbinden. einen 5V arduino an einen mit 3,3V befeuerten MAX Wandler zu klemmen ist ne komische Idee. Wenn ein MAX 3232 schon ohne Versorgung an eine echte RS232 geklemmt wird kann der schon mal in den Himmel geschickt werden, ist mir auch schon passiert, aber die China Leute hatten mir auf eine verspätete 5 Stück Lieferung schon mal 27 dieser Platinen kostenlos nachgesendet, ich denke da habe ich genug für die nächten Jahre. Einen PI mit 3,3V an einem Atmel mit 5V habe ich dauerhaft so beschaltet.
danke an alle die versucht haben in mein gehirn licht zu bringen, für mich ist das zu viel juju ... ich hab jetzt den arduino weggeschmissen, nur noch arm-cortex-m4 im system, da funktiert rx/tx-uart ohne probleme und da mir aufgefallen ist das später ja noch mehr devices kommen könnten, hab ich einfach an jeden einen SN65HVD230D dran gehängt, dann noch 2x 120ohm wiederstände und fertig ist der canbus ... funktioniert mit der flexcan-lib perfekt ... jetzt können alle devices schön auf den bus schreiben und z.b. die display-einhet greift sich ab was sie braucht und zeigt es an ... kann man bauen ohne ein elektonikstudium zu machen ;) ;) ;) danke nochmal für eure hilfe ...
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.