IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VHDL Discussion :

Bus I2C en VHDL


Sujet :

VHDL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Bus I2C en VHDL
    Bonjour à tous,

    Je suis actuellement en stage et j'ai comme projet de connecter un capteur d'image à un FPGA.
    Pour l'instant je m’intéresse uniquement à la liaison I2C entre le capteur et le FPGA.
    J'aimerais pour commencer que le capteur me renvoie le numéro de sa version (il existe un registre pour cela) sur un hyperterminal.

    J'utilise pour cela le logiciel Libero IDE et écrit en VHDL.
    J'ai trouvé plusieurs exemples sur internet mais je ne parvient pas à obtenir de résultats.
    Je débute dans le domaine (je viens d'un IUT Mesures Physiques)

    Si vous pouviez m'orientez ..

    Merci à vous,

    bartacus

  2. #2
    Membre expérimenté

    Homme Profil pro
    Collégien
    Inscrit en
    Juillet 2010
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Juillet 2010
    Messages : 545
    Points : 1 429
    Points
    1 429
    Par défaut
    Bonjour,

    J'aimerais pour commencer que le capteur me renvoie le numéro de sa version (il existe un registre pour cela) sur un hyperterminal.
    hyperterminal => liaison serie => UART=> (généralement) RS232 => http://fr.wikipedia.org/wiki/RS-232

    Commence par écrire une UART en VHDL.
    Puis une machine d’état qui envoie par exemple les caractères "COUCOU\n" toutes les secondes.

    Puis ensuite faudra s'attaquer à l'I2C.

    Lien utile http://opencores.org/

    Bon courage!

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta réponse.

    entre temps j'ai changé de méthode. Le site d'actel (où j'ai eu le FPGA) propose un exemple me permettant de faire clignoter des leds test. Après avoir fait marché ces leds je me suis dis que je pourrais essayer de rajouter la liaison I2C à cet exemple.

    J'ai donc rajouter le core I2C sur la partie "schema", j'ai câblé le tout, mais ensuite lorsque je veux gérer mes IO je constate qu'il y a 4 IO pour le bus I2C: SDAI, SDAO, SCLI, et SCLO, se qui correspond en fait aux liaisons présentent sur mon core I2C. Mais le problème c'est que mon bus I2C n'est câblé que sur deux PIN. Donc je ne sais pas quoi faire.

    encore merci pour ta réponse

  4. #4
    Membre expérimenté

    Homme Profil pro
    Collégien
    Inscrit en
    Juillet 2010
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Juillet 2010
    Messages : 545
    Points : 1 429
    Points
    1 429
    Par défaut
    Mais le problème c'est que mon bus I2C n'est câblé que sur deux PIN
    C'est normal il n'y a que 2 câble sur un BUS I2C (c'est d'ailleurs sa raison d’être).

    J'ai donc rajouter le core I2C sur la partie "schema", j'ai câblé le tout, mais ensuite lorsque je veux gérer mes IO je constate qu'il y a 4 IO pour le bus I2C: SDAI, SDAO, SCLI, et SCLO, se qui correspond en fait aux liaisons présentent sur mon core I2C
    Voir documentation du core I2C que tu utilises...

    Utiliser les "shemas" est une bonne idée pour faire de la conception, mais tu verras que c'est une mauvaise idée quand il faut implémenter le tout...
    Essai de tout faire en VHDL.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Oui j'ai regardé les pdf correspondant au core I2C mais je n'y ai pas trouvé de réponse.

    Je vais essayé de faire comme tu as dis. Un fichier vhdl pour le I2C et un pour la liaison UART suffira ?

    EDIT: le fait d'utiliser le schema m'évite de coder. Mais c'est vrai que partir d'un schema vierge c'est pas évidant

  6. #6
    Membre expérimenté

    Homme Profil pro
    Collégien
    Inscrit en
    Juillet 2010
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Juillet 2010
    Messages : 545
    Points : 1 429
    Points
    1 429
    Par défaut
    Je vais essayé de faire comme tu as dis. Un fichier vhdl pour le I2C et un pour la liaison UART suffira ?
    Généralement on a fichier "TOP" exemple monProjet_top.vhd qui est une entité qui décrit toutes les PIN que utilise sur ton FPGA, et qui instancie les composants principaux de ton projet exemple contrôleur I2C UART etc...

    Plus tu as de composant plus tu as de signaux d’interconnexion, moins c'est possible de faire un schéma... D'où l'utilité de tout faire en VHDL.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    D'accord, merci de ta réponse.

    Par contre je viens de coder quelques lignes en VHDL pour faire clignoter les leds "tests" du FPGA, sa a marché et je n'ai pas eu besoin de coder d'UART. J'ai peut etre oublié de préciser que mon FPGA est relié à l'ordi par USB.
    Tu voulais peut etre dire que l'UART n'était utile que si on utilisé un hyperterminal ?

    En tout cas merci de prendre le temps de me répondre, je me sent moins seul ^^

  8. #8
    Membre expérimenté

    Homme Profil pro
    Collégien
    Inscrit en
    Juillet 2010
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Juillet 2010
    Messages : 545
    Points : 1 429
    Points
    1 429
    Par défaut
    J'ai peut etre oublié de préciser que mon FPGA est relié à l'ordi par USB.
    Regarde sur ta carte a quoi est relié le Port USB. Je suis prêt à parier que derrière le port il y a un composant FTDI qui transforme directement les signaux USB en signal de type RS232. Si ce n'est pas le cas et que l'USB attaque directement le PIN du FPGA, tu peux commencer à pleurer...(ca veut dire qu'il te faut un contrôleur USB écrit en VHDL.)

    Généralement tu installes les drivers du composant FTDI sur ton PC, et quand tu branche l'USB ca fait apparaitre un port com virtuel que tu peux ouvrir avec un hyper terminal.

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par mith06 Voir le message
    Généralement tu installes les drivers du composant FTDI sur ton PC, et quand tu branche l'USB ca fait apparaitre un port com virtuel que tu peux ouvrir avec un hyper terminal.
    Oui c'est se qu'il se passe, j'ai un port "COM5" qui se crée.
    Mais je n'ai quand même pas besoin de coder mon UART pour allumer ma led ^^

Discussions similaires

  1. Clavier matriciel via bus I2C
    Par chibi95 dans le forum Général Java
    Réponses: 0
    Dernier message: 13/05/2009, 11h07
  2. bus I2C avec compilateur c de CCS
    Par damousino dans le forum C
    Réponses: 3
    Dernier message: 23/02/2009, 19h14
  3. Bus I2C entre Zigbee et PCF8575
    Par seicom2008 dans le forum C
    Réponses: 0
    Dernier message: 01/02/2008, 11h52
  4. Creer un bus I2c en C++
    Par ToMs dans le forum C++
    Réponses: 3
    Dernier message: 28/03/2006, 17h10
  5. acceder au bus i2c avec visual c++
    Par ledaker dans le forum MFC
    Réponses: 1
    Dernier message: 06/03/2006, 10h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo