Forum: Mikrocontroller und Digitale Elektronik RS232-Kommunikation mit Infineon XE164


von Jens S. (jenser)


Lesenswert?

Guten Morgen,

ich arbeite zur zeit an einem kleineren Projekt und soll mit Hilfe eines 
XE164-Controllers eine Kommunikation mittels RS232 ermöglichen.

Dabei sollen mittels HyperTerminal o.ä. Befehle zum Controller gesandt 
und vom Controller gewisse Daten zum PC zurück geschickt werden.

Die Hardware ist vorhanden und funktionsfähig!

Da ich bisher noch keine Erfahrungen mit Infineon-Controllern sammeln 
konnte, hoffe ich auf einige nützliche Tipps eurerseits.

Danke.

von Carsten S. (carsten)


Lesenswert?

Hallo Jens,
nimm dir das kostenlose Initialisierungstool Dave und richte dir damit 
den gewünschten USIC-Kanal auf UART (heißt bei Infineon ASC) ein. Dort 
kannst du auch das Interruptverhalten bestimmen und einfache 
Senderoutinen erzeugen lassen.

Auf den Starterkit-CDs sind typischerweise auch Beispiel mit 
UART-Nutzung dabei (z.B. Hello World an ein Terminal senden).

Gruß
Carsten

von Rothaus B. (tannenzaepfle)


Lesenswert?

Hallo Jens,

auf der Übersichtsseite 
(http://www.infineon.com/cms/en/product/channel.html?channel=db3a30432313ff5e012336d24448636e&tab=2) 
des Controllers sind auch zwei Hans-on Trainings.
Die beschreiben dir Schritt für Schritt was Du machen sollst.
Eines davon ist auch noch für UART (ASC-Link).
Schaus Dir mal an, das dürfte weiterhelfen.
Gruß
Tannenzäpfle

von Jens S. (jenser)


Lesenswert?

So, heute habe ich mal wieder ein wenig Zeit gefunden, mich mit dem 
XE164 zu beschäftigen.

Danke eurer Hilfe und dem "U0C0_ASC_vSendData"-Befehl kann ich nun Daten 
zum HyperTerminal schicken.

Jetzt will ich ein ankommenes Datenpaket (vom Hyperterminal) zerlegen 
und auswerten. D.h. ich will ankommende Daten in festgelegten Variablen 
kopieren und diese auswerten.

Habt ihr sowas schon mal gemacht? Oder habt ihr bessere Ideen?

von Rothaus B. (tannenzaepfle)


Lesenswert?

Also wenn Du schon das Makro ASC_vSendata gefunden hast, dann ist ja der 
Weg zum ASC_uwGetData auch nicht mehr weit. Wie gesagt, eine Schritt für 
Schritt Anleitung gibt es auch beim bereits erwähnten Hands-on training 
ASC-Link.

von Jens S. (jenser)


Lesenswert?

So, mein Projekt mit dem XE164 geht gut vorran und ich kann mittels 
RS232 Befehle zum µC schicken und Daten empfangen. Jetzt zu meinem neuen 
Problem:

Ich will mit Hilfe eines Befehls (via RS232) den Controller reseten bzw. 
in einen Boot-Modus versetzen. Kennt ihr euch mit sowas aus?

von Rothaus B. (tannenzaepfle)


Lesenswert?

Was möchtest Du denn machen?
Nur Reset oder aber Reset+Bootstraploader anschmeissen?
Und wenn Reset was für einer, ein HW Reset (also ein Power On Reset) 
oder ein SW Reset (bei Infineon gibt es den dafür schicken Namen 
"Application Reset").
Gruß
Tannenzäpfle

von Jens S. (jenser)


Lesenswert?

Grüße Rothaus Bier,

ich möchte einen HW-Reset realisieren und zusätzlich den Bootstraploader 
anwerfen.

Hast du damit Erfahrung?

von Rothaus B. (tannenzaepfle)


Lesenswert?

Ich wäre mir da nicht so sicher ob ein Power on Reset + BSL 
funktioniert.
Hintergrund ist der, dass Du bei einem _PORST sämtliche Register auf 
Default Wert setzt. Und genau darin liegt das eigentliche Problem. Denn 
um einen BSL zu starten, kannst Du entweder Deine HWCFG Pins am Port 10 
so einstellen, dass der gewünschte BSL Modus nach einem _PORST 
angefahren wird.
Das würde jedoch heissen, dass Du nach einem bestimmten UART 
Datum/Befehl Deine HWCFG Pins Manuell (und mit Manuell meine ich 
wirklich HÄNDISCH) einstellen müsstest und anschliessend ein _PORST 
auslösst. Kann ja nicht wirklich die Zielführung sein, oder???
Also ich weiss nicht was Du vor hast, aber logischer scheint mir doch, 
dass Du nach dem besagten UART Befehl dann den Baustein nochmal neu 
hochfahren lässt OHNE dabei händisch die HWCFG Pins ändern zu müssen.
Ist das so?

von Peter Schneider (Gast)


Lesenswert?

Hallo Jens,
ich habe so etrwas schon mal mit dem C167 gemacht. Problem damals war 
das ich in einer bestehenden Hardware ohne umstecken von Jumpern oder 
Reset Taste drücken von außen über RS232 Software in das internen Flash 
schreiben mußte. Da ich keine Ahnung vom Flash programmieren hatte, habe 
ich folgendes gemacht :
1. Eigene Funktion (BootStrapLoader())schreiben die den Bootstraploader 
per Software simuliert (warte auf 00 über RS232 dann Prozessorkennung 
senden, die nächsten 32 Byte über RS232 empfangen und diese dann als 
Funktion abarbeiten).
2. Damit ich den Prozessor in den simulierten Bootstraploeder Mode 
bekoome, habe ich ein Befehl definiert der über die serielle 
Schnittstelle empfangen wird. Der Befehl hat dann die Funktion 
BootStrapLoader() ins internen RAM kopiert und von dort aus gestartet.
3. Den Rest hat dann ein DOS Tool von Siemens erledigt über das man per 
Bootstrap Loader HEX Files flaschen konnte.

Beim XE müsste das doch so ähnlich möglichs sein.

Gruß
Peter

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.