Table des matières:

Conception du Master I2C en VHDL : 5 étapes
Conception du Master I2C en VHDL : 5 étapes

Vidéo: Conception du Master I2C en VHDL : 5 étapes

Vidéo: Conception du Master I2C en VHDL : 5 étapes
Vidéo: TUTORIEL #9: pH-mètre Arduino -DIY || Arduino IDE. 2024, Juillet
Anonim
Conception du Master I2C en VHDL
Conception du Master I2C en VHDL

Dans ce instructable, la conception d'un simple maître I2C en VHDL est discutée.

REMARQUE: cliquez sur chaque image pour voir l'image complète

Étape 1: Présentation du bus I2C

• Signifie Inter Circuit Intégré.

•Synchrone, Half duplex.

•Interface à deux fils - SDA et SCL.

• SDA - Ligne de données série contrôlée par le maître et l'esclave

• SCL – Horloge série générée par le maître

• Protocole multi-maître, multi-esclave.

•Deux modes - 100 kbits/sec et 400 kbits/sec: lent et rapide.

Étape 2: Conception RTL en VHDL

Spécifications de conception de notre maître I2C

  • Trame de données 8 bits.
  • Commande unidirectionnelle SCL uniquement.
  • Adresse esclave 7 bits.
  • Prend en charge les modes lent et rapide.
  • Maître unique, multi-esclaves.
  • Conforme aux spécifications I2C d'origine de Philips.

Le code RTL pur est utilisé. Ainsi, l'IP est facilement portable sur tous les FPGA. La conception compacte basée sur FSM utilisant une horloge générée en interne garantit une surface et des performances optimales.

Étape 3: Simulation et test

Environnement de test

  • Simulation et test fonctionnels à l'aide d'une IP esclave I2C tierce.
  • Synthétisé à l'aide de l'ensemble d'outils Xilinx Vivado.
  • Implémenté et testé sur la carte FPGA Artix-7.
  • Conception vérifiée de synchronisation pour 100 MHz.
  • Formes d'onde testées sur DSO/CRO.
  • Communication testée avec succès avec Arduino UNO en tant qu'esclave I2C.

Étape 4: Remarques importantes

  • Lors du test du maître à l'aide de l'IP esclave I2C, configurez le code esclave selon vos besoins. Vous souhaiterez peut-être modifier la fréquence d'horloge par défaut et l'adresse de l'esclave. La fréquence d'horloge doit également être configurée dans le code maître.
  • Lors des tests embarqués, n'oubliez pas les résistances de rappel car la ligne SDA est une sortie de drain commune !!! Vérifiez sur google la résistance de rappel recommandée pour différentes vitesses i2c. J'ai utilisé 2,2K pour 100 kHz.
  • Si vous n'utilisez pas de banc d'essai et que vous simulez le maître indépendamment, simulez soigneusement le signal SDA, car il s'agit d'un signal bidirectionnel (entrée-sortie). Il a deux pilotes, côté maître et côté esclave. Vous devez savoir quand « forcer » et quand « déforcer ».
  • SCL est une ligne unidirectionnelle. Pas besoin de traction.
  • Veuillez consulter attentivement la documentation IP.

Étape 5: Fichiers joints

  • Tous les codes RTL de I2C Master.
  • Banc de test, codes I2C Slave également, pour les tests.
  • Documentation IP.

Pour toute question, n'hésitez pas à me contacter:

Mitu Raj

suivez-moi:

Pour toute question, contactez: [email protected]

Conseillé: