17/01/2012

PIC 17C4x en mode microprocesseur


Cette carte permet d'utiliser un PIC17C4x avec un programme situé dans une mémoire externe (ici des EPROM 27512). Cette carte est très largement inspiré :
  • De la documentation des PIC17C4x : figure 6.4 : TYPICAL EXTERNAL PROGRAM MEMORY CONNECTION DIAGRAM 
  • D'un schéma de la note d'application TB005 : Appendix A : PIC17C4X EXTERNAL RAM SCHEMATIC  
Pour l'utiliser, il faut donc dans l'ordre :
  • Ecrire le programme. 
  • Le compiler avec MPASM paramétré sur INHX8S afin de sortir deux fichiers : HXL = EPROM L et HXH = EPROM H (voir image pour les emplacements). 
  • Programmer les deux EPROM. Les fichiers sont au format Intel. Il faudra peut être les renommer avec l'extention INT pour les utiliser avec votre programmateur d'EPROM. Si votre programmateur ne supporte pas ce format, il faudra le convertir dans un format supporté. Le programme FCC permet cela, il est disponible sur ce site http://www.artbv.nl
L'archive contient :
  • La liste des composants + quelques explications. 
  • La PCB (format WINCIRCUIT 5.0) 
  • Un petit exemple (fichiers ASM, HXL et HXH).

Celle-ci comporte toujours un PIC17C44 mais cette fois configuré en mode microcontrolleur étendu et cadencé à 20 MHz. La carte comporte :
  • 2 Mb de RAM en deux pages. 
  • 1 Mb d'EEPROM série. 
  • Un port série. 
  • Un port 8 bits (dont deux utilisables comme port I2C).
Dans cette version, ma carte est plus souple d'utilisation. Deux exemples :
  • Programme "court" (< à 8 Ko) mais nécessitant beaucoup de mémoire. Le programme peut alors être stocker dans le PIC (00000h à 01FFFh) et l'on dispose d'un espace mémoire de pratiquement 120 Ko (02000h à 0FDFFh et 10000h à 1FFFFh) grâce aux instructions de lecture/écriture de table. 
  • Programme "long" (> à 8k), le programme est d'abord chargé en RAM (via RS232) puis transféré en EEPROM. Puis à chaque démarrage, le programme est chargé en RAM depuis l'EEPROM.
Pour information cette carte est pratiquement identique à la précédente. En fait il s'agit du schéma de la note TB005 avec quelques périphériques supplémentaires.

Et la même, mais avec en plus :
  • Sauvegarde par pile de la RAM. 
  • Horloge temps réel. 
  • Led de signalisation (piloter par le PIC).

Pour avoir plus d'E/S il est sans doute possible de faire un adaptateur pour les PIC17C7x6.

Strtoasm - Générateur de code automatique pour liaison série

Strtoasm : Générateur de code automatique pour liaison série. Vous tapez votre texte, et strtoasm génère le code correspondant pour envoyer chacune des lettres tapées vers le port série de votre PIC®. Permet ainsi de remplacer de nombreuses lignes de code par un simple fichier devant un "#include".

Commentaires de l'auteur: Si vous distribuez ce logiciel, veillez à ce qu'il soit accompagné de son fichier source et de ses deux versions (Linux et Windows) , si tous les fichiers ne vous servent pas, ils pourront toujours servir à quelqu'un ! Veillez aussi à joindre le fichier "lisezmoi.txt" que je vous conseille de lireavant d'utiliser ce programme.

L'archive contient: L'exécutable Windows, l'exécutable Linux x86 (compilé sur une Fedora 1.0 ), le fichier source en C++, et le détail des mises à jour.

Télécharger l'archive ici

Utilisation du bus IWire

Utilisation du bus IWire. Routine à copier/coller directement dans vos programmes ou à inclure à l'aide de la directive .
Commentaires de l'auteur: Cette version est faite pour tourner sur un PIC® cadencé à 4 MHz (quartz ou oscillateur interne). Le programme de test tourne sur un PIC® 16F628 qui envoie la température en mode série avec son USART, mais la routine onewire.asm est destinée à tous type de PIC® (pourvu qu'ils soient cadencés à 4 MHz).

L'archive contient: Un fichier regroupant Les fichiers sources en assembleur (5 au total), une version compilée opérationnelle et une petite note explicative.

Télécharger l'archive ici

Mettre en oeuvre le module CCP pour un signal PWM (MLI)

Ce programme pouvant être également utilisé sur 16F827 après réassemblage, permet de mettre en oeuvre le module CCP afin de délivrer un signal PWM (ou MLI en français) de 19.2 KHz avec un rapport cyclique sur 8 bits. Ce rapport cyclique est réglable grâce à un convertisseur analogique-digital externe de type MAX1243. La librairie est jointe.
Commentaires de l'auteur: Vous trouverez dans le programme l'application des étapes de la documentation de Microchip pour la mise en oeuvre de la sortie PWM. J'ai essayé de placer pas mal de commentaires dans le fichier source pour comprendre ce qui s'y passe, mais si vous avez déjà utilisé un PIC® 16F84 ça ne devrait pas vous poser de problèmes. Une évolution intéressante serait d’y appliquer l’implémentation de la liaison série (grâce au module USART présent sur ce PIC®) et ainsi, de se passer du convertisseur en réalisant une interface simple avec votre PC…

L'archive contient: Le fichier source en assembleur, les librairies (l'originale et celle de l'auteur), le fichier ".hex", et un schéma de câblage.

Télécharger l'archive ici