[Programmation] Mise en œuvre du basic 8052
Répondre à la discussion
Page 1 sur 4 12 3 DernièreDernière
Affichage des résultats 1 à 30 sur 107

Mise en œuvre du basic 8052



  1. #1
    Yoruk

    Mise en œuvre du basic 8052


    ------

    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 ?

    -----
    Images attachées Images attachées  
    La robotique, c'est fantastique !

  2. #2
    paulfjujo

    Re : Mise en oeuvre du basic 8052

    bonjour,


    Ce serait plus siimple avec le 8052_AH_Basic
    basic incorporé en ROM
    meme si il est classé obsolete..
    etait utilisé dans des variateurs de vitesse, comme carte ADDON pour des fonctons enrouleur/derouleur
    ou autre personalisation (regul de traction).

  3. #3
    Yoruk

    Re : Mise en oeuvre du basic 8052

    C'est un microprocesseur ou microcontrôleur ?
    La robotique, c'est fantastique !

  4. #4
    vincent66

    Re : Mise en oeuvre du basic 8052

    Bonjour,
    Je crois bien qu'il nécessite une SRAM externe d'au moins 2KB...
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  5. A voir en vidéo sur Futura
  6. #5
    Yoruk

    Re : Mise en oeuvre du basic 8052

    Citation Envoyé par vincent66 Voir le message
    je crois bien qu'il nécessite une sram externe d'au moins 2kb...
    l'at89s52 ?
    La robotique, c'est fantastique !

  7. #6
    vincent66

    Re : Mise en oeuvre du basic 8052

    Oui, comme le 8052AH BASIC...
    L'interpréteur BASIC est flashé dans les 8K de ROM interne mais l'interpréteur a besoin de SRAM pour tourner et si celle-ci n'est pas intégrée dans le uC il faut un circuit externe...
    A noter que le s bus adresse/données sont multiplexés, il faudra donc un latch 8 bits pour A0 à A7 et utiliser le signal ALE ...
    Il faudra peut-être des pullup sur A8 à A15, voir la doc du 8952...

    Si tu souhaites pouvoir enregistrer un ou des programmes basic il faudra utiliser une EPROM ou EEPROM externe
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  8. #7
    Yoruk

    Re : Mise en oeuvre du basic 8052

    Ok merci je comprends mieux. Pas de mémoire externe : pas d'exécution possible. (Après je pouvais me passer de sauvegarde de programmes dans un premier temps)

    Pour résumer, je n'ai pas d'autre choix que de m'inspirer de schémas existants (genre http://dos4ever.com/8031board/schema.pdf). Sur ce même schéma, il n'y a pas de résistance de tirage sur le 80C32 ? (en pull down ?)

    J'aimerai bien trouver un schéma plus simple avec le AT comme base... Là je n'ai aucun des ICs...
    La robotique, c'est fantastique !

  9. #8
    vincent66

    Re : Mise en oeuvre du basic 8052

    Tu ne couperas pas à la SRAM externe et le latch 74HC573... le 74HC138 est facultatif il ne sert de décodeur d'adresse que si plusieurs circuits de mémoire sont utilisés...
    Sur le schéma que tu montres la 27C64 ou 27C256 sert à stocker le programme exécutable... tu n'en as pas besoin car dans ton cas il est stocké dans les 8k de flash interne au 8952...

    Concernant les résistances de tirage pullup elles étaient indispensables sur le 8052AH BASIC sur les lignes AD0 à AD7 (et pas A8 à A15 mes excuses) car celles-ci, bidirectionnelles, étaient en permanence configurées en open collector...
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  10. #9
    Yoruk

    Re : Mise en oeuvre du basic 8052

    Merci.

    Encore une chose qui n'est pas claire... Je met /EA en mode "programme interne" mais il va quand même gérer la SRAM en "allant la chercher" à l’extérieur ?

    En gros je reprends le schéma précédent, je retire IC2, et je remplace IC1 par l'AT89S52 ? Je vais faire un schéma.

    Y aurait-il une référence équivalente pour le HM62256 ?
    La robotique, c'est fantastique !

  11. #10
    vincent66

    Re : Mise en oeuvre du basic 8052

    Oui, /EA définit la localisation de l'interpréteur basic... tu as certainement constaté qu'il y a 64Kadressables pour le programme et autant pour les données...
    Dans ton cas l'interpréteur est interne et le programme basic que tu écriras sera dans la mémoire de données externe accessible après configuration d'un registre par l'interpréteur au boot sauf erreur...

    Pour ton schéma tu utilises l'AT en place du 80C32 et tu ne gardes que le HM62256 (ou n'importe quel SRAM 32KBytes) en branchant A15 à son /CS...
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  12. #11
    Yoruk

    Re : Mise en oeuvre du basic 8052

    Merci !

    Si je résume :

    -at89 : contient le firmware BASIC
    -IC3 : HM62256 : RAM du système, volatile
    -IC4 : 28C64, permet de sauvegarder des programmes même hors tension.
    -IC5 à 8 : logique diverse

    Tu vas me trouver lourd, mais tu pourrais me donner un exemple de SRAM de 32k ? Mon moteur de recherche chez un fournisseur ne me trouve que des SRAM série...?
    La robotique, c'est fantastique !

  13. #12
    Gérard

    Re : Mise en œuvre du basic 8052

    Regarde ici, ça parle de SIMCAD, un projet avec 8032. http://forum.elektor.com/viewtopic.p...55998&t=159082
    Pour la RAM : http://www.alliancememory.com/pdf/AS...feb%202007.pdf

  14. #13
    Yoruk

    Re : Mise en œuvre du basic 8052

    Merci. J'attends un ouvrage sur le sujet.

    Le type de SRAM, sa dénomination c'est du "parallèle" ?
    La robotique, c'est fantastique !

  15. #14
    vincent66

    Re : Mise en œuvre du basic 8052

    Oui, bus de données 8 bits donc parallèle mais ce terme n'apparaît quasiment jamais dans les dénominations ou docs techniques car tombant sous le sens... c'est par contre pour bien les distinguer que certains utilisent la dénomination "serial access"...

    La 28C64 est bien une eeprom permettant le stockage du programme basic... Il me semblait que tu n'en voulais pas...
    Tu ne couperas alors pas à l'utilisation d'un décodage d'adresse comme le 74hc138...

    Il y a des années existait un forum très vivant consacré au basic52, es-tu tombé dessus lors de tes recherches...?
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  16. #15
    Yoruk

    Re : Mise en œuvre du basic 8052

    Citation Envoyé par vincent66 Voir le message
    Oui, bus de données 8 bits donc parallèle mais ce terme n'apparaît quasiment jamais dans les dénominations ou docs techniques car tombant sous le sens... c'est par contre pour bien les distinguer que certains utilisent la dénomination "serial access"...
    Ah, d'accord.

    Citation Envoyé par vincent66 Voir le message
    La 28C64 est bien une eeprom permettant le stockage du programme basic... Il me semblait que tu n'en voulais pas...
    Tant qu'à faire une carte, je vais prévoir son emplacement ! Par contre, il me semble qu'il faut une tension élevée pour écrire dans une eeprom (12 v ?) et mon schéma n'en propose pas...?

    Citation Envoyé par vincent66 Voir le message
    Tu ne couperas alors pas à l'utilisation d'un décodage d'adresse comme le 74hc138...
    Normal...!

    Citation Envoyé par vincent66 Voir le message
    Il y a des années existait un forum très vivant consacré au basic52, es-tu tombé dessus lors de tes recherches...?
    J'ai vu passer un forum anglophone, après je ne sais pas si tu en as un bien précis en tête...?
    La robotique, c'est fantastique !

  17. #16
    vincent66

    Re : Mise en œuvre du basic 8052

    Euh ç'était avant l'avc et je n'ai plus de référence en tête pour ce forum mais ç'était bien anglophone ...

    Avec le 8052AH BASIC il fallait bien du 12,5V pour programmer une EPROM 27CXXX mais pour une eeprom comme la 28C64 le 5V suffit
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  18. #17
    Yoruk

    Re : Mise en œuvre du basic 8052

    Bon j'ai décidé de commencer petit et de tester en premier lieu un AT89S52 et une SRAM seulement. Pourriez-vous jeter un œil au plan afin de voir si je ne me suis pas trompé (j'ai dessiné des bus, mais je suis pas sûr de moi) ?

    -un 74HCT573 s'occupe du maintien des adresses de poids faible, connecté à P0. Le tout est piloté par la pin ALE.
    -la SRAM est commandée par les signaux /WR et /RD.
    -un quartz de 11.0592 mHz anime le tout
    -les broches P1 à P40 sont des pads que j'utiliserai pour repiquer les divers signaux sur ma carte.
    -une alimentation 5v est réalisée avec un 7805 (je sais c'est pas le mieux, mais j'ai ça en stock)


    Questions :

    -que faire de la broche /PSEN du micro, utilisée en cas de stockage du programme dans une mémoire externe ? Je la relie à la masse ou le la laisse en l'air comme sur le schéma ?
    -je vais prendre une SRAM 62256. Parmi les autres références que j'ai pu trouver, les brochages sont-ils les même (que d'autres 62C256) ?
    -dans un futur montage je vais ajouter une EPROM de chez atmel. La ref vous semble bon ?
    -peut-on câbler ce genre de système sur de la breadboard ?


    Merci à vous !

    Nom : plan.jpg
