FPGA et USB hôte

T

tesla101

Guest
Salut,Je dois conduire un SL811HS hôte USB Cyprès avec un FPGA.
Mon FPGA est un kit de développement XESS avec une Spartan3 Xilinx, 1M portes.

Mai comme vous le savez, le Cyprès nécessite un bus de données 8 bits et 6 broches pour le contrôle.

J'ai décidé de syntethize tous ces trucs de contrôle avec une machine d'état écrit en VHDL.

Le FPGA conduit très bien les Etats dans le bus mais le cyprès ne répond pas bien.
La première partie de la Cypress est de 256 octets de RAM.Je l'écris de manière asynchrone avec une horloge lente (1Hz afin d'être en mesure de voir l'évolution), mais elle ne répond pas très bien.En lisant ce que j'ai écrit, il répond à ma environ 2-3 bits hasard tort de chaque octet et ainsi de suite ....Quelqu'un a une idée?Toute personne déjà développé les conseils de cyprès?Merci

 
Vos questions est tellement générale qu'il est presque impossible de répondre sans savoir à ce que vous faites, votre fréquence d'horloge, votre chronogramme ou tout type d'informations sur l'interface entre le FPGA et la puce USB.

Si vous regardez la feuille de données pour votre appareil Cypress, à la page 24, vous avez la requirments minimales pour les signaux de quelques critiques.Le premier est la longueur de votre accès WR, elle doit être au moins 65nS, le deuxième problème est la durée de rétention de vos données après CS, vous devez vous tenir signal A0 actif pendant au moins 10 ns et des bus de données pendant au moins 5.En outre, il doit y avoir un minimum de 85nS entre chaque actions CS.

Si votre timing est OK, alors vous devriez regarder dans les données que vous envoyez, mais regardez bien à votre calendrier, si vous avez une bonne osciloscope, connectez-le aux signaux (O2-4 à la fois) et assurez-vous que votre accès ne viole pas le calendrier de la requirments dvicce.

Tenez-nous informés des progrès, j'avais l'intention d'utiliser le dispositif de Cypress dans un de mes projets aussi.

Cordialement,
/ FarhadAjouté après 1 heure 40 minutes:Juste une question que j'ai oublié de demander ici, savez-vous si la puce a une requirments minimales pour les signaux?Pas de puces peut gérer plusieurs signaux très lent comme 1s, essayez d'accéder à un taux plus élevé, quelque chose sur 1MHz et regardez-le avec un osciloscope, si vous en avez un.

BR,
/ Farhad

 
Salut Farhada et tous les développeurs USB,

Un grand merci pour votre intérêt et de réponse rapide.Maintenant, j'ai quelques idées plus claires.
Afin de construire ma plate-forme de développement, j'ai voulu réaliser l'exemple qui est dans la fiche technique de l'Cypress - à savoir l'écriture et de lecture du cycle de RAM.

Comme vous pouvez le voir dans le jpeg joint, mes problèmes de calendrier disparu.Mais le problème réel sont ces petits problèmes sanglante.Je pense que maintenant je suis assez précis pour illustrer mon propos.
J'inclus aussi les fichiers. Vhd code de ma machine d'état.Vous remarquerez qu'il est parfaitement divisé en 3 procédés et c'est sûrement un des objectifs parfaitement synchrone Moore machine d'état.
Ces pépins de cours apparaissent même quand vous n'avez pas connecté le cyprès, il fait partie de la synthèse.Sur la photo, je montre un cycle, mais si je fais ce cycle sans interruption les pépins re-présenter périodiquement au même endroit.

Ma question précise est la suivante: comment puis-je me débarrasser de ces petits problèmes car je n'aurais théoriquement une machine d'état synchrone?
Je précise que mon synthétiseur est le XST Xilinx.J'ai entendu dire que le compilateur Synopys FPGA gère mieux les algorithmes de synthèse ...Espérons que quelqu'un a déjà vu ce phénomène ennuyeux et que mon message dans une bouteille sera de nouveau lu,

Merci d'avance

tesla101
Désolé, mais vous devez vous loguer pour voir cette pièce jointe

 
tesla101 a écrit:Ma question précise est la suivante: comment puis-je me débarrasser de ces petits problèmes car je n'aurais théoriquement une machine d'état synchrone?
 
Salut,
Intéressant problème.J'ai une question à propos de votre code, raison pour laquelle vous avez le code "attendre clk = '1 '" dans un seul processus, et la normale "si clk'event et CLK = '1'" dans l'autre?

Le problème avec pépins commong est un problème avec ces machines du type d'État.Je suis d'accord avec ACE-X que vous devez supprimer le "attendre" de votre processus et en faire un processus combinatoire pure.

Si tu veut toujours faire des choses »a réussi un temps", vous pouvez combiner la LO et NSL processus à un processus.De cette façon vous vous rendre la vie plus facile à comprendre le code ainsi que plus facile à manipuler.Mais certaines sociétés ne permettent pas ce genre de style de codage.

Hope it helps,

BR,
/ Farhad

 
Bonjour à tous les développeurs USB, Farhada et l'As-X!

A la fin, je me suis débarrassé de ces exceptions par deux raisons:

d'abord, j'ai réalisé que les changements dans mon code VHDL comme vous m'avez donné des morceaux de conseils et à la fin j'ai changé un peu le processus combinatoire de telle sorte que les résultats soient enregistrés à la dernière.

d'autre part, quelque chose que je ne suis pas sûr que vous croyez, mon oscilloscope est un HP 54645D et comme chaque analyseur logique, il dispose d'un pod, bien que tout est normal.Mais!Un fil de mon pod est endommagé, tellement endommagé que quand il fait signal, il perturbe tous les autres bits.Je ne plaisante pas, la moitié des pépins sur la photo je l'ai déjà posté est généré par ce fil mauvais.Incroyable.Maintenant, j'ai un bon modèle de machine d'état enregistré, si quelqu'un veut de l'aide ou le modèle d'ensemble, s'il vous plaît contactez-moi.

Yours,Tesla101

 
Pour Tesla

Je envoyer le PM à vous et j'espère que vous pourrez me répondre dès que possible.

Merci

 
HI Tesla,
Glad-vous trouvé votre problème, intéressant, je n'ai jamais pensé à la question du câble!Même la pensée que je passe une semaine à la recherche d'un petit problème ghoast qui n'y était pas moi-même.

BR,
/ Farhad

 

Welcome to EDABoard.com

Sponsor

Back
Top