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
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.
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?
> 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.
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.
>Muss man vieleicht an pin 77 und 78 mit einem max232 dran gehen?
Genau das ja :) Pins stimmen auch...
..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.
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.
...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_Loader_IDB.pdf?folderId=db3a304313719f4f011372b30f58008a&fileId=db3a304318a6cd680118cb945a2140bc
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
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
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
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.
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
>Einen FT323.
Wahrscheinlich eher ein FT232? Benutze ich auch für den C167. Geht
problemlos.
Den Bootstrap Modus hast du aber aktiviert, oder?
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
> 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.
>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/show/7562-1.php http://www.infineon.com/dgdl/p1601310_Bootstrap_Loader_Versions.pdf?folderId=db3a304412b407950112b409d4b00386&fileId=db3a304412b407950112b40a11780435 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
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
>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.
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
>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
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
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
>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
>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.
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.