logo_PLG

Electronique

Générateur MLI universel

Schema 090856 modifié 320x290px
Je présente ici la transposition logicielle que j'ai effectuée à partir d'une application parue dans la revue Elektor n° 385/386 en juillet 2010 page 45. J'ai été rapidement intrigué par l'utilisation de son auteur d'un encodeur rotatif pour la sélection des options d'iun Menu. J'ai tenté à plusieurs reprises de programmer un PIC16F628A (en fait j'en ai deux exemplaires), mais le soft refuse de fonctionner.  Le software a été je pense développé à l'origine en C(++) avec probablement un compilateur CCS.

Possèdant une carte EasyPICv7 de mikroElektronika ainsi que la licence de mikroC, j'ai entrepris de transposer le logiciel d'origine pour constater là encore son dysfonctionnement. J'ai repris l'analyse complète du soft, modifié quelques lignes d'instructions, et programmé le fichier hex dans cette fois un PIC16F88 car le PIC16F628A manquait de mémoire RAM1, la bibilothèque gérant le LCD étant probablement plus gourmande en ressources que celle utilisée par son développeur Alexander ZIEMEK. Même en déplaçant en ROM les "variables" qui sont plutôt des constantes comme les messages texte destinés à l'afficheur LCD et qui n'ont rien à faire en RAM, c'est cette fois de la mémoire ROM qui manquait au PIC16F628A (Flash: 2048 octets). Il aurait fallu  que j'utilise plutôt un PIC16F648A (Flash: 4096 octets) mais n'en ayant pas, j'ai choisi un PIC16F88 totalement compatible broche à broche.

J'ai ainsi réussi à obtenir un système parfaitement fonctionnel, mais qui reste sûrement perfectible.
J'ai également ajouté de nombreux commentaires tout au long du script, rendant ainsi sa lecture et sa compréhension plus aisée. Il va sans dire que j'ai travaillé sur ce projet en tant qu'amateur, n'étant absolument pas un progammeur avéré.

Le schéma  présenté ici est très légèrement modifié (correction en bleu) car je n'utilise pas la pin RW du LCD, qui demeure reliée à la masse. Ceci libère ainsi la pin RA2 du processeur pour une autre utilisation..
Je n'ai pas dessiné de circuit imprimé pour cette application qui demeure dans mon cas un projet non abouti, seul le principe de fonctionnement m'intéressait.

 

Package comprenant : save f2
Logiciel écrit en langage mikroC (source et exécutable)
Schéma modifié

 

1 Occupation mémoire du PIC16F88 lors de la compilation :

Available RAM: 352 [bytes], Available ROM: 4096 [bytes]
Used RAM (bytes): 82 (23%)  Free RAM (bytes): 270 (77%)
Used ROM (program words): 3096 (76%)  Free ROM (program words): 1000 (24%)

Quelques liens vers les sites de mes amis...

Licence Creative Commons

 Licence CC BY NC SA 3.0 FR DEED L'ensemble de ce site hormis une notification spécifique est mis
à  disposition selon les termes de la Licence Creative Commons
Attribution - Pas d'Utilisation Commerciale - Partage dans les Mêmes Conditions
3.0 France.
Licence Creative Commons