Affichages : 578
Taille : 113,6 Ko
    La robotique, c'est fantastique !

  19. #18
    vincent66

    Re : Mise en œuvre du basic 8052

    Hello !
    Oui ton schéma me semble correct...
    Dans le doute je mettrais des pullup 30K sur D0 à D7
    Et le /CS de la RAM j'y connecterais non pas GND mais plutôt A15...

    ERROR404 sur tes deux liens mais tu peux utiliser le brochage du schéma, c'est un standard international...

    /PSEN est une sortie,tu le laisses en l'air et tu le gardes au chaud pour des développements ultérieurs si tu veux mêler basic et assembleur...

    Pourquoi une EPROM et pas une EEPROM...?

    A quoi seront reliés TX et DX...?

    Bonne continuation...!
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  20. #19
    Yoruk

    Re : Mise en œuvre du basic 8052

    Merci !

    Citation Envoyé par vincent66 Voir le message
    Dans le doute je mettrais des pullup 30K sur D0 à D7
    Ok. Elles étaient apparemment obligatoires sur d'anciennes version des 8051, mais je vais au moins prévoir leur emplacement. Pourquoi ne pas mettre un réseau histoire de gagner en place... 30k c'est critique ? 10k peuvent suffire ? (Apparemment plus facile à trouver)

    Citation Envoyé par vincent66 Voir le message
    Et le /CS de la RAM j'y connecterais non pas GND mais plutôt A15...
    Ok

    Citation Envoyé par vincent66 Voir le message
    ERROR404 sur tes deux liens mais tu peux utiliser le brochage du schéma, c'est un standard international...
    Bon si c'est une norme, nickel !

    Citation Envoyé par vincent66 Voir le message
    /PSEN est une sortie,tu le laisses en l'air et tu le gardes au chaud pour des développements ultérieurs si tu veux mêler basic et assembleur...
    Ok

    Citation Envoyé par vincent66 Voir le message
    Pourquoi une EPROM et pas une EEPROM...?
    Je mélange les termes en permanence...

    Citation Envoyé par vincent66 Voir le message
    A quoi seront reliés TX et DX...?
    J'ai différents adaptateurs qui me servent (TTL-USB, RS232....). C'est pourquoi je n'ai pas prévu de MAX232 pour le moment.

    Merci !
    La robotique, c'est fantastique !

  21. #20
    vincent66

    Re : Mise en œuvre du basic 8052

    Oui, j'utilise ce genre de réseaux de résistances qui sont faits pour...
    OK pour un 10K...
    OK aussi pour un convertisseur TTL-USB si il est compatible avec un uart...
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  22. #21
    Yoruk

    Re : Mise en œuvre du basic 8052

    Voici donc le plan à jour. Je termine le routage, fabrique une petite carte, et assemblage dès que j'aurais reçu les composants qu'il me manque..

    Question stupide, ça se dessine comme ça des bus ?

    A suivre...Nom : plan v2.jpg
