Journal MC68HC908JB8 - pour ceux qui connaissent pas cette ref, inutile de lire la suite

Posté par  (site web personnel) .
Étiquettes : aucune
0
14
avr.
2004
Bon voila: je me suis soude une plaque de dev a base d un MC68HC908JB8JP. Et pour envoyer mes bouts de code dans la pupuce, je dois utiliser un moniteur sur port serie. Probleme: les seuls moniteurs dispo sont proprio, cher, et ne tournent que sous windows. Je suis pas a ca pres ... hop je prends mon vim et je commence le taf en C sous GPL sous Linux .

Apres quelques problemes a cause que je n arrivais pas a passer le port serie en mode raw, j arrive now a uploader n importequel bout de code dans la ram de ma pupuce, et a l executer. j arrive par exemple a faire clignoter une LED, a piloter un servo moteur, ou encore a faire vrombire un moteur pas a pas.

Mon probleme actuel est pour ecrire dans la FLASH.

J ai pu recuperer le projet d un belge: avec ses routines, j arrive a transferer un bout de code de la RAM vers la FLASH, mais cette routine ne prends pas en compte la cadence du BUS, et ne verifie pas les tout plein de trucs importants. Bref, avec ces routines, " ca marche", mais ce n est pas utilisable en prod.

J ai donc tente les appels aux routines ROM en $FC03 et $FC06, mais ni les routines de prog ni d erase ne marchent. j ai verifie 10 fois CPUSPD=BusSpeed*4, l adresse loadee dans HX et les autres args de ces routines. Rien n y fait.

Je me suis aussi penche sur SPGMR-08, mais il ne suporte que les CPU 32 bits , et lui non plus n a pas prevu que les chip puissent avoir des cadences differents.

Bref, je me retrouve toujours au meme point: je n arrive pas a appeler les routines en ROM, et lorsque j essaye d ecrire des routines maison, elles sont trop grosses pour rentrer dans la RAM, donc inutilisables.
- soit je trouve pourquoi les routines ROM ne marchent pas
- soit quelqu un m aide a optimiser une routine qui prenne en compte tous les parametres important, mais qui arrive quand meme a rester sous les 105 bytes sinon ca rentre pas dans la RAM. ( ou alors il faut deplacer la Stack et la c est un fight encore pire)

Bref. j ai ecris plein de fois a Motorolla, mais ils ne trouvent pas pourquoi http://chezmoicanemarchepas.com

Log boog de ce que j ai deja fait ( incliant le chemat de ma carte de dev) http://demaine.free.fr/projet_slef_tracking_webcam/log_book2004_02_(...)
src de mon moniteur http://demaine.free.fr/monitor_68hc08/src/(...)
les pdf de pupuce:
http://e-www.motorola.com/files/microcontrollers/doc/app_note/AN183(...)
http://e-www.motorola.com/files/microcontrollers/doc/app_note/AN234(...)
http://e-www.motorola.com/files/microcontrollers/doc/user_guide/M68(...)
( heu ces url viennent d un mail de motorolla, moi j utilise plutot /MC68HC908JB8.pdf mais j ai pas son url sous le mulot )

Si quelqu un a une petite idee pour m aider:
- a porter spgmr pour le MC68HC908 ( qui est en fait un MC68HC08 )
- a trouver pourquoi mes appels aux routines en ROM ne marchent pas
- a re-ecrire une routine erase/program qui soit propre, et tienne compte des variables importantes ( comme la vitesse du bus , etc ...)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.