Ceci est une ancienne révision du document !
Papilio Duo
Troubleshooting
L'AVR s'arrête 2 secondes après que j'aie appuyé sur le bouton reset :
Ne pas oublier que le FPGA doit driver ARD_RESET à 1 pour que l'AVR reste allumé !
J'essaye de faire de l'I2C depuis l'AVR mais dès que le FPGA démarre, l'I2C cesse de marcher
Essayer de programmer le FPGA avec les ports 7 et 8 en inout, assignés à 1'bZ (haute impédance). Sinon le FPGA drive les ports LOW.
Comment communiquer entre l'AVR et le FPGA ?
Le plus simple que j'ai trouvé est un protocole série sur deux pins communs. Malheureusement, j'ai l'impression que l'AVR ne supporte pas le SoftwareSerial par défaut. J'ai donc utilisé une version minimaliste de SoftwareSerial (https://code.google.com/p/arduino/source/browse/trunk/libraries/?r=1119)
Coté FPGA, j'ai utilisé le “RS-232 RX and TX module” de fpga4fun.com
Ca marche plutot bien à 9600 baud, mais pas trop au-delà (sans doute à cause du soft serial de l'Arduino)
Comment utiliser la SRAM ?
La datasheet est ici : http://www.issi.com/WW/pdf/61-64WV5128Axx-Bxx.pdf
Ouhlà, il n'y a pas plus simple ? Non.
Bouhou il n'y a rien qui marche : le fpga fait des trucs complètement aléatoires, je n'arrive même plus à faire blinker la led 13 !
Vérifier que le fichier de contraintes .ucf est bien lié au module courant dans ISE. Pour le déplacer dans la hiérarchie : * Project → manual compile order * Clic droit-propriétés sur le .ucf et changer le “module association” * Décocher Project → manual compile order
Le FPGA n'arrive pas à contrôler les pins !
* Vérifier que le .ucf est bien associé au module courant * Enlever toute charge du pin. Le drive est très faible, s'il y a besoin de résistance de PULLUP, utiliser au moins 100KOhm (je pense)
Je n'arrive pas à flasher l'AVR depuis DesignLab
J'ai eu ce problème. Workaround : sélectionner le port FPGA et utiliser AVR- No USB - ISP. Cela permet d'utiliser le FPGA comme programmateur au lieu de passer par le cable de l'AVR
Comment parler en serial depuis le FPGA via le cable ?
Je n'ai pas réussi à le faire… Les pins TX/RX (1/0) ne communiquent pas directement avec l'USB mais passent par une puce cheloue…
Par contre, ça marche très bien avec le cable FTDI en utilisant le module “RS-232 RX and TX module” de fpga4fun.com On peut aussi parler à l'AVR en serial puis le laisser répéter via le cable serial “normal” (le cable microusb)
L'avantage est qu'il n'y a pas besoin de cable supplémentaire (FTDI), par contre ça limite le baudrate à 9600 et c'est plus lourd à mettre en place (et ça monopolise quasiment l'AVR)