Hallo zusammen, Ich bin gerade dabei zu versuchen mir einen ArtNet Node selber zu bauen. Als Microcontroller werkelt ein STM32F103C8T6 auf dem Board. Die Ethernetanbindung geschieht mittels ENC28J60. Auf einem BluePill Board hatte ich zuerst die Ausgabe von drei DMX Universen mittels USART1 bis USART3 über DMA realisiert, das funktionierte auch soweit. Später auf der richten Platine wird die USART dan über einen SN75176 ausgegeben. Als zweiten Schritt habe ich die Ethernetschnittstelle in Betrieb genommen, auch das hat ohne große Probleme funktioniert. Beim Ausprobieren der Zielfunktion an einem DMX Gerät (auf dem Ziellayout) musste ich dann feststellen, dass das DMX Gerät nicht reagiert. Also Oszi dran und siehe da, keine Daten auf dem RS485 Bus. Nächsten Schritt Oszi an den PIN 4 des SN75176. Auch da nur sporadische Spikes und nichts von dem was beim ausprobieren auf dem BluePill Board zu sehen war. Als nächstes habe ich mein Salea Logic Analyzer an PIN 4 des SN75176 geklemmt und den zweiten Kanal an PIN 7 des SN75176 (Output B). Und siehe da die USART gibt korrekte Daten aus. Sobald ich aber die Verbindung von PIN 4 zum Salea trenne, werden auch über die USART keine Daten mehr ausgegeben. Nach erneutem anklemmen funktionier alles wieder sofort. Wäre super, wenn jemand einen Fingerzeig hätte, wo ich Bockmist gebaut habe das dieses Verhalten erklären könnte. Habe ich an dem SN75176 PullUp Widerstände vergessen? Nach meinen bisherigen Recherchen sind diese eigentlich nicht nötig. Gruß, Markus
Der75176 ist ein RS485 Treiber, eigentlich der Schlechtestmoegliche. Er zieht am Meisten Strom. Nein, der braucht keine Pullups. Wie ist er denn verschaltet ?
Wie meinst du das mit verschaltet? Plan habe ich ja oben angehängt. Er bekommt wie im Datenblatt gefordert 5V Versorgung. Direkt in der nähe hat er einen 100nf Kerko. Ansonsten ist normal TX und RX angeschlossen und DE und RE können programmatisch auf High Level gezogen werden.
Sorry, ich hab den Schaltplan uebersehen. Es ist bekannt, dass der 75176 heftig Strom zieht ? ich hab etwas wie 40mA ohne Last im Kopf. Hast du so viel ? Nimm einen AD483 oder so anstelle. der zieht weniger als 1mA. Die Status Led zieht auch etwas viel..
:
Bearbeitet durch User
Das er etwas mehr braucht als aktuellere Versionen, ja. Der Buffer Cap hat 100nF wie auch im Datenblatt gefordert. Die Spannung an den 75176 hatte ich auch schon oszillografiert, aber dort keine Einbrüche feststellen können. Mir fehlt auch gerade das Bindeglied zu den fehlenden Daten an dem TX Pin des Microcontrollers.In dem Bild von der Salea Software sieht man, dass das PIN Toggeln für die DMX Startbedingung jedes mal funktioniert hat. Direkt danach wird der IO Pin wieder als Usart TX definiert und per DMA sollten 512 Byte rausgeschoben werden. Warum passiert das nur, wenn ich wie oben beschrieben den Logic Analyzer dranklemme. Ist diese ab sieht man an dem PIN 4 (Usart TX) nur das Pin Toggeln der DMX Startbedingung.
Hallo Markus, natürlich braucht RS485 Abschlusswiderstände. Der Wert hängt vom Wellenwiderstand der verwendeten Leitung ab. Bei zwei verdrillten Einzeladern sollten 150Ohm bis 180Ohm richtig sein. Dieser Widerstand muss am physikalischen Anfang und am physikalischen Ende der Leitung sein. In jeder RS485 Verbindung sind also zwei dieser Widerstände zu finden - am Anfang und am Ende der Leitung, unabhängig von der Leitungslänge und Anzahl der Teilnehmer. Stichleitungen haben keinen Abschlusswiderstand. Gruß Tom
Markus S. schrieb: > Warum passiert das nur, wenn ich wie oben beschrieben den Logic Analyzer > dranklemme. Sind dir GNDs aller Beteiligten richtig miteinander verbunden? Und wie sind die Erdungsverhältnisse? Ist alles potenzialfrei oder kann es Kurzschlüsse geben?
Hi
>natürlich braucht RS485 Abschlusswiderstände.
Auch wenn es nur darum geht, an einem Ausgang eine Spannung zu
auszugeben?
MfG Spess
Bei hinreichen kurzen Leitungen, <3m, geht es auch ohne Abschlusswiderstaende. Ein Geraet anklemmen kann kapazitiv wirken, oder GND verbinden.
Da gebe ich dir Recht, vor allem vor dem Hintergrund das Widerstände schwer zu beschaffen, und extrem teuer sind. :)
Dietrich L. schrieb: > Sind dir GNDs aller Beteiligten richtig miteinander verbunden? > Und wie sind die Erdungsverhältnisse? Ist alles potenzialfrei oder kann > es Kurzschlüsse geben? Ich habe gestern auch daran gedacht und nachgemessen ob die GND's vom SN751176, Controller, Linearregler, etc. mit einander verbunden sind. Bedingt durch Messungen auf Lötstellen habe ich maximal einen Wiederstand von 0,7 Ohm Messen können. Das würde ich als verbunden ansehen. Meine Platine wird potentialfrei betrieben. Um dies zu testen, habe ich sie gestern auch mal über eine Powerbank versorgen lassen. Leider auch ohne Erfolg. In wie weit die angeschlossenen Geräte eine sauber Potentialtrennung besitzen habe ich nicht gemessen. Sollte es aber da zu einem Kurschluss kommen hätte ich es sicher bemerkt. Aber das Phänomen das die Daten nicht am TX Pin des Controllers ausgegeben werden, habe ich ja auch, wenn kein DMX steuerbares Gerät angeschlossen ist. Somit verbleibt nur die eine Spannungsversorgung der Platine. Sicher könnte man nun sagen das ich ja über den angeschlossenen Logic Analyzer noch ein mögliches anderes Potential bzw. andere Masse mit ins System bringe. Aber es reicht sogar aus diesen an den Testpins anzuklemmen ohne ihn per USB an den Rechner anzuschließen. Alles sehr komisch.
TomA schrieb: > Da gebe ich dir Recht, vor allem vor dem Hintergrund das > Widerstände > schwer zu beschaffen, und extrem teuer sind. :) Da magst du recht haben, aber bei 20cm Kabellänge zum Gerät sollte es zum testen auch ohne gehen. Aber ich habe es auch mit 120 Ohm Abschlusswiderstand an dem RS485 probiert. Leider auch ohne Erfolg, funktion nur mit Logic Analyzer an Pin 4 :-(
Markus S. schrieb: > Plan habe ich ja oben angehängt. Er bekommt wie im Datenblatt gefordert > 5V Versorgung. Direkt in der nähe hat er einen 100nf Kerko. Ansonsten > ist normal TX und RX angeschlossen und DE und RE können programmatisch > auf High Level gezogen werden. BluePill arbeitet mit 3V3, d.h. Tx geht auf max. 2.9V. Also sollte man mit BluePill nicht auf High Level ziehen, sondern auf GND, ergo Pull Up Widerstände (nach 5V oder 3V3, egal) dran und sehen was dann passiert.
:
Bearbeitet durch User
Hallo Markus, ich habe kurze Verbindungen zum testen auch schon ohne Widerstände betrieben, Stichleitungen werden bis zu einer Länge von ca. 1,5m ja auch problemlos ohne Widerstand benutzt. Sind deine Signalpegel denn in Ordnung? Der 0-Pegel wird durch eine Differenzspannung zwischen D+ und D- von < 0,2V und der 1-Pegel durch > 0,2V dargestellt. Zum testen kann man mit "Ziehwiderständen" am Master (~10k, D+ gegen GND, D- gegen VCC) ein wenig nachhelfen, um den Fehler einzugrenzen. Viel Erfolg und Gruß. Tom
Marc V. schrieb: > BluePill arbeitet mit 3V3, d.h. Tx geht auf max. 2.9V. > Also sollte man mit BluePill nicht auf High Level ziehen, sondern > auf GND, ergo Pull Up Widerstände (nach 5V oder 3V3, egal) dran und > sehen was dann passiert. Ja daran habe ich auch schon gedacht, der Controller auf dem Ziellayout läuft natürlich auch mit 3V3. Ich würde es ja verstehen, wenn die Pegel nicht hoch genug wären damit der RS485 Treiber sie erkennt, aber selbst mit Oszilloskop sehe ich ich an dem Pin keinerlei Daten. Flascher Pegel wäre da einfach gewesen. Aber ich werde trotzdem mal einen Pullup Widerstand ausprobieren. Oder ist für dich erklärlich warum dann garnichts zu sehen ist.
TomA schrieb: > Hallo Markus, > > ich habe kurze Verbindungen zum testen auch schon ohne Widerstände > betrieben, Stichleitungen werden bis zu einer Länge von ca. 1,5m ja auch > problemlos ohne Widerstand benutzt. > > Sind deine Signalpegel denn in Ordnung? Der 0-Pegel wird durch eine > Differenzspannung zwischen D+ und D- von < 0,2V und der 1-Pegel durch > > 0,2V dargestellt. Zum testen kann man mit "Ziehwiderständen" am Master > (~10k, D+ gegen GND, D- gegen VCC) ein wenig nachhelfen, um den Fehler > einzugrenzen. > > Viel Erfolg und Gruß. Tom Das meine ich eigentlich auch. Die Pegel der D+ und D- Leitungen habe ich noch nicht kontrolliert, da für mich der Fehler ja schon eine Station früher auftritt, nähmlich am Dateneingang des RS485 Treibers wo ohne Logic Analyzer keinerlei TX Signal zu sehen ist. Aber ich werde natürlich auch mal kontrollieren wie die Pegel der RS485 Leitungen sind, nur um dort ein Problem auszuschließen. Weitere Ideen sind natürlich immer willkommen.
Markus schrieb: > Nächsten Schritt Oszi an den PIN 4 des SN75176. Auch da nur sporadische > Spikes und nichts von dem was beim ausprobieren auf dem BluePill Board > zu sehen war. Markus S. schrieb: > wäre da einfach gewesen. Aber ich werde trotzdem mal einen Pullup > Widerstand ausprobieren. Oder ist für dich erklärlich warum dann > garnichts zu sehen ist. Ja, was denn nun - garnichts oder sporadische Spikes ? Garnichts kann ich mir gar nicht erklären, ausser mit Kurzschluss am Pin 4, was aber unmöglich ist, da mit LA alles in Ordnung. Sporadische Spikes aber schon. Mit Oszi - sporadische Spikes - Widerstand im MOhm Bereich, Pegel nicht beeinflusst, also fast kein Einfluss. Mit LA - funktioniert alles wie es soll - Widerstand in KOhm Bereich, definierter Pegel durch Pull Up im LA.
Hallo Markus, wenn es schon auf der µC-Seite des Treibers Probleme gibt, dann kann es auch an der Richtungsumschaltung liegen, fehlerhaft oder falsches Timing. Wenn dort kein Signal zu messen ist, ist der Treiber möglicherweise auf Empfang geschaltet und bügelt das Signal nieder. Wird die Richtungsumschaltung denn korrekt angesteuert? Wie ich das im Datenblatt sehe muss zum senden Pin3 (DE) High-Pegel aufweisen. Wenn man diesen Pin3 mit Pin2 (/RE) verbindet, wird gleichzeitig der Empfang deaktiviert. Da es mit angeschlossenem Messgerät funktioniert,lässt vermuten dass ein Timing- oder Kontaktproblem vorliegt. Gruß. Tom
TomA schrieb: > wenn es schon auf der µC-Seite des Treibers Probleme gibt, dann kann es > auch an der Richtungsumschaltung liegen, fehlerhaft oder falsches > Timing. Wenn dort kein Signal zu messen ist, ist der Treiber > möglicherweise auf Empfang geschaltet und bügelt das Signal nieder. Weisst du überhaupt wie so ein Treiber funktioniert ? Was hat Richtungsumschaltung mit Signal am Pin 4 zu tun ? Was hat fehlerhaftes Timing mit Signal am Pin 4 zu tun ? TomA schrieb: > deaktiviert. Da es mit angeschlossenem Messgerät funktioniert,lässt > vermuten dass ein Timing- oder Kontaktproblem vorliegt. Manoman. Bitte, nicht über Sachen reden, von denen du keine Ahnung hast.
Markus S. schrieb: > Widerstand ausprobieren. Oder ist für dich erklärlich warum dann > garnichts zu sehen ist. Hast du alle 3 USARTs nachgemessen ? Verhalten sich alle 3 genauso ?
Hallo Marc, kannst du mir verraten wie du eine Halbduplex-Schnittstelle, wie RS485, ohne Umschaltung in zwei Richtungen betreiben willst? Wozu denkst du hat der Baustein ein aktivieren/deaktivieren von Sender und Empfänger? Heiland, Mailand, Thailand und andere Weibsbilder, hier sind wieder die Richtigen versammelt. Dann wünsche ich euch noch viel Spass. :) Gruss. Tom
Marc V. schrieb: > Was hat Richtungsumschaltung mit Signal am Pin 4 zu tun ? Wie schon von Tom geschrieben gibt es doch dafür den Pin 2 & 3 um den Receiver oder Transmitter zu aktivieren bzw. zu deaktivieren. Oder sehe ich da etwas vollkommen falsch, wenn ja dann wäre ich dankbar für erhellende Worte, man lernt ja bekanntlich nie aus. > Was hat fehlerhaftes Timing mit Signal am Pin 4 zu tun ? Wie kommst du auf fehlerhaftes Timing im Bezug auf das zu erwartenden TX Signal am Pin 4 des SN75176? Ist es nicht so, dass wenn man per DMA 512 Bytes auf die USART rauschiebt diese dort auch zu sehen sein sollten? Diese liegen dort eben nicht an, es sei denn ich klemme an genau diesen Pin 4 eben auch den Logic Analyzer Marc V. schrieb: > Hast du alle 3 USARTs nachgemessen ? > Verhalten sich alle 3 genauso ? Ich habe aktuell nur zwei von denen bestückt und diese Verhalten sich 100% identisch. Also muss da irgendein System hinter stecken.
TomA schrieb: > Wird die Richtungsumschaltung denn korrekt angesteuert? Wie ich das im > Datenblatt sehe muss zum senden Pin3 (DE) High-Pegel aufweisen. Wenn man > diesen Pin3 mit Pin2 (/RE) verbindet, wird gleichzeitig der Empfang > deaktiviert. Da es mit angeschlossenem Messgerät funktioniert,lässt > vermuten dass ein Timing- oder Kontaktproblem vorliegt. Habe ich mehrmals kontrolliert und würde sagen ja ist korrekt. Genau deine Ausführung habe ich auch so aus dem Datenblatt interpretiert. Gehe dem aber auch nochmal nach und kontrolliere alles von vorne.
Markus S. schrieb: >> Was hat Richtungsumschaltung mit Signal am Pin 4 zu tun ? > Wie schon von Tom geschrieben gibt es doch dafür den Pin 2 & 3 um den > Receiver oder Transmitter zu aktivieren bzw. zu deaktivieren. Oder sehe > ich da etwas vollkommen falsch, wenn ja dann wäre ich dankbar für > erhellende Worte, man lernt ja bekanntlich nie aus. Pin 4 ist direkt verbunden mit Tx am BluePill (Ich hoffe es ist so ?). Was hat Richtungsumschaltung mit Hardware-Tx am BluePill zu tun ? Markus S. schrieb: >> Was hat fehlerhaftes Timing mit Signal am Pin 4 zu tun ? > Wie kommst du auf fehlerhaftes Timing im Bezug auf das zu erwartenden TX > Signal am Pin 4 des SN75176? Ist es nicht so, dass wenn man per DMA 512 Ich bin nicht auf fehlerhaftes Timing gekommen, das war der grosse Experte TomA. P.S. Falls STM32_ArtNode.png stimmt und ARM_Tx direkt mit Pin4 am 75176 verbunden ist, kann es nur folgendes sein: a) fehlerhafte Init Routine (unwahrscheinlich) b) Undefinierte Tx Pegel (sehr wahrscheinlich) P.P.S. Warum ist es so schwer, ein 10K Widerstand zwischen Pin 4 und Vcc anzuschliessen und damit diese Fehlerursache entweder zu bestätigen oder auszuschliessen ?
:
Bearbeitet durch User
TomA schrieb: > kannst du mir verraten wie du eine Halbduplex-Schnittstelle, wie RS485, > ohne Umschaltung in zwei Richtungen betreiben willst? Wozu denkst du hat > der Baustein ein aktivieren/deaktivieren von Sender und Empfänger? Was hat Umschaltung mit Signal am Pin 4 zu tun ? TomA schrieb: > Heiland, Mailand, Thailand und andere Weibsbilder, hier sind wieder die > Richtigen versammelt. Kann ich nur bestätigen.
Marc V. schrieb: > P.P.S. > Warum ist es so schwer, ein 10K Widerstand zwischen Pin 4 und Vcc > anzuschliessen und damit diese Fehlerursache entweder zu bestätigen > oder auszuschliessen ? Nein es ist nicht schwer, aber ich hatte aus dem Büro geschrieben und die Leiterplatte lag zu Hause, damit war ein direktes ausprobieren nicht möglich. Die Init Routinen stimmen, da hast du richtig vermutet. Nach Anschluss eines PullUp funktioniert das ganze sofort. Somit hat, wie du richtig vermutet hast, der Logic Analyzer den Pin auf High Level gezogen. Jetzt wäre es noch nett, wenn jemand kurz erklären könnte, gerne auch mit konkretem Hinweis auf das Datenblatt, wieso ein PullUp überhaupt erforderlich ist. Ich möchte es ja gerne komplett verstehen um dazu zu lernen. Rein von der Initialisierung des Pins (GPIO_Mode_AF_PP) wäre ich nicht davon ausgegangen einen Pullup zu benötigen. Danke für die bisherig geleistete Hilfe zur Lösungsfindung. Gruß, Markus
Warum nimmst du denn keinen modernen, für direkte 3,3V Anbindung geeigneten Tranceiver? Maxim bietet dafür z.B. die MAX3485 oder, wenns klein sein muss, z.B. den MAX3362. https://www.maximintegrated.com/en/products/interface/transceivers/MAX3485.html Damit eliminierst du die Probleme mit I/O Spannungen und musst dir auch nicht so viel Gedanken über die 5V Toleranz der UART RXD Pins machen. Die Zeiten des alten 75176 sind m.E. bei 3,3V Designs vorbei.
Markus schrieb: > lernen. Rein von der Initialisierung des Pins (GPIO_Mode_AF_PP) wäre ich > nicht davon ausgegangen einen Pullup zu benötigen. Wie GPIO_Mode_AF_PP ? Das kann höchstens Alternate Function sein, aber solange der USARTx aktiv ist, hat das keine Bedeutung. Markus S. schrieb: > Direkt danach wird der IO Pin wieder als Usart TX definiert und per Was bedeutet wieder als Usart TX definiert ? Warum fummelst du an dem Tx-Pin überhaupt rum ? Matthias S. schrieb: > Warum nimmst du denn keinen modernen, für direkte 3,3V Anbindung > geeigneten Tranceiver? Maxim bietet dafür z.B. die MAX3485 oder, wenns Genau.
:
Bearbeitet durch User
Matthias S. schrieb: > Warum nimmst du denn keinen modernen, für direkte 3,3V Anbindung > geeigneten Tranceiver? Maxim bietet dafür z.B. die MAX3485 oder, wenns > klein sein muss, z.B. den MAX3362. Die SN75176 waren noch im Bestand, deswegen fiel die Wahl auf die etwas angestaubten Käfer. Habe mir aber mittlerweile auf euer Anraten MAX3485 geordert. Laut Datenblatt "Absolute Maximum Ratings" ist ein maximaler Vcc von 7V möglich und durch die Pin Kompatibilität könnte ich diese nach Erhalt direkt in der selben Applikation testen. Würde Eurer Meinung der MAX3485 einen PullUp Widerstand auf den TX Leitungen überflüssig machen?
Marc V. schrieb: > Was bedeutet wieder als Usart TX definiert ? > Warum fummelst du an dem Tx-Pin überhaupt rum ? Um die Startbedingung für ein DMX Frame zu erzeugen. Low Break von ca. 100us mit nachfolgendem High für 12us. Danach dann über Usart die 512 Byte mit 250kBaut und 2 Stoppbits.
Hm, abgesehen von dem "Alters-" bzw. 5V/3V-Problem: Der TX-Ausgang ist dann wohl als Open-Drain konfiguriert. Da braucht's halt einen externen Pull-up (der interne, falls aktiviert, wird automatisch abgeschaltet, wenn ein Pin als Ausgang verwendet wird). Die m. E. sinnvollere Variante wäre aber D und R (über Widerstand) vom Transceiver beide an TX vom STM anschließen, und in USART_CR3 dann HDSEL=1 zu setzen. Den TX-Pin als Open-Drain UND Alternate und extern noch einen Pull-up. Die RX-Pins sind dann anderweitig verwendbar.
Servus, blöde Frage: wenn Dein Board Potentialfrei ist - hast Du auch die Masse vom Logik-Analysator verbunden? Wie ist Dein USART konfiguriert? Evtl. Halbduplex oder als Ausgang Open Drain? Evtl. Sendet der UART dann nichts, wenn er die Tx-Leitung als "busy" erkennt. In der Standard-Konfiguration (Vollduplex, Pin als Push/Pull) müsste der USART ja den Tx-Pin immer aktiv treiben, da brauchts keinen Pull-Up.
Ja die Masse des Logic Analyzer wurde auch verbunden. Laut meinem Verständnis und nachschauen im DB sollte der TX Pin ohne PullUp funktionieren. Soweit die Theorie in der Praxis funktioniert es gerade nur mit PullUp. Anbei die Initialisierung der IO's für den ersten USART.
1 | GPIO_InitStructure.GPIO_Pin = usartDMX1_TX; |
2 | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; |
3 | GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; |
4 | GPIO_Init(usartDMX1_Port, &GPIO_InitStructure); |
5 | |
6 | GPIO_InitStructure.GPIO_Pin = usartDMX1_RX; |
7 | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; |
8 | GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; |
9 | GPIO_Init(usartDMX1_Port, &GPIO_InitStructure); |
10 | |
11 | USART_InitStructure.USART_BaudRate = 250000; |
12 | USART_InitStructure.USART_WordLength = USART_WordLength_8b; |
13 | USART_InitStructure.USART_StopBits = USART_StopBits_2; |
14 | USART_InitStructure.USART_Parity = USART_Parity_No ; |
15 | USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; |
16 | USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; |
17 | USART_Init(USART1, &USART_InitStructure); |
18 | USART_Cmd(USART1, ENABLE); |
19 | USART_DMACmd(USART1, USART_DMAReq_Tx, ENABLE); |
Markus schrieb: > Marc V. schrieb: >> Was bedeutet wieder als Usart TX definiert ? >> Warum fummelst du an dem Tx-Pin überhaupt rum ? > > Um die Startbedingung für ein DMX Frame zu erzeugen. Low Break von ca. > 100us mit nachfolgendem High für 12us. Danach dann über Usart die 512 > Byte mit 250kBaut und 2 Stoppbits. Brauchst du aber nicht. Start = 88us bis 1000000us MAB = Typ. 8us d.h. keine min. und max. Zeiten USARTx auf 57600B und 1 Stoppbit ergibt etwa 156us für Start und 17,4us für MAB wenn 0x00 gesendet wird. Byte mit 57,6KB raus, sofort danach auf 250KB/2 Stoppbit und los gehts. P.S. Selbstverständlich kannst du Start und MAB auch auf anderen Baudraten senden, z.B. mit 100KB und 1 Stoppbit.
:
Bearbeitet durch User
Markus schrieb: > Laut Datenblatt "Absolute Maximum Ratings" ist ein maximaler Vcc von 7V > möglich Mir schwant böses.
Rufus Τ. F. schrieb: > Markus schrieb: >> Laut Datenblatt "Absolute Maximum Ratings" ist ein maximaler Vcc von 7V >> möglich > > Mir schwant böses. Du hoffst, das Markus das richtig interpretiert? Ich habe Mitleid mit Markus rate ihm, die Bedeutung von "Absolute Maximum Ratings" zu lernen. Die Grenze, wo das Teil noch funktioniert, ist es jedenfalls nicht...
Es ist doch Unsinn, erst einen 3,3V Baustein wie den MAX3485 zu bestellen, um ihn dann wieder mit den Interface Problemen auf 5V laufen zu lassen. Markus S. schrieb: > GPIO_InitStructure.GPIO_Pin = usartDMX1_RX; > GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; > GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; 1. Warum denn floating? Schalte den Pullup an. 2. Warum die Begrenzung auf 10MHz? Ist zwar vermutlich nicht so wichtig, kann aber doch Ärger machen.
Matthias S. schrieb: > 1. Warum denn floating? Schalte den Pullup an. > 2. Warum die Begrenzung auf 10MHz? Ist zwar vermutlich nicht so wichtig, > kann aber doch Ärger machen. Normalerweise wird der Rx-Pin auf Pull-down geschaltet.
Marc V. schrieb: > Normalerweise wird der Rx-Pin auf Pull-down geschaltet. Der Programmteil bezieht sich auf den STM32, und da ist RX high = inaktiv, da UART 'TTL', wenn auch mit 3,3V Pegel.
:
Bearbeitet durch User
Matthias S. schrieb: > Der Programmteil bezieht sich auf den STM32, und da ist RX high = > inaktiv, da UART 'TTL', wenn auch mit 3,3V Pegel. Ja. Aber es ging um GPIO und anstatt floating:
1 | GPIO_InitStructure.GPIO_Pin = usartDMX1_RX; |
2 | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; |
sollte es Pull-down sein:
1 | GPIO_InitStructure.GPIO_Pin = usartDMX1_RX; |
2 | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_PULLDOWN; |
Marc V. schrieb: > sollte es Pull-down sein: Erklär bitte, warum. Pulldown bedeutet auf ein RXD Pin ein Startbit und nicht inaktiv. Es ist also Unsinn, den Pin auf low zu ziehen.
Matthias S. schrieb: > Erklär bitte, warum. Pulldown bedeutet auf ein RXD Pin ein Startbit und > nicht inaktiv. Es ist also Unsinn, den Pin auf low zu ziehen. Ja. Aber RxD Pin ist RxD Pin. GPIO Pin ist etwas anderes (Alternate Function). P.S. Es ging sowieso um TxD, nicht um RxD.
:
Bearbeitet durch User
Hallo zusammen, Noch einmal vielen Dank für die viele Hilfe und Unterstützung und ein grosses sorry für die späte Rückmeldung. Der Urlaub mit der Familie ist mir voll dazwischen gekommen und hat alles verzögert. Gestern konnte ich nochmal einiges ausprobieren und nachdem ich da auch nicht viel schlauer geworden bin habe ich den mikrocontroller von der Platine gelötet und einen Nagelneuen aufgelötet. Nach diesem Schritt funktioniert alles auch ohne Pullup's. Ein einfaches Nachlöten des ursprünglichen Controllers hat nichts gebracht :-(. Wollte auf jeden Fall ein Feedback geben wie es ausschaut, denke das gehört sich so! Lieben Gruß und allen einen guten Start in die Woche, Markus
Beitrag #5520765 wurde von einem Moderator gelöscht.
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.