Bonjour à tous,
Je vous sollicite aujourd'hui car je bute sur un petit projet personnel : faire fonctionner le basic 8052 sur un microcontrôleur base 8051.
On trouve plein d'articles sur le sujet :
http://www.nomad.ee/micros/8052bas.html
http://dos4ever.com/8031board/8031board.html
http://dsaprojects.orgfree.com/elect.../8952-bas.html
Qui donnent toutes les instructions nécessaires (et les .HEX) à flasher.
N'ayant pas exactement le bon matériel, je me suis rabattu sur une carte possédant un AT89S52. En gros, je n'utilise pas la configuration chip + programme dans une EPROM externe, mais un chip contenant le tout.
Après contact avec les auteurs de ces différentes pages, ils confirment que la manip est possible : "AT89S52 (optional type uC + PEROM, just do the same)"
La mise en œuvre est simple : flasher la mémoire, se connecter au µc via un terminal, appuyer sur espace pour déclencher une routine d'identification des paramètres de la liaison série (vitesse...) et le système renvoie l'invite principale de l'interpréteur.
J'en arrive à mon problème... Le système ne démarre pas. J'ai eu beau tester TOUS les HEX disponibles, aucun n'a fonctionné. Coté hardware, la liaison série est effectuée via un adaptateur USB-TTL (testé aussi avec une liaison série classique avec un MAX232). La carte et la liaison série sont fonctionnelles (testé avec un programme assembleur maison qui envoie du texte et fait écho aux caractères reçus). Testé sur différentes cartes et avec différents matériels pour la liaison série. Je n'ai toutefois testé qu'un seul AT89S52 (je n'en ai qu'un).
J'utilise une arduino en mode ISP pour flasher le micro.
Je sais que l'AT89S52 à besoin de certaines infos pour déterminer s'il fonctionne en mode mémoire interne ou externe (la broche /EA VPP doit être pull up pour programme interne). La datasheet précise :
"External Access Enable. /EA must be strapped to GND in order to enable the device to fetch code from external program memory locations starting at 0000H up to FFFFH. Note, however, that if lock bit 1 is programmed, /EA will be internally latched on reset."
Je ne crois pas que mon programmateur touche aux fuses... Tout ce que je sais, c'est que les programmes assembleur que je fais moi même démarrent correctement.
Bref, je ne vois pas trop ce qui ne va pas. La carte fonctionne, le chip aussi, la liaison série aussi. Je ne vois pas trop quoi tester d'autre. Peut-être que les HEX qui sont donnés ne vont pas dans les bonnes places mémoires ou autre détail du genre, ou tout simplement qu'il est impossible d'utiliser l'AT89S52 pour cela.
Auriez-vous des pistes de réflexion pour m'aider à avancer ? En PJ mon schéma. (l'adaptateur USB- série TTL n'est pas représenté)
Merci d'avance !
PS : certes le basic 8052 c'est démodé / inutile / pas performant et tout ce que vous voulez. Mais c'est en expérimentant qu'on apprends non ?
-----