Bibliothèque technique gratuite ENCYCLOPÉDIE DE LA RADIOÉLECTRONIQUE ET DU GÉNIE ÉLECTRIQUE Programmation de puces de mémoire série. Encyclopédie de l'électronique radio et de l'électrotechnique Encyclopédie de l'électronique radio et de l'électrotechnique / microcontrôleurs Les puces de mémoire non volatile avec entrée et sortie de données série sont largement utilisées aujourd'hui pour stocker des modes définis et des paramètres fixes dans les téléviseurs, radios et autres appareils électroménagers. Lors de sa réparation, il devient souvent nécessaire de lire le contenu de ces microcircuits ou d'y écrire de nouvelles données. Cela se fait généralement à l'aide d'appareils spéciaux - des programmeurs. Mais pour programmer un ou deux microcircuits dans des conditions amateurs, il n'est pas rentable d'acheter un programmeur assez cher. Un ordinateur personnel normal fera très bien l'affaire. L'AT93C46 d'ATMEL est l'une des puces de mémoire non volatile les plus courantes. Pour communiquer avec le microcontrôleur, il est équipé d'une interface série, composée uniquement de trois bus à un seul bit SK (synchronisation), D1 (entrée de données) et DO (sortie de données). Ces bus sont connectés en parallèle à tous les nœuds du dispositif avec une telle interface. Les données sont transmises bit par bit. accompagnant chaque bit d'une impulsion d'horloge SK. La puce AT93C46 fournit également des entrées CS (sélection de puce) pour la basculer vers l'état actif et ORG (organisation). Si ce dernier est connecté à une source d'alimentation, 64 cellules de mémoire à seize bits sont formées dans le microcircuit, si avec un fil commun - 128 cellules à huit bits. Pour lire un contenu ou un programme à l'aide d'un ordinateur, la puce AT93C46 doit être connectée à la prise du port LPT1 ou LPT2, comme indiqué sur la figure. L'entrée ORG du microcircuit étant connectée à un fil commun, l'organisation de la mémoire est de huit bits. Il est recommandé d'appliquer la tension +5 V à partir d'une source externe, mais vous pouvez utiliser n'importe quelle ligne de sortie libre du port en y définissant par programmation un niveau logique élevé. Le programme de service indiqué dans le tableau est écrit en BASIC (compilateur Power Basic version 2.10f). Le programme commence par demander le numéro de port auquel la puce est connectée. Selon la réponse de l'opérateur de variable de port, la valeur de l'adresse de base du port sélectionné est soudée : 888 (hexadécimal 378H) pour LPT1 ou 632 (hexadécimal 278H) pour LPT2. La commande out port.0 définit toutes les broches du bus de données du port sur une tension logique basse. Ensuite, l'opérateur est invité à sélectionner le mode de lecture des données de la puce ou d'écriture sur celle-ci et à entrer le nom du fichier dans lequel les informations lues seront enregistrées ou les informations préparées pour l'écriture se trouvent. Ceux qui utilisent d'autres versions de BASIC doivent être conscients que la syntaxe des opérateurs pour travailler avec des fichiers peut être différente. Le programme enregistre non seulement les données lues à partir de la puce ou écrites dessus dans un fichier ou les lit, mais les affiche également sur l'écran du moniteur sous la forme d'un vidage hexadécimal. Les procédures de lecture et d'écriture des données sont quelque peu différentes, mais elles utilisent les mêmes opérations pour "communiquer" avec le microcircuit, conçues dans le programme comme des fonctions :
L'unité de contrôle interne de la puce AT93C46 reçoit et exécute les commandes de la ligne DI. Chaque instruction commence par un bit de départ de logique 1, suivi de deux bits d'opcode et du nombre requis de bits d'adresse de mémoire et de données. Avant que chaque commande ne soit donnée, l'entrée CS doit être réglée sur un niveau logique haut, après son achèvement - sur un niveau bas. L'instruction de lecture de données (READ) a un code opération de 10 suivi d'une adresse d'emplacement. En réponse, le microcircuit produira l'octet de données DO stocké à l'adresse spécifiée, qui peut être lu à l'aide de la fonction shiftin. Après la mise sous tension, la puce AT93C46 passe automatiquement dans un mode dans lequel l'effacement et l'écriture de données sont interdits, ce qui évite leur dommage accidentel. Donc avant. Pour y écrire des données, vous devez activer cette opération en exécutant la commande EWEN - Erase/Write Enable. Son code de fonctionnement est 00 suivi de l'adresse 11 xxxxx. Les valeurs des cinq derniers bits de l'adresse ne sont pas analysées par la commande EWEN, et elles peuvent être n'importe quoi. Une fois donnée, la commande EWEN est valide jusqu'à ce qu'elle soit annulée par une commande spéciale ou jusqu'à ce que l'alimentation du microcircuit soit coupée. La commande d'écriture (WRITE) a l'opcode 01 suivi de l'adresse d'emplacement et de l'octet de données à écrire. Ayant reçu une telle commande, le dispositif de contrôle commence à exécuter un cycle d'enregistrement interne dont la durée n'est pas supérieure à 10 ms. Jusqu'à ce qu'il se termine, le microcircuit ne répond pas aux nouvelles commandes. Si à ce moment une courte impulsion logique basse est appliquée à l'entrée CS, la sortie DO sera définie et restera basse jusqu'à ce que le cycle soit terminé. Dès qu'il monte, vous devez régler l'entrée CS sur bas. après quoi la puce est prête à recevoir de nouvelles commandes. Si l'impulsion mentionnée n'est pas appliquée à l'entrée CS ou est appliquée après la fin du cycle d'écriture, l'état de sortie DO restera à haute impédance. En plus des commandes considérées, il en existe d'autres: interdire l'effacement / l'écriture (EWDS), écrire une constante dans toutes les cellules mémoire (WRAL), effacer toutes les cellules mémoire (ERAL). En pratique, ils sont relativement peu utilisés. Une description de toutes les commandes, ainsi que d'autres détails de la conception et du fonctionnement de la puce AT93C46, peuvent être trouvés dans [1, 2]. Le programme décrit avec des modifications mineures peut être utilisé pour programmer n'importe quelle puce mémoire de la famille АТ9Схх en définissant la plage d'adresses appropriée. Par exemple, la puce AT93C56 contient 256. et AT93C66 - 512 cellules de mémoire huit bits. 93X16.EXE - une version du programme conçue pour fonctionner avec la puce AT93C46 en mode seize bits (l'entrée ORG est connectée à une source d'alimentation). littérature
Auteur : A.Goncharenko, Odessa, Ukraine Voir d'autres articles section microcontrôleurs. Lire et écrire utile commentaires sur cet article. Dernières nouvelles de la science et de la technologie, nouvelle électronique : Machine pour éclaircir les fleurs dans les jardins
02.05.2024 Microscope infrarouge avancé
02.05.2024 Piège à air pour insectes
01.05.2024
Autres nouvelles intéressantes : ▪ Carte Flash 64 Mbit DataFlash d'ATMEL ▪ LG vendra également de la musique Fil d'actualité de la science et de la technologie, nouvelle électronique
Matériaux intéressants de la bibliothèque technique gratuite : ▪ section du site Alimentations. Sélection d'articles ▪ article de Hans Christian Andersen. Aphorismes célèbres ▪ article Installateur de structures translucides. Description de l'emploi
Laissez votre commentaire sur cet article : Toutes les langues de cette page Page principale | bibliothèque | Articles | Plan du site | Avis sur le site www.diagramme.com.ua |