Was genau bedeutet "verbunden" ? Hast du die Pins ohne jeden Pegelwandler direkt an die Schnittstelle angeschlossen ? kannst du einen kleinen Schaltplan zeichnen und hier posten ?
lg
Michi
Hallo Leute,
ich möchte eine Verbindung über RS232 zwischen 2 Mikrocontrollern Atmega32 und Cortex M3 STM32F10x herstellen.
Habe im moment folgendes Problem mit der USART:
Habe zum test PIN 11 und 12 miteinander verbunden, und die RS232 ausgänge mit einem PC verbunden, masse auch.
Messungen ergeben:
Spannungen PIN2 9V, PIN6 -9V.
Allerdings auf RX und TX messe ich -9V nachdem ich senden drücke in Hterm messe ich +1,7V.
Hoffe jemand kann mir helfen.
freundliche Grüße,
kremsy
Was genau bedeutet "verbunden" ? Hast du die Pins ohne jeden Pegelwandler direkt an die Schnittstelle angeschlossen ? kannst du einen kleinen Schaltplan zeichnen und hier posten ?
lg
Michi
mfg
Michael Eisele
www.brainrobots.de
www.facebook.com/brainrobots
---
the most astonishing adventure in the universe begins when the world ends
---
Sind die Elkos am MAX232 richtig gepolt? Sonst bringt er nämlich die notwendigen Spannung nicht zusammen.
Grüße
Thomas
Es wurden lauter 1µF ungepolte SMD kondensatoren verwendet.
Am Atmega hab ich es mittlerweile hinbekommen, habe den Bügel wider entfernt den Prozessor reingesteckt und schon lief die Verbindung zum Terminal Programm.
Das Problem war, dass ich den Prozessor über USB versorgt hatte und das nur 4,3V waren und wohl zuwenig für den MAX, übern 5V Spannungsregler läufts.
Allerdings beim STM32 funktionierts noch nicht richtig, wenn ich im Terminal ein Zeichen sende
steht im Terminal das als Received, is aber das selbe wie wenn ich das
Kabel ausstecke. Spannungspegel passen. Dis Pegel am Rx und Tx auf RS232
seite sind annähernd 0 ändern sich minimal bei übertragung...
Der Rx Spannungsteiler ist auch Merkwürdig, da hab ich 3,7V am Rx und in
der Mitte vom Spannungsteiler 0V.
Testzyklus:
Code:while(1) { /* Wait while USART1 TXE = 0 */ while(USART_GetFlagStatus(USARTy, USART_FLAG_TXE) == RESET) { } Delay(1); USART_SendData(USARTy, 0x33); if(USART_GetFlagStatus(USARTy, USART_FLAG_RXNE) != RESET) { GPIO_SetBits (GPIOC, GPIO_Pin_9); LCD_Data(USART_ReceiveData(USARTy)); } else GPIO_ResetBits (GPIOC, GPIO_Pin_9); }
Geändert von BASTIUniversal (18.05.2012 um 14:19 Uhr) Grund: Code-Tags eingefügt
Die Ausgangspegel sehen jetzt ganz okay aus, und beim Senden vom Terminal kommt auch nix mehr zurück bei Receive, außer wenn man den µC Resettet und dann sendet steht einmal <0> im Terminal. Allerdings kommt wohl beim Prozessor nix an und umgekehrt auch nicht...
Problem gelöst: Die Display Initialisierung war schuld, habe da den
ganzen PORTA als ausgang gesetzt, statt nur die nötigen Pins...
www.mikrocontroller.net/topic/259028
Gruß
Basti
Lesezeichen