programmation du CPLD avec un ByteBlaster ?
-
- Posts: 17
- Joined: Mon Dec 03, 2007 10:01 am
programmation du CPLD avec un ByteBlaster ?
bonjour,
pour pouvoir programmer mon HxC, j'ai commencé par réaliser un ByteBlaster afin de pouvoir programmer le CPLD. J'ai donc suivi le schéma suivant : http://www.positron-libre.com/electroni ... e-jtag.htm
qui présente l'intérêt de fournir un bô typon tout propre
Je dispose maintenant d'un maginfique programmteur ByteBlaster, avec un connecteur HE10 sur lequel je peux récupérer les signaux TCK, TDO, TMS, TDI.
Bien. Et maintenant, j'en fais quoi de ces signaux ??? sur quels pin du CPLD dois-je brancher quel signal du ByteBlaster ?
Pour la programmtation du CPLD, faut-il alimenter l'interface HxC en connectant une alimentation sur le connecteur USB, ou ne faut-il rien brancher d'autre que la sonde ByteBlaster ?
Une dernière question, qui n'a rien à voir : Le projet est en GPL, aussi les sources du CPLD sont fournits, tout comme els schémas. Par contre, on n'a ni fichier Gerber, et surtout, je n'ai pas trouvé les sources du software coté PC ? serait-il possible de les avoir ? J'aimerais assez en faire un portage sous Linux
pour pouvoir programmer mon HxC, j'ai commencé par réaliser un ByteBlaster afin de pouvoir programmer le CPLD. J'ai donc suivi le schéma suivant : http://www.positron-libre.com/electroni ... e-jtag.htm
qui présente l'intérêt de fournir un bô typon tout propre
Je dispose maintenant d'un maginfique programmteur ByteBlaster, avec un connecteur HE10 sur lequel je peux récupérer les signaux TCK, TDO, TMS, TDI.
Bien. Et maintenant, j'en fais quoi de ces signaux ??? sur quels pin du CPLD dois-je brancher quel signal du ByteBlaster ?
Pour la programmtation du CPLD, faut-il alimenter l'interface HxC en connectant une alimentation sur le connecteur USB, ou ne faut-il rien brancher d'autre que la sonde ByteBlaster ?
Une dernière question, qui n'a rien à voir : Le projet est en GPL, aussi les sources du CPLD sont fournits, tout comme els schémas. Par contre, on n'a ni fichier Gerber, et surtout, je n'ai pas trouvé les sources du software coté PC ? serait-il possible de les avoir ? J'aimerais assez en faire un portage sous Linux
-
- Posts: 17
- Joined: Mon Dec 03, 2007 10:01 am
Re: programmation du CPLD avec un ByteBlaster ?
Je me réponds à moi-même...
J'ai achevé ce soir le montage de la carte HxC, voici quelques photos :
Et j'en suis donc à la programmation du CPLD, et là ca se gâte :
- j'ai installé quartus 2 web edition, je me suis enregistré sur leur site, et j'ai validé ma license sur mon péssé,
- j'ai installé le driver byteblaster, le service système est bien installé et tourne bien
Dans le menu "programmer" de Quartus 2, lorsque je clique sur "auto detect" il me répond "unable to scan device chain? Can't scan JTAG chain"
Ensuite, si je charge le fichier .pof et que je tente de flasher le CPLD, voila ce que Quartus me répond :
voici comment j'ai connecté la sonde JTAG :
4 -> VCC
2, 10 -> GND
1 -> 62 du CPLD
3 -> 71 du CPLD
5 -> 23 du CPLD
9 -> 14 du CPLD
La bonne nouvelle, c'est que la partie USB a été tout de suite reconnue au 1er branchement Reste plus qu'à programmer ce satané CPLD, et toute aide sera la bienvenue !
J'ai achevé ce soir le montage de la carte HxC, voici quelques photos :
Et j'en suis donc à la programmation du CPLD, et là ca se gâte :
- j'ai installé quartus 2 web edition, je me suis enregistré sur leur site, et j'ai validé ma license sur mon péssé,
- j'ai installé le driver byteblaster, le service système est bien installé et tourne bien
Dans le menu "programmer" de Quartus 2, lorsque je clique sur "auto detect" il me répond "unable to scan device chain? Can't scan JTAG chain"
Ensuite, si je charge le fichier .pof et que je tente de flasher le CPLD, voila ce que Quartus me répond :
Code: Select all
Info: Started Programmer operation at Tue Dec 18 00:24:47 2007
Info: Unrecognized device
Error: JTAG ID code specified in JEDEC STAPL Format File does not match any valid JTAG ID codes for device
Error: Operation failed
Info: Ended Programmer operation at Tue Dec 18 00:24:48 2007
4 -> VCC
2, 10 -> GND
1 -> 62 du CPLD
3 -> 71 du CPLD
5 -> 23 du CPLD
9 -> 14 du CPLD
La bonne nouvelle, c'est que la partie USB a été tout de suite reconnue au 1er branchement Reste plus qu'à programmer ce satané CPLD, et toute aide sera la bienvenue !
-
- Posts: 17
- Joined: Mon Dec 03, 2007 10:01 am
Re: programmation du CPLD avec un ByteBlaster ?
Je me réponds à moi-même... une fois de plus !
Bref, mon interface est maintenant fonctionnelle, je viens de la tester sur mon Amiga 1200
Allez, demain je teste avec le CPC )
Jeff : un grand merci !
En fait, je me suis trompé en repérant la broche 71 sur le support PLCC... Forcément, une fois cette erreur corrigé, la sonde ByteBlaster a beaucoup mieux fonctionné !voici comment j'ai connecté la sonde JTAG :
4 -> VCC
2, 10 -> GND
1 -> 62 du CPLD
3 -> 71 du CPLD
5 -> 23 du CPLD
9 -> 14 du CPLD
Bref, mon interface est maintenant fonctionnelle, je viens de la tester sur mon Amiga 1200
Allez, demain je teste avec le CPC )
Jeff : un grand merci !
Re: programmation du CPLD avec un ByteBlaster ?
excellent !
un grand merci a toi pour avoir testé l'interface sur Amiga 1200!
un grand merci a toi pour avoir testé l'interface sur Amiga 1200!
Re: programmation du CPLD avec un ByteBlaster ?
et désolé de ne t'avoir pas répondu plus tôt, je n'étais pas présent sur le forum ces derniers temps.
-
- Posts: 17
- Joined: Mon Dec 03, 2007 10:01 am
Re: programmation du CPLD avec un ByteBlaster ?
Parce que tu doutais que ca fonctionne avec ???Jeff wrote:excellent !
un grand merci a toi pour avoir testé l'interface sur Amiga 1200!
En revanche, j'ai testé quelques disques au format ipf, et certains ne sont pas passés... Je ne sais pas si ce sont les ipfs qui sont foireux, ou un bug de l'émulateur...
Il y a moyen d'avoir des logs pour diagnostiquer un problème ?
Au fait, tu n'as pas répondu à ma demande de sources pour le soft de pilotage : veux-tu bien les rendre disponibles ? (PS: j'aime beaucoup ton menu "about"
Par contre, un truc qui aurait été cool, c'est que l'émulateur puisse emuler plusieurs lecteurs de disquettes en même temps : ca eviterait des message du genre "insert disk X" pour les softs qui tiennent sur plusieurs disques !
Je suppose qu'au niveau hardware c'est possible, puisque les signaux DSx sont gérés. il suffirait peut-être de simplement remanier un peu le soft ?
A moins que la gestion des pages mémoire sur le CPLD pose problème ?
-
- Posts: 17
- Joined: Mon Dec 03, 2007 10:01 am
Re: programmation du CPLD avec un ByteBlaster ?
aucun problème, l'essentiel etant que je m'en sois sortiJeff wrote:et désolé de ne t'avoir pas répondu plus tôt, je n'étais pas présent sur le forum ces derniers temps.
Et puis, encore merci pour ce supet projet !
Re: programmation du CPLD avec un ByteBlaster ?
non , mais ça n'avait jamais été testé sur Amiga 1200!Parce que tu doutais que ça fonctionne avec ???
Pour les ipf il y a plusieurs truc a savoir:En revanche, j'ai testé quelques disques au format ipf, et certains ne sont pas
passés... Je ne sais pas si ce sont les ipfs qui sont foireux, ou un bug de
l'émulateur...
Il y a moyen d'avoir des logs pour diagnostiquer un problème ?
l'interface n'émule les disquettes en bitrate constant uniquement. Ceci signifie que les jeux utilisant des protections basé sur les variations de densité de bit on de forte chance de ne pas démarré.
Ceci dit je suis aussi tombé sur des images qui posent problèmes et qui ne semblaient pas utiliser de bitrate variable (comme prince of persia). Il y a donc probablement un bug a ce niveau là, que je dois investiguer.
De plus Il faudrait effectivement que je mette un message de warning lors d'un chargement d'une image a bitrate variable.
Oui c'est prévu. en fait je suis en train (a petit pas) de restructurer et de réécrire le soft pour facilité le portage. Tant que ce travail ne sera pas terminéAu fait, tu n'as pas répondu à ma demande de sources pour le soft de pilotage :
veux-tu bien les rendre disponibles ? (PS: j'aime beaucoup ton menu "about"
je ne pense pas que les sources soient utiles a quelqu'un d'autre. Patience c'est pour bientôt
En fait le problème se situe plutôt coté cpld et gestion position tête de lecture:Par contre, un truc qui aurait été cool, c'est que l'émulateur puisse émuler
plusieurs lecteurs de disquettes en même temps : ça éviterait des message du genre
"insert disk X" pour les softs qui tiennent sur plusieurs disques !
Je suppose qu'au niveau hardware c'est possible, puisque les signaux DSx sont gérés. il suffirait peut-être de simplement remanier un peu le soft ?
A moins que la gestion des pages mémoire sur le CPLD pose problème ?
A l'heure actuelle c'est le cpld qui gère la position de de la tête de lecture et le signal associé track00. La position de la tête de lecture est simplement stocké dans un registre 7 bits dans le CPLD. Sa valeur est envoyé régulièrement au pc pour demander un nouveau paquet.
Pour pouvoir gérer plusieurs 2 lecteurs il "suffirait" de rajouter un autre registre pour contenir la position de la tête du deuxième lecteur mais malheureusement le cpld MAX7128 est déjà saturé (~127 macrocell/128).
L'autre piste serait de donner la gestion de la position au pc, en envoyant à celui-ci uniquement un déplacement relatif (un peu comme la gestion de déplacement d'une souris), et non plus la position absolue. mais avec ce système, la gestion du signal Track00 pose problème : ce signal est censé tomber a 0 lorsque la tête de lecture de se trouve en position 0. La latence de l'usb fait que gérer ce signal a partir du pc me semble difficile.
Solution de facilité : on peut aussi imaginer une modification de l'ihm pour pouvoir changer de disquette de façon rapide.
voila
jf
-
- Posts: 17
- Joined: Mon Dec 03, 2007 10:01 am
Re: programmation du CPLD avec un ByteBlaster ?
ca c'est con y'a aucune possibilité d'optimisation de ce coté je suppose ?Jeff wrote: En fait le problème se situe plutôt coté cpld et gestion position tête de lecture:
A l'heure actuelle c'est le cpld qui gère la position de de la tête de lecture et le signal associé track00. La position de la tête de lecture est simplement stocké dans un registre 7 bits dans le CPLD. Sa valeur est envoyé régulièrement au pc pour demander un nouveau paquet.
Pour pouvoir gérer plusieurs 2 lecteurs il "suffirait" de rajouter un autre registre pour contenir la position de la tête du deuxième lecteur mais malheureusement le cpld MAX7128 est déjà saturé (~127 macrocell/128).
le VHDL m'est totalement etranger, mais je suppose que c'est Quartus qui fait sa soupe pour remplir les macrocells et qu'on ne peut pas y faire grand chose ?
tu peux peut-être envisager à ce moment là un hack sur le hardware, un rajoutant un compteur multiplexé externe ?L'autre piste serait de donner la gestion de la position au pc, en envoyant à celui-ci uniquement un déplacement relatif (un peu comme la gestion de déplacement d'une souris), et non plus la position absolue. mais avec ce système, la gestion du signal Track00 pose problème : ce signal est censé tomber a 0 lorsque la tête de lecture de se trouve en position 0. La latence de l'usb fait que gérer ce signal a partir du pc me semble difficile.
oui, c'est aussi une possibilité : un truc très graphique où l'on préchargerait plusieurs images que l'on pourrait "swapper" d'un simple clic ! ca serait déjà pas mal effectivement !Solution de facilité : on peut aussi imaginer une modification de l'ihm pour pouvoir changer de disquette de façon rapide.
Re: programmation du CPLD avec un ByteBlaster ?
oui c'est grosso modo ça, mais les optimisations peuvent éventuellement se faire en restructurant l'archi du cpld. ceci dit il me semble difficile d'ajouter un deuxième compteur. Sur cpld 1 bit d'un registre = 1 macrocell. le cpld max7000 est de nos jour un petit cpld.ca c'est con y'a aucune possibilité d'optimisation de ce coté je suppose ?
le VHDL m'est totalement etranger, mais je suppose que c'est Quartus qui fait sa soupe pour remplir les macrocells et qu'on ne peut pas y faire grand chose ?
On peut imaginer autre chose : garder un seul compteur pour les deux lecteur. Lors d'un passage d'un lecteur a un l'autre l'Amiga se "recalibrera" sur la bonne piste.
Autre solution : utiliser un deuxième émulateur en // .
Autant passer sur un MAX II: c'est 5 fois plus gros, 4 fois moins cher.tu peux peut-être envisager à ce moment là un hack sur le hardware, un rajoutant un compteur multiplexé externe ?
L'inconvénient c'est que c'est du cms 100 broches a 0.5mm.
On va commencer par là je pense .oui, c'est aussi une possibilité : un truc très graphique où l'on préchargerait plusieurs images que l'on pourrait "swapper" d'un simple clic ! ca serait déjà pas mal effectivement !
-
- Posts: 41
- Joined: Sun Feb 17, 2008 10:22 pm
- Location: Ile de France
- Contact:
Un site ou il y a une description d'un interface pour câble JTAG :
http://www.positron-libre.com/electroni ... e-jtag.htm
http://www.positron-libre.com/electroni ... e-jtag.htm
Alors moi en fait je ne me suis pas "emmerder" :jbfairlight wrote:Un site ou il y a une description d'un interface pour câble JTAG :
http://www.positron-libre.com/electroni ... e-jtag.htm
Le port parallel étant en 5V TTL comme le CPLD MAX EPM7128, j'ai simplifié mon interface de prog:
Au final il reste 4 fils + 1 masse directement cablés sur le port parrallel a savoir :
TCK sur la pin 2 du port //
TMS sur la pin 3 du port //
TDO sur la pin 11 du port //
TDI sur la pin 8 du port //
et un fil entre la broche 7 et 10 pour la detection de la présence du
"programmateur" .
Sans oublier la masse que vous pouvez prendre de la broche 18 a 25.
au final ça donne (sans les resistances):
Un site qui présente le "truc" (en bas de page):
http://opencollector.org/history/freeco ... aster!.htm
voila