Anzeige:

ATMEGA 2560 und RS-232 Modem

Hier finden sie die archivierten Beiträge des alten PHPBB Forums von www.loetstelle.net

ATMEGA 2560 und RS-232 Modem

Von _elko_ am 11.04.2011 09:47

Hi,

ich beschäftige mich gerade mit einem ATMEGA2560 und möchte via RS-232 (läuft über USART0) ein Modem ansprechen.

Programmieren tu ich in C!

Vorweg was funktioniert:
Die RS232 arbeitet einwandfrei, wenn ich das ganze direkt mit meinem PC verbinde kann ich via HTerm wunderbar mit dem µC kommunizieren, sprich ich kann mir Sachen zusenden und er reagiert auch auf Eingaben meinerseits (die Reaktion ist natürlich vorher programmiert worden)

Was nicht funktioniert:
Um die Modemkommunikation aufzunehmen und zu testen ob ein AT-Kombatibles Gerät am COM-Port ist wird als erstes ein "AT\r\n" über den COM-Port gesendet. Hierauf müsste das Modem mit einem "AT\r\r\nOK\r\n" reagieren.

Wenn ich das Modem an den PC anschließe und via HTerm genau das hinsende reagiert es ohne Probleme.

Die Routine vom µC sendet auch genau "AT\r\n", das hab ich auch via HTerm kontrolliert.

Das Modem reagiert aber nicht auf den µC, es sendet keine Antwort.

Zum senden auf den COM-Port habe ich mir folgende Routine gebastelt:

1]void com_put(char c){
loop_unitl_tx_data_reg_empty(); // Makro um auf leeren tx-buffer zu warten
UDR0 = c;
}
1]

Die Routine selbst funktioniert wie oben schon beschrieben.
Während ich diesen Text geschrieben habe kam mir noch die Idee, dass die Antwort ggf. ausbleibt weil ich die befehle Zeichenweise über den COM-Port sende....

Vielleicht reagiert das Modem nur auf einen kompletten String?

Das werd ich nachher mal testen, ich würd mich trotzdem über schlaue Ideen freuen!

Von pcprofi am 11.04.2011 14:53

Grad nich viel Zeit aber ein paar Ideen:

Gibt es Steuerzeichen, die du evt. unbewusst mit HTerm sendest, beispielsweise ein Return?

Eine andere Möglichkeit wäre, dass du für das Modem Ne Flusskontrolle brauchst??

Gruß Rainer

Von Alv am 11.04.2011 18:55

pcprofi hat folgendes geschrieben:

Eine andere Möglichkeit wäre, dass du für das Modem Ne Flusskontrolle brauchst??


Keine schlechte Idee. Schalte mal das Modem auf xON/xOFF.

Von _elko_ am 14.04.2011 08:08

ok, das Problem hat sich erledigt. Problematisch war einfach nur, dass ich die Serielle Schnittstelle im Pollingverfahren abgefragt habe.

Das Ganze habe ich jetzt auf Interrupt und Flagauswertung umgestellt.

Jetzt funktioniert es wunderbar.

Anzeige: