Forum: Mikrocontroller und Digitale Elektronik M16C/62P ID Probleme


von Martin (Gast)


Lesenswert?

Hallo zusammen,

ich habe eine kleine Testplatine aufgebaut wo ein M16C/62p M30622F8PFP 
drauf ist. Heute wollte ich das ding zum ersten mal mit dem Tool 
Flashsta.exe flashen. Das Tool hat mich nach dem Pfad der .mot gefragt 
und nach der Id. Für die ID hab ich 7 mal FF eingegeben. Auf Ok gedrückt 
und mit Blank-Check, Program, Read (verify) geflasht. Alles super und 
hat geklappt.
Beim 2.Versuch das Ding zu flashen konnte ich mich mit der ID 7 mal FF 
nicht mehr am Controller anmelden . Es erscheint immer "ID not matched".
Also muss ich irgendwie die ID unbewusst geändert haben. Aber ich weis 
nicht wie und wo . Vielleicht hat die .mot die ich geflasht hab in den 
falschen Speicherbereich geschrieben, weil vielleicht beim kompilieren 
was falsch eingestellt war.

Falls jemand mehr weis als ich Bitte melden

von Olaf (Gast)


Lesenswert?

> Vielleicht hat die .mot die ich geflasht hab in den
> falschen Speicherbereich geschrieben,

Das ist zumindest theoretisch denkbar weil ja die IDs
im Flashrom liegen. Wenn ich mich richtig erinnere kann
man das ganz gut schaffen wenn man die Tabelle fuer IRQs
an die aeh 'richtige' Stelle liegen hat.

> Aber ich weis nicht wie und wo

Das darfst du jetzt rausfinden. :-) Wenn dir klar ist was du
da wo reingebrannt hast dann kannst du ja die richtige ID
aus deinem mot-file auslesen.
Vorher kannst du es ja mal mit 7x 0x00 als ID probieren.
Danach ist wohl denken angesagt, oder ein neuer Prozessor.

Aber nicht aufgeben, der Prozessor ist schoen wenn man den
ID-Unsinn erst mal im Griff hat.

Olaf

von Martin (Gast)


Lesenswert?

Super Olaf,

mit ID 7 mal 0x00 hats hingehauen weis nur nicht
warum aber jetzt kann ich mich wieder anmelden.
Und das erste Programm führt der Controller auch aus.

Super, Danke

von Olaf (Gast)


Lesenswert?

Wie schon erwaehnt, die IDs liegen im Flashrom. Und ganz da in der Naehe 
liegen die Vektoren fuer die Interrupts. Jedenfalls per 
Defaulteinstellung.
Ich koennte mir vorstellen das du dir die IDs uebergebraten hast wenn 
dein Programm eine solche Tabelle enthaelt.

Olaf

von Frank (Gast)


Lesenswert?

die Lösung ist ganz einfach:

M16 im Urzustand = LEER = 0xFFFF

Die IDs liegen im letzten Block und teieln sich mit verschieden INTs den 
Speicherplatz (z.B. NMI, RESET,...).

Programmiert man ein neues Programm hinein, wird die Speicehrstelle der 
IDs mit der Vektoradresse desd jeweiligen INTs überschrieben (mit 0x00). 
Will man eine eigene ID generieren, kann das z.b. im Compiler mit 
vorgegeben werden. Man kann auch eine Datei mit xx.id generieren (id 
steht für den gleichen Name wie das Programmfile) in der die IDs 
eingetragen sind. Soll 0xFF bestehen bleiben, einfach in der Startup bei 
den entsprechenden Vektoren mit FF odern.

Mit dem Flash-Tool M16C-Flasher geht das übrigens deutlich einfacher und 
komfortabler.

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.