DigitalSpirit / Blog

Carte de développement pour SD / TransFlash à base de PIC

La carte de développement
Voici une carte permettant d'interfacer une SD (ou encore une microSD à l'aide d'un adaptateur: voir photo plus bas), ces caractéristiques sont les suivantes :
  • Basé autour d'un PIC 18F4610 de Microchip
  • Connectivité RS232, ICD2
  • 4 entrées analogique et un potentiomètre
  • 3 boutons
  • 4 leds pour le debug
  • 1 Quartz supplémentaire permettant d'avoir une horloge indépendante de celle du PIC
Liens :
  • La page du projet : PicSD
  • Un drivers FAT 16 sera disponible et permettra de s'interfacer avec la SD de la même manière qu'avec la Compact Flash : fatonpic, PicCompactFlash
Photos de 2 SD et une microSD (transflash) et son adaptateur vers SD
Ouvrir l'article

PIC24F et PIC24H

Electronique 10 octobre 2005 par hugo
Microchip à annoncé officiellement le lundi 10 octobre le lancement de 2 nouvelles familles de produits dans sa gamme, la série des dsPIC33 et des PIC24, dans cette page, nous allons nous intéresser à ces derniers. L'annonce de Microchip porte sur sa première famille de PIC 16bits "construite sur le succès de l'architecture numéro un mondial des micro controleur 8bits" ("Builds on Success of World?s #1 8-bit MCU Architecture").

La famille des PIC24 est divisée en 2 :
  • PIC24F
    • 16 MIPS, faible coût
  • PIC24H
    • 40 MIPS
    • DMA (Direct Memory Access), jusqu'a 8 canaux
Plus d'infos : Voici un résumé des caractéristiques communes que l'ont peut retrouver dans ces 2 gammes :

CPU :
  • 16 * 16bits regitres de travail (Working Register Array)
  • Multiplication 17bits * 17bits en un cyle
  • Division 32bits sur 16bits en un cycle
  • Jeu d'instruction optimisé pour la compilation de programme en C :
    • 76 instructions de base (déclinable en beaucoup plus)
    • Mode d'adressage flexible
  • Oscillateurs :
    • Interne de 8Mhz (FRC) et de 31kHz (LPRC)
    • PLL x4 pour sources internes ou externes
    • Sélection de la source d'oscillation CPU par logiciel
    • Postdiviseur d'oscillation CPU controlable par logiciel (réduction de la consommation)
    • Surveillance de la source d'oscillation (Fail-Safe Clock Monitor : FSCM)
  • Mémoire programme linéaire permettant d'accéder jusqu'à 12Mo
  • Mémoire de données (RAM) permettant d'adresser jusqu'à 64Ko
Général :
  • Tension d'alimentation comprise entre 2.0V et 3.6V
  • Interface JTAG permettant entre autre la programmation
Périphériques embarqués :
  • 2 modules 3-wire/4-wire SPI
  • 2 modules I²C
  • 2 modules UART :
    • RS-232, RS-485, LIN 1.2
    • Support IrDA externe ou interne
    • Auto-Wake-Up àa la réception d'un bit de Start
    • Auto-Baud detect
    • Pile FIFO à 4 niveaux
  • Port parallèle Maitre / Esclave (PMP/PSP)
    • 8bits ou 16bits de données
    • 16bits d'adresses
  • Horloge temps réél (Hardware Real-Time Clocl/Calendar : RTCC)
    • Heures, minutes, secondes, années, mois, jours avec alarme paramétrable
  • Génération de CRC
Ouvrir l'article

PIC24 et dsPIC33

Electronique 05 octobre 2005 par hugo
Microchip devrait annoncer d'ici le 10 octobre deux nouvelles familles de produits dans sa gamme :
  • PIC24F : Un micro contrôleur 16bits, en fait, un dsPIC sans le coeur DSP, il sera à priori disponible en boitier de 18 à 100 broches (certaine version posséderont un controleur DMA et IrDA), cette famille sera le nouveau "High End" de la gamme PIC
  • dsPIC33F : Un DSP carburant à 40MIPS, il sera aussi le nouveau "High End" de la gamme dsPIC (jusqu'à 6 controleurs DMA embarqués)

Notons dans les 2 cas l'intégration d'un port JTAG, excellente nouvelle, enfin ! Nous verrons aussi des PIC18 avec contrôleur Ethernet (ENC28J60) embarqué...

La production devrait commencer en janvier 2006 mais des programme de bêta test sont lancés.
Pas plus d'infos pour le moment, Microchip réserve, on peut le comprendre, l'effet de surprise !

Pour en savoir un peu plus : Microchip, 2005 product selector guide
Ouvrir l'article

FatOnPic - Gestion de la FAT16 avec un PIC18

Je met à disposition depuis ce matin sous license GNU GPL les sources qui permettent d'accéder à des fichiers stockés sur une Compact Flash (bientôt SD) formaté en FAT16.

Voici une courte description :

  • Proche du standard dans les fonctions d'interface (fopen, fread, fclose, fwrite...)
  • Occupe peu de mémoire (actuellement, 8ko de mémoire programme, et 472 octets de Ram)
  • Nombre illimité de fichiers ouverts à un instant T (limité uniquement par la ram), chaque fichier ouvert occupe 17 octets
  • Système de cache optimisant la lecture des clusters de fichiers
  • Gestion des longues arborescence de répertoire
  • Compiler avec C18

La version fournie actuellement est uniquement en lecture seule, je débuggue en ce moment la version en écriture.
Bien sûr, j'attends avec plaisir les retours des utilisateurs.

Les liens :

Ouvrir l'article

Un suiveur de lumière à base de PIC10F

J'ai réalisé un p'tit montage tout simple, didactique avec 2 photodiodes, un servo et... un PIC10F qui permet de suivre une source de lumière placée à proximité de ses capteurs.

La réalisation hardware et software est expliquée sur le wiki par ici : SuiveurLumiere

Suiveur de lumière à base de Pic et servo Vu du servo équipé de ses 2 capteurs de lumière


Suiveur de lumière à base de Pic et servo from hugo on Vimeo.
Ouvrir l'article

Pilote Compact Flash pour PIC

Pour les besoins de mon projet de gestion de FAT16 sur PIC (je devrais fournir les sources et les infos dessus d'ici très peu de temps), j'ai du écrire un pilote pour gérer les Compact Flash.

J'ai créé un projet test disponible au téléchargement permettant de comprendre comment le système fonctionne.

Les sources sont bien sûr disponible sous les termes de la GNU General Public License

Le projet : PicCompactFlash
Voici la liste des prototypes des fonctions :
  • void cf_delay(void); Permet d'introduire un délai dans les opérations nécessitant une tempo précise
  • void cf_init_host(void); Avant d'accéder à toute autre fonction CF, il est indispensable d'appeler celle ci, elle s'occupe de configurer les ports correctement
  • unsigned char cf_detect(void); Renvoie 0 si aucune carte n'est insérée
  • void cf_write_reg(unsigned char reg, char data); Ecrit une commande data dans le registre reg
  • unsigned char cf_read_reg(unsigned char reg); Lit le registre reg
  • void cf_write(char); Ecrit un octet
  • unsigned char cf_read8(); Lit un octet
  • unsigned int cf_read16(); Lit un mot (2 octets)
  • unsigned char cf_valid(void); Renvoie CF_OK si la signature correspond bien à une Compact Flash
  • unsigned char cf_identify(IdentifyDevice *); Rempli la structure passée en paramètre et permet d'obtenir des infos sur la carte
  • void cf_reset(void); Effectue un Reset de la carte
  • void cf_enable(void); Sélectionne la carte
  • unsigned char cf_cmd_diagnostic(void); Exécute une commande de diagnostique et retourne le code erreur correspondant à l'état de la carte
  • unsigned char cf_check_ready(void); Teste si la carte est prête (hard)
  • void cf_skip8(unsigned char); Saute un octet
  • void cf_set_position(unsigned long, unsigned char); Spécifie une adresse
  • unsigned char cf_is_busy(void); Renvoie si la carte est occupé
  • unsigned char cf_is_ready(void); Renvoie si la carte est prête (logiciel)
Ouvrir l'article