# Autres langages > Autres langages > VHDL >  Bus I2C en VHDL

## Bartacus

Bonjour  tous,

Je suis actuellement en stage et j'ai comme projet de connecter un capteur d'image  un FPGA.
Pour l'instant je mintresse uniquement  la liaison I2C entre le capteur et le FPGA. 
J'aimerais pour commencer que le capteur me renvoie le numro 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 rsultats.
Je dbute dans le domaine (je viens d'un IUT Mesures Physiques)

Si vous pouviez m'orientez ..  ::): 

Merci  vous, 

bartacus

----------


## mith06

Bonjour,




> J'aimerais pour commencer que le capteur me renvoie le numro de sa version (il existe un registre pour cela) sur un hyperterminal.


hyperterminal => liaison serie => UART=> (gnralement) RS232  => http://fr.wikipedia.org/wiki/RS-232

Commence par crire une UART en VHDL.
Puis une machine dtat qui envoie par exemple les caractres "COUCOU\n" toutes les secondes.

Puis ensuite faudra s'attaquer  l'I2C.

Lien utile http://opencores.org/

Bon courage!

----------


## Bartacus

Merci pour ta rponse.

entre temps j'ai chang de mthode. Le site d'actel (o j'ai eu le FPGA) propose un exemple me permettant de faire clignoter des leds test. Aprs 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 cbl le tout, mais ensuite lorsque je veux grer 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 prsentent sur mon core I2C. Mais le problme c'est que mon bus I2C n'est cbl que sur deux PIN. Donc je ne sais pas quoi faire.

encore merci pour ta rponse

----------


## mith06

> Mais le problme c'est que mon bus I2C n'est cbl que sur deux PIN


C'est normal il n'y a que 2 cble sur un BUS I2C (c'est d'ailleurs sa raison dtre).




> J'ai donc rajouter le core I2C sur la partie "schema", j'ai cbl le tout, mais ensuite lorsque je veux grer 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 prsentent sur mon core I2C


Voir documentation du core I2C que tu utilises...

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

----------


## Bartacus

Oui j'ai regard les pdf correspondant au core I2C mais je n'y ai pas trouv de rponse.

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

----------


## mith06

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


Gnralement on a fichier "TOP" exemple monProjet_top.vhd qui est une entit qui dcrit toutes les PIN que utilise sur ton FPGA, et qui instancie les composants principaux de ton projet exemple contrleur I2C UART etc...

Plus tu as de composant plus tu as de signaux dinterconnexion, moins c'est possible de faire un schma... D'o l'utilit de tout faire en VHDL.

----------


## Bartacus

D'accord, merci de ta rponse.

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 prciser 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 rpondre, je me sent moins seul ^^

----------


## mith06

> J'ai peut etre oubli de prciser que mon FPGA est reli  l'ordi par USB.


Regarde sur ta carte a quoi est reli le Port USB. Je suis prt  parier que derrire 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 contrleur USB crit en VHDL.)

Gnralement 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.

----------


## Bartacus

> Gnralement 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 cre.
Mais je n'ai quand mme pas besoin de coder mon UART pour allumer ma led ^^

----------

