Table des matières:
- Étape 1: Présentation du bus I2C
- Étape 2: Conception RTL en VHDL
- Étape 3: Simulation et test
- Étape 4: Remarques importantes
- Étape 5: Fichiers joints
Vidéo: Conception du Master I2C en VHDL : 5 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
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é:
Conception d'un contrôleur de cache associatif simple à quatre voies en VHDL : 4 étapes
Conception d'un contrôleur de cache associatif simple à quatre voies en VHDL : dans mon précédent instructable, nous avons vu comment concevoir un contrôleur de cache mappé direct simple. Cette fois, nous avançons d'un pas. Nous allons concevoir un simple contrôleur de cache associatif à quatre voies. Avantage ? Moins de ratés, mais au prix de perfo
Conception d'un contrôleur d'interruption programmable en VHDL : 4 étapes
Conception d'un contrôleur d'interruption programmable en VHDL : je suis submergé par le type de réponses que je reçois dans ce blog. Merci les gars de visiter mon blog et de me motiver à partager mes connaissances avec vous. Cette fois, je vais présenter la conception d'un autre module intéressant que nous voyons dans tous les SOC -- Interrupt C
Conception d'un contrôleur de cache simple en VHDL : 4 étapes
Conception d'un contrôleur de cache simple en VHDL : j'écris cette instructable, car j'ai trouvé un peu difficile d'obtenir du code VHDL de référence pour apprendre et commencer à concevoir un contrôleur de cache. J'ai donc conçu moi-même un contrôleur de cache à partir de zéro et l'ai testé avec succès sur FPGA. J'ai p
Conception d'un contrôleur VGA simple en VHDL et Verilog : 5 étapes
Conception d'un contrôleur VGA simple en VHDL et Verilog : dans cette instructable, nous allons concevoir un contrôleur VGA simple en RTL. Le contrôleur VGA est le circuit numérique conçu pour piloter les écrans VGA. Il lit à partir de Frame Buffer (VGA Memory) qui représente la trame à afficher, et génère nece
Conception de SPI Master en VHDL : 6 étapes
Conception de SPI Master en VHDL : dans cette instructable, nous allons concevoir un SPI Bus Master à partir de zéro en VHDL