www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik Problem mit Infinion C167CR mit AM29F200B-70SE

Autor: Martin Martin (mageb)
Datum:

Hallo zusammen,

ich habe ein Problem mit dem Steuergerät von meinem Automatischen
Schaltgetriebe. Auf der Platine ist ein Infinion  C167CR mit
AM29F200B-70SE als externer Speicher. Ich würde gerne wissen ob es eine
Möglichkeit gibt das Programm auszulesen. Ich habe gelesen dass man den
Controller Serriel oder über Canbus programmieren kann. Stimmt das? Wenn
ja mit welchem Programm? Und was brauch ich für ein Datenkabel? Kennt
sich vieleicht einer mit dem Teil aus?

Ich bin Dankbar für alle Antworten

Schöne Grüße

Martin
Autor: Jörg S. (joerg-s)
Datum:

Schau dir mal das Programm MiniMon an (gibt's bei Infineon). Allerdings
musst du beim dem Programm m.w. vorher die Buskonfiguration kennen.
FLASHit8 wäre ein Programm was die Config automatisch ausliest.
Autor: Martin Martin (mageb)
Datum:

Danke erstmal für die Antwort. Ich werde es morgen direkt mal
auspropieren. Ich hoffe du meinst mit dem Bus den Can Bus oder nicht?
Gibts es außer dem CAN Bus noch eine andere möglichkeit um auf den
Kontroller zuzugreifen wenn z.B der Bootloader defekt ist?
Autor: Jörg S. (joerg-s)
Datum:

> Ich hoffe du meinst mit dem Bus den Can Bus oder nicht?
Ich hab nur Erfahrung mit dem UART. Ob die Programme auch über CAN
funktionieren weiss ich nicht.
Mit Buskonfiguration meine ich die Konfig für den Datenbus an dem das
Flash dran hängt. Diese Konfiguration wird mit Widerständen am Datenbus
bestimmt und wird vom C167 beim booten ausgelesen. Ohne passende
Konfiguration lässt sich das Flash nicht ansprechen und so natürlich
auch nicht auslesen.
Autor: Martin Martin (mageb)
Datum:
Angehängte Dateien:

Ok das ist gut zu wissen. Aber wie greif ich denn auf den C167CR zu? Was
für eine Schnittstelle braucht man dafür? Muss man vieleicht an pin 77
und 78 mit einem max232 dran gehen? Ich lade das Datenblatt mal mit hoch
fals du es gerade nicht zu hand hast.
Autor: Jörg S. (joerg-s)
Datum:

>Muss man vieleicht an pin 77 und 78 mit einem max232 dran gehen?
Genau das ja :) Pins stimmen auch...
Autor: tom (Gast)
Datum:

..natürlich musst du auch den bootstrap-mode des uC aktivieren , d.h.
wenn er aus dem reset kommt muss ein bestimmter pin low gesampled werden
(siehe Manual, irgendwo am Port 0.4 ??? (BSL-pin)).
UART Rx/Tx/Gnd per max232 an den PC-Comport anschliessen.
dann kannste auf den UART (9600Bd, N,8,1) mal ein 0x00-byte schicken und
schauen ob du eine response bekommst (0xd5 oder ähnlich - siehe manual
für den wert je nach derivat und stepping für's BSL-acknowledge...).
Wenn das passt, weisst du schonmal das deine HW funzt ;-).

Das flash ist 16-bit breit (wenn A0 nicht am uC angebunden, da gibt es
keine ungeraden Adressen...), schau mal ob du adress-latches zwischen uC
und Flash hast, dann ist es multiplexed mode, ansonsten non-muxed.

Je nach uC-Takt musst Du auf jeden Fall wait-states für das flash
konfigurieren, da es 70nsec Zugriffszeit hat und z.B. ein 20Mhz uC-Takt
in 50nsec resultieren würde, was zu schnell ist aber bei 25Celsius
vielleicht funzt...

Nun kannste mit minimon fleissig bootstrappen, konfigurieren und
auslesen ;-). Aber etwas manual lesen selbst sollte auch von vorteil
sein ;-).

gruss + viel erfolg, tom.
Autor: Martin Martin (mageb)
Datum:

Danke für die Hilfe. Welcher manual meinst du denn? Meinst du das
Datenblatt? Oder gibts nen gutes manual zu dem Minimon? Ich hab
irgentwie noch keine Anleitung gefunden. Wäre echt nett wenn du mir
einen Link schicken könntest.
Autor: tom (Gast)
Datum:

...guckst Du z.B. hier (habe nach einfach mal nach appnotes auf der
infineon website gesucht).
Du muss P0L.4 auf low legen und dann 1xReset machen, damit der knabe in
den BSL-mode geht. auf das 0x00-byte solltest du ein 0xc5 dann
zurückbekommen (comport-toolkit oder irgendein RS232 terminalprogramm
was hex-schicken kann).
damit wäre klar, das deine kabel funzt. nun solltest du in der lage
sein, mit minimon zu arbeiten. das hat eine integrierte hilfe
(F1-Taste)...
Jetzt muss du "nur" noch die richtigen Einstellungen für SYSCON u.
BUSCONx Register ausknobeln - paar tips dazu habe ich dir ja schon
gegeben, kenne die schaltung nicht also kann ich dir da auch nix
konkretes sagen ausser das du mal im manual nachschaust, wie das externe
businterface nach Pon über so ein paar pulldown-widerstände auf deiner
platine initial konfiguriert wird, damit der prozessor von dort das
programm fetchen kann.

http://www.infineon.com/dgdl/ap1601210_Bootstrap_L...
Autor: tom (Gast)
Datum:
Angehängte Dateien:

guckst du hier, sollte praktikabel sein...
Autor: Martin Martin (mageb)
Datum:

Dabke Danke tom, hab nur leider heute keine Zeit mehr das
auszuprobieren. Ich hoffe ich komme morgen dazu. Ich meld mich auf
jedenfall nochmal obs geklappt hat oder nicht.

Gruß Martin
Autor: Martin Martin (mageb)
Datum:

Hallo, hab endlich mal ein bischen Zeit gefunden. Als erstes habe ich
immer auf meine gesendete 00 eine 00 zurückbekommen. Hab dann aber
festgestellt das ich GND vergessen habe. Kann so ja nicht klappen. Jetzt
bekomme ich nach dem Reset eine 81 als Antwort auf meine 00. Aber nur
einmal beim 2. mal 00 senden bekomme ich keine Antwort. Erst wenn ich
einen erneuten Reset mache. Ist warscheinlich richtig so oder?
Ich werde mich morgen mal mit dem Minimon auseinandersetzen. Oder kann
mir so schon jemand sagen was die 81 zu bedeuten hat? Oder was ich am
Besten als nächstes testen kann?

Gute Nacht

Martin
Autor: Martin Martin (mageb)
Datum:

Hallo, habe jetzt versuch mit Minimon die Daten auszulesen. Aber wenn
ich auf connect klicke sendet der wohl auch eine 00 und bekommt eine 81
als Anwort. Damit ist Minomon aber nicht zufrieden. Wenn ich einen 2.
Versuch mache passiert nichts also keine Antwort. Auch nicht wenn ich
einen erneuten Reset mache. Ich muss dem Controller erst die
Versorgungsspannungs nehmen, ein bischen warten, Spannung wieder drauf,
Reset machen und dann kann ich wieder conecten und bekomme wieder eine
81 als Antwort.

Ich sende mit 9600 und haben als Controller den C167CR eingestellt. Muss
ich mal mit den Einstellungen rumprobieren? Oder ist die Sache
hoffnungslos und mein Controller defekt?

Wäre nett wenn mir da jemdand weiter helfen könnte.

Ich kann auch mal Fotos und Screenshots hochladen wenn das jemandem was
bringt.

Martin
Autor: tom (Gast)
Datum:

Martin,

Also, das RTFM (Read The Fine Manuals) kann Dir niemand vollständig
ersparen ;-)...

Das ACK-byte auf das 0x00 KANN nur beim 1. Mal senden zurückkommen,
siehe Manual des BSL, danach "steht" der uC in seinem internen
ROM-Programm und wartet sehnsüchtig auf 32bytes programmcode per UART...
ABer das macht alles minimon, WENN denn Deine UART-Verbindung ok. ist.

Sieht aber nicht so aus... Baudrate ist ok, aber schau mal ob Du 8,N,1
eingestellt hast. Wenn Du ein scope hast, einfach mal anschauen, was da
am Rx-Pin des uC ankommt und am Tx-Pin rausgeht. 0x81 ist definitiv
KEINE gültige ACK-Kennung eines C167-Typs, da haut was mit Deiner
Kabelage noch nicht hin. Aber das ist Rx/Tx/Gnd und ein MAX232 mit
+5V/GND und paar C's, der richtig beschaltet sein sollte. Das ist
relativ trivial und solltest Du schon selbst auf die Reihe kriegen...

Gruss, tom.
Autor: Martin Martin (mageb)
Datum:

Hallo Tom,

danke für die Info. Mich wundert nur das ich nach einem Reset keine
erneute Antwort bekomme. Ich muss erst die gesammte Spannungsversorgung
weg nehmen. Ich habe auch schon mal RXD und TXD getauscht. Dann bekomme
ich garkeine Antwort. Ich benutzte im Moment einnen FTDI weil mein
Laptop keine Serielle Schnittstelle mehr hat. Einen FT323. Ein Atmel
lässt sich damit ansprechen. Oder sollte ich es mal besser mit einem max
versuchen?
Was sollte ich denn auf dem Scope sehen? Ich habe nur son altes analoges
Hameg.

Was passiert wenn ich die falsche Taktrate eingestellt habe? Auf dem
Quarz steht 808KS042+. Hat der wohl 8 MHz? 80MHz kann der C167 ja nicht
oder? Mein Ossi geht auch nur bis 10 MHz. Aber ich werde es wohl mal
drann machen. Fals es wirklich nur 8 MHz sind müsste ich es ja noch
messen können.

Ich habe mir mal den C167CR bei Ebay gekauft und kann damit dann mal ein
bischen testen. Den Flasch gibts ja auch für 2,50 bei Farnell.

Grüße

Martin
Autor: Jörg S. (joerg-s)
Datum:

>Einen FT323.
Wahrscheinlich eher ein FT232? Benutze ich auch für den C167. Geht
problemlos.

Den Bootstrap Modus hast du aber aktiviert, oder?
Autor: Martin Martin (mageb)
Datum:

Hallo,

ja genau einen FT232. Pol.4 auf 0V und dann 1 mal Reset. Wie gesagt dann
bekomme ich einmal 0x81. Aber nach einem erneuten Reset bekomme ich
keine neue Antwort. Was passiert wenn man die falsche Taktfrequenz
angegeben hat?

Gruß

Martin
Autor: Jörg S. (joerg-s)
Datum:

> Pol.4 auf 0V und dann 1 mal Reset.
Direkt gegen GND geschaltet? Ich bin mir nicht sicher, aber ich glaube
die Pins darf man nur mit Pull-Down (~8,2k) gegen GND schalten.
Autor: B. Jue (bjue)
Datum:

>Mich wundert nur das ich nach einem Reset keine
>erneute Antwort bekomme. Ich muss erst die gesammte Spannungsversorgung
>weg nehmen.

Das ist richtig so! tom hat das auch so gemeint in seiner Antwort.
Hier noch andere Links zu den Antworten:
http://www.embeddedrelated.com/usenet/embedded/sho...
http://www.infineon.com/dgdl/p1601310_Bootstrap_Lo...

Ohne Speicher Oszi wird es vermutlich schwer die Antwort zu überprüfen,
aber ich würde vermuten, der Fehler liegt irgendwo in der Hardware
zwischen TX Pin des Controllers und Deiner RS232 vom PC.
Eventuell solltest Du mal das Schaltbild posten...

Gruß
Bernd
Autor: Martin Martin (mageb)
Datum:

Hallo,

stimmt in der Anleitung steht was von 8k2. Ich habe den Pin so auf 0V
gelegt. War vieleicht nicht ganz so gut. Werde es mal mit Widerstand
versuchen. Ich habe RXT, TXD und GND direkt mit meinem FT232 verbunden.
Wie gesagt mit einem Atmel gehts.

Nur an dem C167 gehen von den RXD und von dem TXD Leiterbahnen irgentwo
anders hin. Ich konnte noch nicht nachverfoleg wo hin. Sollte ich die
mal durchtrennen oder die Pins vorsichtig ablöten und hochbiegen? Oder
kann das nicht stören?

Werde nacher mal ein paar Bilder und Skitzen machen.