Affichages : 602
Taille : 119,7 Ko
    La robotique, c'est fantastique !

  23. #22
    vincent66

    Re : Mise en œuvre du basic 8052

    Bien,
    Euh un doute m'assaille, RST n'est pas actif à l'état bas...?
    Tes bus me semblent corrects mais il faut peut-être placer des entrées de bus en biais...
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  24. #23
    Yoruk

    Re : Mise en œuvre du basic 8052

    Le reset ? Non je confirme qu'il est actif à l'état haut : (et qu'il faut donc le tirer vers le bas)

    "A high on this pin for two machine cycles while the oscillator is running resets the device."
    La robotique, c'est fantastique !

  25. #24
    Yoruk

    Re : Mise en œuvre du basic 8052

    Cette sram et cette eeprom peuvent-elles être utilisées ? (J'aimerai être sûr avant de passer commande...)

    Merci !
    La robotique, c'est fantastique !

  26. #25
    vincent66

    Re : Mise en œuvre du basic 8052

    A priori oui, je confirme...
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  27. #26
    Yoruk

    Re : Mise en œuvre du basic 8052

    Bon, ça marche !

    Après dessin/routage/fabrication de la carte, j'ai commandé les quelques composants qu'il me manquait (SRAM, circuits 74xxxx). Et après assemblage et tests, ça fonctionne ! J'ai utilisé la rom 1.2a, dite compatible avec le 8051. J'utilise un adaptateur USB-TTL pour la liaison série. J'ai juste noté qu'à 9600 bauds la liaison ne marche pas , mais plus bas (4800) marche super.

    J'ai bricolé un petit soft de transfert de fichiers pour pouvoir programmer depuis mon PC (vu que je n'ai pas encore d'eeprom pour sauvegarder mes programmes). Les outils existants ne fonctionnent pas correctement car il faut envoyer le programme ligne par ligne (il faut lui laisser le temps d'enregistrer la ligne avant de balancer la suivante. L'idée est de tester si le micro renvoie le ">".). J'ai testé la génération de sons avec le PWM, les sorties... Bon j'ai pas encore parcouru toute la doc. Il faut dire aussi que certains exemple donnés sont faux !

    Une fois le truc bien maitrisé, la prochaine étape sera d'ajouter une EEPROM !!

    Encore merci à vous pour votre aide.

    IMGP6114.jpg
    first start.png
    La robotique, c'est fantastique !

  28. #27
    vincent66

    Re : Mise en œuvre du basic 8052

    Félicitations...!!!

    Hein que c'est jouissif de voir READY s'afficher à la mise sous tension ...!
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  29. #28
    Yoruk

    Re : Mise en œuvre du basic 8052

    Bonjour à tous,

    Bon je continue (tant que je suis chaud) sur la compréhension de ce système, et je suis en train de préparer un schéma pour ajouter une EEPROM à mon précédent design.

    Souci, j'ai un peu de mal à comprendre. Si je pars du schéma habituel (ICI) j'aimerai qu'on me confirme que mes conclusions sont bonnes :

    On commence par IC6 : décodeur 3 vers 8. Si je comprends bien, on rentre les 3 derniers bits de l'adresse (A13 à A15) et selon la valeur, une seule sortie Q passe à 0. On s'en sert pour activer le chip enable du "module" mémoire concerné. En gros le micro n'a qu'une seule plage d'adresses mémoire, c'est juste que certaines plages pointent vers des chips différents (sa propre ram, ram externe, eeprom...) C'est bien ça ? Par contre, il faut bien choisir les sorties (Q0 à Q7), car en fonction de la taille de la RAM et de l'EEPROM je risque d'avoir des trous ?

    Ce que je ne comprends pas, c'est comment il sait que telle adresse à telle adresse c'est de la ram, telle adresse à telle adresse l'EEPROM... On trouve la (une ?) répartition ici. Mais c'est figé ? En gros ça ne sert à rien de prendre une RAM possédant une capacité trop grosse, car il ne l'utilisera pas ?


    Du coup dans mon schéma, je ne m'occupe pas des sorties Q5 et Q6, car ça pointe sur des chips que je n'ai pas ? (Le CYM 1464)


    J'ai aussi du mal à comprendre le coup des portes NAND (IC8) qui gèrent les output enable (/OE) de la RAM et l'EEPROM...

    Sachant que je n'ai pas IC2 (intégré à mon µC), je peux directement relier les /OE de ma RAM et de mon EEPROM à la broche /RD de mon µC ?


    Dernière question (pour le moment ) sur le rôle du chip enable et du output enable... (Le "chip enable" coupe complètement le chip (pas de lecture ni d'écriture) alors que le output enable sert à activer la lecture ? (/We servant à indiquer l'écriture ?).


    En gros si je résume :

    -chip enable : active ou non "l'existence" du chip sur la ligne mémoire (En gros, le chip reçoit l'ordre d'écrire ou de lire dans tout les cas, mais s'il n'est pas "activé" avec le chip enable, il ne fera RIEN ?)
    -write enable : enregistre en mémoire les données présentes sur le bus data à l'adresse indiquée
    -output enable : place en sortie les données présentes sur le bus data lues à l'adresse indiquée
    -toutes les datas des chips mémoire sont reliées ensemble, de même que les adresses.
    -Le 74HCT138 permet d'activer le chip concerné (avec le /CE) en fonction de la plage d'adresse concernée.

    (J'ai lu les datasheets mais c'est pas clair...!)

    J'ai bon ?

    Merci pour vos lumières !
    La robotique, c'est fantastique !

  30. #29
    vincent66

    Re : Mise en œuvre du basic 8052

    Hello !
    Tu as bien compris les fonctionnement et rôle du 74HC138...
    Ainsi que de /CE, /OE et /WE ...

    Intel a choisi que son basic pourrait gérer l'espace datas en 32KB de SRAM aux adresses basses et de l'eprom ou eeprom aux adresses supérieures ...
    Note bien que si tu veux plus tard utiliser des circuits d'extension comportant des registres internes programmables via le bus, il faudra prévoir un banc d'adresses pris sur l'espace de datas ...

    Le boutiquage avec les NAND, /PSEN et /RD permet d'éxecuter des programmes situés en SRAM ou EEPROM...

    Et pour finir ça fait longtemps qu'on utilise un PAL ou GAL pour faire tout ce décodage d'adresses, c'est bien plus souple et pratique...!

    Bonne continuation !
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  31. #30
    Yoruk

    Re : Mise en œuvre du basic 8052

    Ok merci !

    Donc en gros les premiers 32k sont forcément de la SRAM (ni plus, ni moins), et au dessus c'est ce qu'on veux ? (généralement de l'EEPROM donc ?)

    Le boutiquage avec les NAND, /PSEN et /RD permet d'éxecuter des programmes situés en SRAM ou EEPROM...
    Je peux donc retirer ces éléments pour faire SRAM -> mémoire du basic et EEPROM -> stockage du (des) programmes ?

    Et pour finir ça fait longtemps qu'on utilise un PAL ou GAL pour faire tout ce décodage d'adresses, c'est bien plus souple et pratique...!
    Tu aurais un exemple de schéma, pour ma culture ?

    Bon j'ai suffisemment d'éléments pour poursuivre le dessin de mon schéma...
    La robotique, c'est fantastique !

Page 1 sur 4 12 3 DernièreDernière

Discussions similaires

  1. Pour le plaisir Misumena vatia à l'œuvre.
    Par invite13787621101991 dans le forum Identification des espèces animales ou végétales
    Réponses: 5
    Dernier message: 04/06/2012, 09h41
  2. Mise en place d'une minuterie pour la mise sous tension d'une sirene.
    Par invite3c0f0680 dans le forum Électronique
    Réponses: 1
    Dernier message: 29/01/2011, 21h44
  3. transfert GW basic vers basic ou visuel basic
    Par jean593 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 21/05/2010, 11h08
  4. Basic ? Visual Basic ?
    Par invite1e5c24bd dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 16/10/2006, 13h15
  5. en manœuvre
    Par Quantic star dans le forum Mathématiques du collège et du lycée
    Réponses: 7
    Dernier message: 24/07/2006, 11h26
Découvrez nos comparatifs produits sur l'informatique et les technologies.