Cette page à pour but d'expliquer le projet de pilotage d'une carte Compact Flash en mode “ATA” avec un PIC18 et gestion de la FAT.
Pour commencer, j'ai effectué une recherche de documentations, de cas similaires pour avoir des retours d'expériences…etc…
Le mieux étant encore d'expérimenter par soi même, il serait très intéressant d'avoir une carte de dèv pour tester une Compact Flash “cobaye”. Les Compact Flash ont 3 modes de fonctionnement : I/O Mode, IDE Mode (ou ATA) et Memory Mode, ce dernier mode sera utilisé. En mode “ATA”, nous allons avoir besoin sur la Compact Flash de (les noms précédés de - indique un signal actif à l'état bas):
Mapping des broches :
| Broche CF | A0 | A1 | A2 |
|---|---|---|---|
| Port Pic | RE0 | RE1 | RE2 |
| Broche CF | D0 | D1 | D2 | D3 | D4 | D5 | D6 | D7 |
|---|---|---|---|---|---|---|---|---|
| Port Pic | RD0 | RD1 | RD2 | RD3 | RD4 | RD5 | RD6 | RD7 |
| Broche CF | -CE1 | -CD1 | RESET | -OE | -WE | READY |
|---|---|---|---|---|---|---|
| Port Pic | RA0 | RA1 | RA2 | RA3 | RA4 | RA5 |
J'ai donc réaliser une carte de développement comprenant un PIC18 qui jouera le rôle de cerveau sur la plaque, un connecteur Compact Flash (librairie Eagle dispo ici) bien sûr, un connecteur ICD2 permettant de programmer et de débugguer “IN SITU” (sans avoir à enlever le PIC à chaque fois), et enfin un connecteur DB9 pour la liaison série.
Schéma de principe :
Emplacement des composants :
Le programme pour accéder à la Compact Flash est écrit en C avec le compilateur C18 de Microchip. Voici la liste des prototypes des fonctions :
Un exemple est fourni dans le projet vous permettant de lire une Compact Flash et d'afficher des infos tel que le numéro de série…etc… Le programme attend l'insertion d'une Compact Flash dans le lecteur, une fois la carte insérée, il envoie sur l'UART les infos sur la carte.
Ce programme est fourni sous les termes de la licence GNU General Public License