Grüße

Martin
Autor: Jörg S. (joerg-s)
Datum:

>Nur an dem C167 gehen von den RXD und von dem TXD Leiterbahnen irgentwo
>anders hin. Ich konnte noch nicht nachverfoleg wo hin. Sollte ich die
>mal durchtrennen oder die Pins vorsichtig ablöten und hochbiegen? Oder
>kann das nicht stören?
Am RX Pin vom C167 sollte nach Möglichkeit natürlich nur der FT232
treiben. Am besten mal mit nem Oszi schauen ob an TX und RX die Flanken
und Pegel sauber von 5V auf 0V gehen.
Autor: Martin Martin (mageb)
Datum:

Hallo,

ich werde mal versuchen nur den Controller an den FTDI anzuschließen.
Ich habe in einer Rummerkiste noch einen C164CI-LM gefunden. Wird der
ähnlich programmiert? Ich würde den gerne mal auf eine Platine setzen
und damit ein wenig versuchen. Kann mir jemand sagen was ich dazu alles
brauche? Quarz ist klar. Wie bringe ich den in den BTM? auch P0L4 auf
GND?

Wäre nett wenn mir das jemand sagen könnte.

Grüße

Martin
Autor: B. Jue (bjue)
Datum:

>Wie bringe ich den in den BTM? auch P0L4 auf GND?
Ja, siehe den Link von neulich, Seite 5:
http://www.infineon.com/dgdl/p1601310_Bootstrap_Lo...
Antwort müsste laut Liste B5h lauten.
Gruß
bjue
Autor: Martin Martin (mageb)
Datum:

Hallo,

ouh ja stimmt hab ich garnicht gesehen. Hat vieleicht jemand einen
Schaltplan für eine standart Beschaltung für den C164CI? Vpp/EA werde
ich ja wohl auf high legen müssen um den internen Rom zu benutzten. Muss
ich noch mehr Eingänge beschalten? Oder reicht es wenn ich die nicht
connecte?


Gruß

Martin
Autor: Martin Martin (mageb)
Datum:
Angehängte Dateien:

Hallo,

ich habe es endlich geschafft mit meinem Controller zu connecten. Ich
haben einen 8k2 an P0L.4 gegen GND. Wenn ich die Spannungsversorgung
einschalte kann ich conecten. Wenn ich erst einen Reset mache wie
vorgesehen dann antwortet der Controller nicht. Ist das wohl richtig so?

Ich habe mal einen Screenshot von meinem Minimon gemacht. Kann mir
vieleicht jemand sagen wie ich dem Controller ein Programm einlocken
kann? Ich kann Bytes makieren und diese vom Controller uploaden. Aber
das was rechts daneben steht kann ja keiner lesen. Welche Einstellungen
muss ich ändern? Oder wo kann man das nachlesen?

Danke für eure Hilfe


Martin
Autor: B. Jue (bjue)
Datum:

>Wenn ich die Spannungsversorgung einschalte kann ich conecten.
>Wenn ich erst einen Reset mache wie vorgesehen dann antwortet
>der Controller nicht.
Wo steht denn was von Reset? Der Controller geht nur dann in den
Bootstraploader Modus, wenn beim Einschalten der Versorgungsspannung 8k2
an P0L.4 gegen GND geschaltet ist. Dies wird oft über einen Jumper oder
Schalter gemacht, damit man den Controller gezielt in den
Bootstraploader Modus schalten kann.
>Ist das wohl richtig so?
Ja!

>Aber das was rechts daneben steht kann ja keiner lesen.
Das sind ganz einfach die jeweils 16 Bytes links daneben in Character
Darstellung (Windows Zeichensatz). Wenn in dem Speicherbereich Texte
abgelegt wären, könntest Du auch was lesen.

Viel Erfolg weiterhin!
Gruß
Bernd
Autor: holger (Gast)
Datum:

>Aber das was rechts daneben steht kann ja keiner lesen.

Das ist halt Binärcode. Man könnte den kompletten Code
mal durch einen Disassembler jagen. Helfen wird dir das
aber vermutlich auch nicht.

> Welche Einstellungen
>muss ich ändern? Oder wo kann man das nachlesen?

Den Hersteller fragen? Ne, lass mal, der sagt dir sowieso nichts.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net