TAVERNIER 6809
Modérateurs : Papy.G, fneck, Carl
Re: TAVERNIER 6809
Bonjour Michel et Frédéric,
Ce n'était pas plutôt pour la carte vidéo SVG, ces délais TTL ?
Pour la carte CPU, la mémoire est statique, E et Q devraient suffire à la faire fonctionner sans autre forme de procès...
A la limite, l'idéal serait d'avoir une version CMOS du 6809 avec registres statiques, ce qui permettrait de faire fonctionner le CPU à très basse fréquence, histoire de voir ce qui se passe...
A+,
Michel
Ce n'était pas plutôt pour la carte vidéo SVG, ces délais TTL ?
Pour la carte CPU, la mémoire est statique, E et Q devraient suffire à la faire fonctionner sans autre forme de procès...
A la limite, l'idéal serait d'avoir une version CMOS du 6809 avec registres statiques, ce qui permettrait de faire fonctionner le CPU à très basse fréquence, histoire de voir ce qui se passe...
A+,
Michel
- michel guyot
- Messages : 612
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour à tous
Mes investigations continuent....
J'ai vérifié que sur quelques adresses précises, les 2 PROMs de décodage faisaient bien leur travail
Ma carte CPU09 d'origine sur laquelle je fais tourner des boucles d'instructions, me sert de référence pour identifier les signaux de sélection des chips
Sur ma carte en essai j'essais de reproduire ces mêmes boucles en les implantant dans l' EEPROM, mais sans succès pour l'instant
Ci-dessous un exemple de ce que je cherche à faire, ROM
Nota: les instructions MUL me permettent de repérer les instructions à l'oscillo
Mais je commets peut-être une erreur dans la programmation de l' EEPROM....
A plus
Michel
Mes investigations continuent....
J'ai vérifié que sur quelques adresses précises, les 2 PROMs de décodage faisaient bien leur travail
Ma carte CPU09 d'origine sur laquelle je fais tourner des boucles d'instructions, me sert de référence pour identifier les signaux de sélection des chips
Sur ma carte en essai j'essais de reproduire ces mêmes boucles en les implantant dans l' EEPROM, mais sans succès pour l'instant
Ci-dessous un exemple de ce que je cherche à faire, ROM
Nota: les instructions MUL me permettent de repérer les instructions à l'oscillo
Mais je commets peut-être une erreur dans la programmation de l' EEPROM....
A plus
Michel
Re: TAVERNIER 6809
Bonjour,
Il faudrait faire une eprom de test qui n’utilise pas la ram et communique avec le bip. Il y en avait une pour tester un par un les composants sur l’oric.
Le 6809 devrait pouvoir faire cela, sans sous programme… ni pile …
A voir
Frederic
Il faudrait faire une eprom de test qui n’utilise pas la ram et communique avec le bip. Il y en avait une pour tester un par un les composants sur l’oric.
Le 6809 devrait pouvoir faire cela, sans sous programme… ni pile …
A voir
Frederic
Cordialement
Frédéric
Forget the C:\ prompt! Real computing starts with +++
Frédéric
Forget the C:\ prompt! Real computing starts with +++
- michel guyot
- Messages : 612
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour Frederic, bonjour à tous
Je suis toujours bloqué sur cette carte....
Bien sur, un mouchard implanté en EEPROM me serait d'un grand secours...c'est un peu ce que je cherche à faire, mais de manière très simple
Mon problème est tout d'abord de cerner la nature du problème hard , soft ou les deux ?
Le schéma de la carte CPU09 est valide et les vérifications que j'ai faites ne montrent pas d'erreur de transcription
La qualité du PCB est plus que correcte, les autres cartes que j'ai réalisé avec JLCPCB n'ont jamais montré de défauts de fabrication
Le câblage de la carte (soudures des composants passifs et supports) peut apporter son lot de problème, je n'ai rien trouvé pour l'instant
Concernant la qualité des composants actifs, là je suis moins affirmatif , plusieurs MC6809 ne fonctionnaient pas du tout (pas d'horloge)
Les mémoires de décodage que j'ai reçues sont des Harris M3-7611A-5 (ma carte CPU09 d'origine est équipée de Harris M1-7611-2)
J'ai tout de même l'impression que le problème se situe au niveau du décodage d'adresse....
J'essaie d'implanter en EEPROM quelques instructions qui tournent en boucle, qui ne nécessitent ni pile, ni RAM, qui sollicitent différentes adresses...
Ces adresses devraient normalement faire réagir le décodage d'adresse...
Quelqu'un pourrait-il me dire si je ne commets pas une erreur de principe dans l'utilisation de l'EEPROM de 8K byte que j'utilise (AT28C64B) ?
L'adresse A12 de cette EEPROM est fixée à 0
A plus
Michel
Je suis toujours bloqué sur cette carte....
Bien sur, un mouchard implanté en EEPROM me serait d'un grand secours...c'est un peu ce que je cherche à faire, mais de manière très simple
Mon problème est tout d'abord de cerner la nature du problème hard , soft ou les deux ?
Le schéma de la carte CPU09 est valide et les vérifications que j'ai faites ne montrent pas d'erreur de transcription
La qualité du PCB est plus que correcte, les autres cartes que j'ai réalisé avec JLCPCB n'ont jamais montré de défauts de fabrication
Le câblage de la carte (soudures des composants passifs et supports) peut apporter son lot de problème, je n'ai rien trouvé pour l'instant
Concernant la qualité des composants actifs, là je suis moins affirmatif , plusieurs MC6809 ne fonctionnaient pas du tout (pas d'horloge)
Les mémoires de décodage que j'ai reçues sont des Harris M3-7611A-5 (ma carte CPU09 d'origine est équipée de Harris M1-7611-2)
J'ai tout de même l'impression que le problème se situe au niveau du décodage d'adresse....
J'essaie d'implanter en EEPROM quelques instructions qui tournent en boucle, qui ne nécessitent ni pile, ni RAM, qui sollicitent différentes adresses...
Ces adresses devraient normalement faire réagir le décodage d'adresse...
Quelqu'un pourrait-il me dire si je ne commets pas une erreur de principe dans l'utilisation de l'EEPROM de 8K byte que j'utilise (AT28C64B) ?
L'adresse A12 de cette EEPROM est fixée à 0
A plus
Michel
Re: TAVERNIER 6809
Juste pour rappel, j'ai 5 6809P Thomson qui attendent sagement. Et plein de vieux composants neufs d'époque.
Et de la DRAM en pagaille.
Une idée vite fait pour valider peut être un tas de chose : sans ram sans eeprom, forcer le bus data sur 0x12 (NOP). Et donc voir si ca s'agite correctement coté bus d'adresse ?
Et de la DRAM en pagaille.
Une idée vite fait pour valider peut être un tas de chose : sans ram sans eeprom, forcer le bus data sur 0x12 (NOP). Et donc voir si ca s'agite correctement coté bus d'adresse ?
- michel guyot
- Messages : 612
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour Franckb78
Que veux-tu dire par forcer le bus datas sur 0x12 (NOP) ?
Michel
Que veux-tu dire par forcer le bus datas sur 0x12 (NOP) ?
Michel
Re: TAVERNIER 6809
8 resistances de rappel vers le 0v ou le +5v. Genre 1k, 2k2.
Le proc démarerra avec son PC à 0x1212 (normalement) l'incrementera , ne lira que des NOP et tout ca en boucle de 0 à 64k sur le bus d'adresse.
Comme si il était 'seul' sans périqphériques RAM/ROM. Mais tu as peux être déja determiné qu'il démarre correctement.
Le proc démarerra avec son PC à 0x1212 (normalement) l'incrementera , ne lira que des NOP et tout ca en boucle de 0 à 64k sur le bus d'adresse.
Comme si il était 'seul' sans périqphériques RAM/ROM. Mais tu as peux être déja determiné qu'il démarre correctement.
- michel guyot
- Messages : 612
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour Franckb78
OK , j'ai compris
Je vais tenter la manip
Non, je ne suis pas encore certain que le processeur démarre sur le vecteur reset, d'où mes interrogations sur la mise en oeuvre de l' EEPROM
A plus
Michel
OK , j'ai compris
Je vais tenter la manip
Non, je ne suis pas encore certain que le processeur démarre sur le vecteur reset, d'où mes interrogations sur la mise en oeuvre de l' EEPROM
A plus
Michel
- michel guyot
- Messages : 612
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour
Je poursuis mes investigations....
Un point positif tout de même, le système de décodage d'adresse réalisé par les deux PROMs fonctionne correctement
Sur ma carte en essai j'ai conservé uniquement les deux PROMs
En plaçant cette carte sur le bus de mon TAVERNIER, quelques boucles d'instructions placées en RAM permettent de faire apparaître des adresses précises et de vérifier que le décodage d'adresse de la carte en essai réagit correctement en dynamique
==> mon problème vient donc du fait que sur ma carte le système de décodage ne doit pas recevoir les bonnes adresses....
Pour Franckb78
J'ai placé mon processeur sur une plaquette d'essais et forcé les datas à 0 via des résistances de 1.6k.
L'horloge fonctionne, les signaux E et Q sont corrects (1MHz)
Le signal R/W (largeur 1µs) apparait toutes les 6µs
Une activité apparait sur le bus adresse mais sans analyseur logique l'interprétation reste difficile...!
A plus
Michel
Je poursuis mes investigations....
Un point positif tout de même, le système de décodage d'adresse réalisé par les deux PROMs fonctionne correctement
Sur ma carte en essai j'ai conservé uniquement les deux PROMs
En plaçant cette carte sur le bus de mon TAVERNIER, quelques boucles d'instructions placées en RAM permettent de faire apparaître des adresses précises et de vérifier que le décodage d'adresse de la carte en essai réagit correctement en dynamique
==> mon problème vient donc du fait que sur ma carte le système de décodage ne doit pas recevoir les bonnes adresses....
Pour Franckb78
J'ai placé mon processeur sur une plaquette d'essais et forcé les datas à 0 via des résistances de 1.6k.
L'horloge fonctionne, les signaux E et Q sont corrects (1MHz)
Le signal R/W (largeur 1µs) apparait toutes les 6µs
Une activité apparait sur le bus adresse mais sans analyseur logique l'interprétation reste difficile...!
A plus
Michel
Re: TAVERNIER 6809
Michel,
Essaye un programme de ce type, et regarder ce qui se passe sur la patte PA2.
****************************************
* ROM DE TEST POUR CARTE TAVERNIER *
* UTILISE LE PIA EN $EB00 SUR PA2 *
* POUR COMMUNIQUER ... *
* *
* LE 26/09/21 PAR FLD *
****************************************
*
PIADRA EQU $EB00
PIACRA EQU $EB01
CREN MACRO
* MACRO POUR PRODUIRE &1 CRENEAUX
TFR D,U SAUVEGARDE A ET B
* X EST LE COMPTEUR DE CRENEAUX
* Y EST LA LONGUEUR DU CRENEAUX
LDX #&1
LOOP0 LDY #&2
* PREPARE A
LDA PIADRA
ORA #$04 PA2 a 1
STA PIADRA
LOOP1 LEAY -1,Y
BNE LOOP1
LDY #&2
ANDA #$FB PA2 a 0
STA PIADRA
LOOP2 LEAY -1,Y
BNE LOOP2
LEAX -1,X
BNE LOOP0
TFR U,D RESTORE A et B
ENDM
ORG $1000
START
* INIT OF THE PIA
*****************
LDX #PIADRA
LDD #$3AFF
STA 3,X
STB 2,X
LDD #$3E3A
STA 3,X
STB 1,X
LDD #$9F06
STA 0,X
STB 1,X
LDA #$01
STA 0,X
* ENVOI 2 CRENEAUX LONGS
CREN 2,1000
* A PARTIR D'ICI, FAIRE DES TESTS
* ET UTILISER LES CRENEAUX POUR
* COMMUNIQUER ...
JMP START
END
Ce programme n'utilise que le 6809, le PIA et le décodage.
Tu peux ajouter en suite des tests et faire des signaux long ou courts pour savoir où tu en es ...
L'idée est d'écrire dans un registre, puis de le vérifier en lecture.
A et B sont préservés en U. X et Y sont modifiés, S n'est pas utilisé.
A+
Frédéric
Essaye un programme de ce type, et regarder ce qui se passe sur la patte PA2.
****************************************
* ROM DE TEST POUR CARTE TAVERNIER *
* UTILISE LE PIA EN $EB00 SUR PA2 *
* POUR COMMUNIQUER ... *
* *
* LE 26/09/21 PAR FLD *
****************************************
*
PIADRA EQU $EB00
PIACRA EQU $EB01
CREN MACRO
* MACRO POUR PRODUIRE &1 CRENEAUX
TFR D,U SAUVEGARDE A ET B
* X EST LE COMPTEUR DE CRENEAUX
* Y EST LA LONGUEUR DU CRENEAUX
LDX #&1
LOOP0 LDY #&2
* PREPARE A
LDA PIADRA
ORA #$04 PA2 a 1
STA PIADRA
LOOP1 LEAY -1,Y
BNE LOOP1
LDY #&2
ANDA #$FB PA2 a 0
STA PIADRA
LOOP2 LEAY -1,Y
BNE LOOP2
LEAX -1,X
BNE LOOP0
TFR U,D RESTORE A et B
ENDM
ORG $1000
START
* INIT OF THE PIA
*****************
LDX #PIADRA
LDD #$3AFF
STA 3,X
STB 2,X
LDD #$3E3A
STA 3,X
STB 1,X
LDD #$9F06
STA 0,X
STB 1,X
LDA #$01
STA 0,X
* ENVOI 2 CRENEAUX LONGS
CREN 2,1000
* A PARTIR D'ICI, FAIRE DES TESTS
* ET UTILISER LES CRENEAUX POUR
* COMMUNIQUER ...
JMP START
END
Ce programme n'utilise que le 6809, le PIA et le décodage.
Tu peux ajouter en suite des tests et faire des signaux long ou courts pour savoir où tu en es ...
L'idée est d'écrire dans un registre, puis de le vérifier en lecture.
A et B sont préservés en U. X et Y sont modifiés, S n'est pas utilisé.
A+
Frédéric
Cordialement
Frédéric
Forget the C:\ prompt! Real computing starts with +++
Frédéric
Forget the C:\ prompt! Real computing starts with +++
- michel guyot
- Messages : 612
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Pour Franckb78
J'ai raconté des bêtises, les datas n'étaient pas forcées à $12 (NOP)
Aprés correction de mon montage, l'adresse qui apparait sur les bus (A0 à A15) est bien incrémentée....à chaque instruction NOP
Le processeur tourne rond, un doute supplémentaire évacué, merci Franck
Pour Fréderic
Merci pour ce petit utilitaire...
Je vais voir ce que cela donne..
A plus
Michel
J'ai raconté des bêtises, les datas n'étaient pas forcées à $12 (NOP)
Aprés correction de mon montage, l'adresse qui apparait sur les bus (A0 à A15) est bien incrémentée....à chaque instruction NOP
Le processeur tourne rond, un doute supplémentaire évacué, merci Franck
Pour Fréderic
Merci pour ce petit utilitaire...
Je vais voir ce que cela donne..
A plus
Michel
Re: TAVERNIER 6809
Tu as fais un paté sur la pin 21 de U8. A priori c'est connecté mais vérifie quand même
Sur U5, vérifies que de temps en temps D0,D1,D2, D3 descendent à tour de role.
Je rajouterais des étiquettes juste pour info, genre ROM_CS RAM_CS PERIPH_CS EXTERNAL_CS (d'après ce que je lis).
Si ca bagote ca valide BA BS et la bascule D, U2 ,U3, c'est pas mal...
(toujours en NOP)
et U6 doit aussi bagoter
Sur U5, vérifies que de temps en temps D0,D1,D2, D3 descendent à tour de role.
Je rajouterais des étiquettes juste pour info, genre ROM_CS RAM_CS PERIPH_CS EXTERNAL_CS (d'après ce que je lis).
Si ca bagote ca valide BA BS et la bascule D, U2 ,U3, c'est pas mal...
(toujours en NOP)
et U6 doit aussi bagoter
- michel guyot
- Messages : 612
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour Franckb78
Je progresse tout doucement
J'ai replacé le processeur sur la carte en essai, sans RAM et sans EEPROM
Toujours en forçant les datas à $12, le processeur démarre bien et balaye en boucle toutes les adresses
Sur A0, la période est de 4µs ce qui correspond au 2 cycle d' exécution de l'instruction NOP
Sur la PROM HAUTE (U5) les sorties O1, O2, O3, O4 descendent à tour de rôle avec des durées conformes à la largeur des plages d'adresses
O1 Pin 12 Buffer Données RAM => 120,320 ms
O2 Pin 11 UVPROM => 8,192 ms
O3 Pin 10 SRAM => 2,048 ms
O4 Pin 9 /CE PROM BASSE => 512 µs
Sur la PROM BASSE , les sorties semblent descendre, j'ai un peu de mal à les saisir à l'oscillo , la largeur des impulsions étant plus faible
O1 Pin 12 TIMER => 10 µs
O2 Pin 11 ACIA => 4 µs
O3 Pin 10 PIA => 8 µs
O4 Pin 9 PERI => 4 µs
Mes essais précédents effectués en générant des adresses particulières sur le BUS à partir de mon TAVERNIER, ont montré que les deux PROMs de décodage réagissaient correctement.
Je vais tout de même voir si je peux trouver une autre façon de régler le TRIGGER
A priori, il doit être possible de refaire le même genre d'essai avec une EEPROM remplie uniquement avec des NOP.....
Frederic m'a aussi transmis un utilitaire à placer en EEPROM et qui devrait m'aider dans mes investigations
A plus
Michel
Je progresse tout doucement
J'ai replacé le processeur sur la carte en essai, sans RAM et sans EEPROM
Toujours en forçant les datas à $12, le processeur démarre bien et balaye en boucle toutes les adresses
Sur A0, la période est de 4µs ce qui correspond au 2 cycle d' exécution de l'instruction NOP
Sur la PROM HAUTE (U5) les sorties O1, O2, O3, O4 descendent à tour de rôle avec des durées conformes à la largeur des plages d'adresses
O1 Pin 12 Buffer Données RAM => 120,320 ms
O2 Pin 11 UVPROM => 8,192 ms
O3 Pin 10 SRAM => 2,048 ms
O4 Pin 9 /CE PROM BASSE => 512 µs
Sur la PROM BASSE , les sorties semblent descendre, j'ai un peu de mal à les saisir à l'oscillo , la largeur des impulsions étant plus faible
O1 Pin 12 TIMER => 10 µs
O2 Pin 11 ACIA => 4 µs
O3 Pin 10 PIA => 8 µs
O4 Pin 9 PERI => 4 µs
Mes essais précédents effectués en générant des adresses particulières sur le BUS à partir de mon TAVERNIER, ont montré que les deux PROMs de décodage réagissaient correctement.
Je vais tout de même voir si je peux trouver une autre façon de régler le TRIGGER
A priori, il doit être possible de refaire le même genre d'essai avec une EEPROM remplie uniquement avec des NOP.....
Frederic m'a aussi transmis un utilitaire à placer en EEPROM et qui devrait m'aider dans mes investigations
A plus
Michel
Re: TAVERNIER 6809
c'est effectivement la prochaine étape, mettre une eeprom avec quelquechose de connu et un résultat attendu.
comme simplement écrire a une adresse RAM et vérifier que R/W répond selon le programme.
genre (je connais pas cet assembleur mais tu comprendras)
si tu vois R/W s'activer alternativement entre 4 et 8 cycles, c'est bon pour la ROM, le prog tourne.
Tu as bien sur mis les jumpers correspondant à l' eeprom en place.....
comme simplement écrire a une adresse RAM et vérifier que R/W répond selon le programme.
genre (je connais pas cet assembleur mais tu comprendras)
Code : Tout sélectionner
RAM eq 0
start:
sta A, RAM
nop
nop
nop
nop
sta A, RAM
nop
nop
nop
nop
nop
nop
nop
nop
jmp start
; reset vector
org $FFFE
start
Tu as bien sur mis les jumpers correspondant à l' eeprom en place.....
Re: TAVERNIER 6809
Bonjour Michel,
Je pense qu’il est délicat d’utiliser la RAM pour les 1ers tests. En effet la sélection de la page se fait par le PIA et tu risques de ne pas maîtriser la sélection.
D’où ma proposition de tester le PIA sans la RAM au début.
Cela va sans dire (mais peut-être mieux en le disant) pour mes test j’ai mis un « org $1000 », pour toi, tu implantes le code en ROM avec le vecteur de reset qui pointe dessus comme dans tes tests à toi.
Bon courage
Frederic
Je pense qu’il est délicat d’utiliser la RAM pour les 1ers tests. En effet la sélection de la page se fait par le PIA et tu risques de ne pas maîtriser la sélection.
D’où ma proposition de tester le PIA sans la RAM au début.
Cela va sans dire (mais peut-être mieux en le disant) pour mes test j’ai mis un « org $1000 », pour toi, tu implantes le code en ROM avec le vecteur de reset qui pointe dessus comme dans tes tests à toi.
Bon courage
Frederic
Cordialement
Frédéric
Forget the C:\ prompt! Real computing starts with +++
Frédéric
Forget the C:\ prompt! Real computing starts with +++