le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)

Les bouquins, les scans, les pdf ou les liens qui vont bien... ici c'est la bibliothèque.

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
Carl
Modérateur
Messages : 13290
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)

Message par Carl »

Richard a réalisé un document de 240 pages, très complet et très détaillé sur le microprocesseur des années 80, le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840).

Ce document est décliné en PDF de 9,3 Mo ou en HMTL, Richard souhaite le mettre à disposition du forum, son seul souhait est d'avoir un retour par mail (keros6809(at)gmail.com) des éventuelles corrections, amélioration, ajouts de renseignements concernant ces composants.

version PDF :
http://download.system-cfg.com/f.php?h=1hWIBbOe&d=1

version HTML :
http://download.system-cfg.com/f.php?h=2QoGT6rj&d=1

Merci à Richard SOREK pour son partage.

Carl
Daniel
Messages : 17410
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)

Message par Daniel »

Un parcours rapide du document montre le travail considérable effectué. Tellement considérable qu'il va être difficile de trouver des améliorations ou de corriger des erreurs. Apparemment il ne semble pas y en avoir beaucoup.

Ce document mériterait d'être mis sur internet pour une consultation en ligne. Pour cela il faudrait revoir une peu la version html pour scinder l'énorme page de 6 Mo en plusieurs petites pages à taille humaine.

Merci à Richard de diffuser son oeuvre !
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
jb_jb_fr
Messages : 391
Inscription : 29 mars 2010 10:36
Localisation : Essonne (91)
Contact :

Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)

Message par jb_jb_fr »

J'ai commencé à lire le document

Il est assez enorme et demande plusieurs jours de lecture.
Mais j'ai déjà quelques petites remarque que je vais m'empresser de lui envoyer.

Mais déjà une qui je trouve est un peu exagéré :

Code : Tout sélectionner

Après avoir recherché de la documentation sur le microprocesseur µp6809, je me suis vite rendu compte que 
pratiquement tous les documents trouvés dans le commerce ou sur le WEB était trop succincts, incomplets et le 
plus souvent truffés d'erreurs
Je trouve qu'il y va un peu fort.
Certes j'ai vu des doc avec des erreurs. Mais de la a dire que "Pratiquement tous les documents", c'est un peu trop.

Jacques
Avatar de l’utilisateur
SOREK
Messages : 27
Inscription : 25 févr. 2012 02:29
Localisation : 59169 Férin (près de Douai, département du Nord 59)

Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)

Message par SOREK »

Bonjour,
Je ne souhaite vexer personne, mais après la comparaison de tous les documents que j'ai pu voir, c'est vrai que je me suis rendu compte qu'il y avait dans chaque ouvrage des petites erreurs, alors erreurs ou "coquilles d'impressions" ?

Si j'ai mis ce commentaire ce n'est pas pour faire bien, mais ce commentaire m'a été inspiré par un vécu bien réel.
Certes se sont parfois des petites erreurs facilement détectables, mais reste des erreurs.

Maintenant personne n'est parfait et il se peut que le fruit de mon travail comporte également des erreurs. C'est pour cela que j'ai décidé de le mettre à disposition de tous pour faire évoluer ce document, je m'engage à faire les corrections et de mettre sur ce formidable site mes dernières mises à jour.

Merci de toutes vos remarques positives comme négatives, elles sont les bienvenues, cela a le mérite de me donner un miroir différent sur ces propres idées.

Bonne journée.
Richard SOREK
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3051
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)

Message par Papy.G »

Cherchant à me documenter récemment sur le 6850, je n'ai pas trouvé, dans mes premières recherches, de documents me semblants convenables, je ne manquerais pas de dire si celui-ci fait le job, et si je vois des corrections à faire. :wink:
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Daniel
Messages : 17410
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)

Message par Daniel »

A l'usage on trouve quelques fautes pas graves, mais qui gênent un peu la lecture. Exemple :
Dans d'autres circonstances, CWAI permet aux programmeurs de sélectionner un endroit précis dans son programme pour lancer un traitement déception, même lorsqu'il s'agit d'une interruption matérielle. C'est pour la raison pour laquelle nous l'appelons "interruption matériel programmée" alliant les deux concepts matériel et logiciel.
CWAI écarte en quelque sorte de l'aspect aléatoire d'une interruption matérielle.
- un traitement déception ?
- Interruption matériel programmée ?

J'ai lu cette partie car je me posais une question précise :
- Si le processeur est en attente d'interruption sur une instruction CWAI, il a déjà sauvé tous les registres dans la pile. Quand l'interruption arrive, je suppose qu'elle ne sauve pas à nouveau les registres ? Se branche-t-elle directement à l'adresse correspondant au vecteur d'interruption ?

Dans le paragraphe sur les interruptions, rien n'est précisé. Il est dit que l'interruption provoque l'empilage des registres. Est-ce vrai quand un CWAI est en attente ? Sinon, il serait bon de le mentionner.

Comme toujours, la documentation donne des indications mais pas de certitudes. Quand on veut être sûr, il faut tester sur une vraie machine. C'est toujours ainsi que j'ai procédé.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
jb_jb_fr
Messages : 391
Inscription : 29 mars 2010 10:36
Localisation : Essonne (91)
Contact :

Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)

Message par jb_jb_fr »

Il suffit de prendre l'excellent livre de Claude DARDANNE :
Le microprocesseur 6809 Ses périphériques et le processeur graphique 9365-66

L'instructiuon CWAY y est tres bien expliqué dans le chapitre des interuptions.
Et dedans il est dit :
1 : Execution CWAY
2 : CCR ou octet immédiat --> CCR
3 : 1 -> E
4 : Sauvegarde des registres dans la pile S
5 : Attente d’interruption
6 : Traitement en fonction de l'IT reçue

Jacques
__sam__
Messages : 7964
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)

Message par __sam__ »

On trouve aussi l'info dans le "MC6809-MC6809E 8-Bit Microprocessor Programming Manual [M6809PM/AD]" (version sur archive.org car sinon les pointeurs web disparaissent avec le temps.)

CWAI sert à répondre rapidement à une interruption alors que dans du code standard il faut attendre que l'instruction courante soit terminée (MUL utilise 11 cycles, et les PULS/PSHS peuvent être encore plus longs). Par contre la pile du FIRQ contient tous les registres (comme une IRQ pas fast) en cas de CWAI ce qui ne devrait pas changer grand chose si on ne programme pas comme un sagouin et qu'on a assez de place pour eux.
Dernière modification par __sam__ le 07 mars 2016 21:49, modifié 1 fois.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Daniel
Messages : 17410
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)

Message par Daniel »

Mais il n'est pas dit si l'interruption sauve à nouveau les registres ou pas. Je suppose que non, mais aucune des documentations ne précise ce point.

La documentation que j'utilise le plus souvent est le MC6809 Microprocessor Programming Manual :
http://dcmoto.free.fr/documentation/6809pm/index.html

Et si elle n'est pas assez claire je vérifie dans 6x09 Instruction Sets :
http://www.coco3.com/community/wp-conte ... n_Sets.pdf

Mais, encore une fois, seul un essai sur la vraie machine permet de s'assurer de l'interprétation des explications données. Je ne dis pas qu'elles sont fausses, mais que dans certains cas il reste des zones d'ombre. J'aimerais trouver un jour une documentation ne laissant aucune place aux hypothèses incertaines.
Daniel
L'obstacle augmente mon ardeur.
__sam__
Messages : 7964
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)

Message par __sam__ »

@Daniel, la doc donne l'info sous la forme de l'organigramme page 34: http://dcmoto.free.fr/documentation/680 ... ts&page=34
Donc pas de double empilage (ca serait contre-productif de toute façon).
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Avatar de l’utilisateur
jb_jb_fr
Messages : 391
Inscription : 29 mars 2010 10:36
Localisation : Essonne (91)
Contact :

Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)

Message par jb_jb_fr »

Bonjour
Daniel a écrit : - Si le processeur est en attente d'interruption sur une instruction CWAI, il a déjà sauvé tous les registres dans la pile. Quand l'interruption arrive, je suppose qu'elle ne sauve pas à nouveau les registres ? Se branche-t-elle directement à l'adresse correspondant au vecteur d'interruption ?
.....
Dans le paragraphe sur les interruptions, rien n'est précisé. Il est dit que l'interruption provoque l'empilage des registres. Est-ce vrai quand un CWAI est en attente ? Sinon, il serait bon de le mentionner.
Questions idiotes:
- Comment le vérifier en vrai?
- Empilage avant l'IT? Empilage quand l'IT arrive?

Daniel,
T'as une sonde JTag pour vérifier tout ça?
Ca m'interpelle.

Jacques
Daniel
Messages : 17410
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)

Message par Daniel »

Comprenez moi bien : je crois avoir deviné ce que fait l'instruction CWAI. Je voulais simplement faire remarquer que toutes les documentations ne sont pas claires sur ce sujet. Prenons par exemple le MC6809-MC6809E Microprocessor Programming Manual à la page 3-2 :
1.11.10.2 Fast Interrupt Request (FIRQ).
This input is used to initiate a fast interrupt request sequence. Initiation depends on the F (fast interrupt request mask) bit in the condition code register being clear. This bit is set during reset. During the interrupt, only the contents of the condition code register and the program counter are stacked resulting in a short amount of time required to service this interrupt. This interrupt has a higher priority than the normal interrupt request (IRQ).
Il est écrit noir sur blanc que l'interruption FIRQ empile CC et PC. C'est vrai s'il n'y a pas de CWAI en attente d'interruption. Par contre, si le programme est arrêté sur un CWAI tous les registres ont déjà été empilés. Dans ce cas l'interruption provoque seulement un branchement à l'adresse de traitement de FIRQ, mais pas l'empilage des registres.

Si je me trompe, n'hésitez pas à me contredire. Si je ne me trompe pas, j'aurais bien aimé voir cela écrit dans la doc.
Daniel
L'obstacle augmente mon ardeur.
__sam__
Messages : 7964
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)

Message par __sam__ »

jb_jb_fr a écrit :Questions idiotes:
- Comment le vérifier en vrai?
Il y a un protocole pour vérifier l'occupation de la pile que l'on peut adapter pour le cas du CWAI: Il suffit de la remplir avec un contenu défini ($AA, $55 ou autre), de mettre une autre valeur dans les registres (A=1, B=2, X=$0304, Y=$0506, etc). Faire le CWAI, laisser l'interruption arriver, la routine de service recopie alors la pile dans un endroit séparé, et une fois sorti du CWAI, examiner la copie qui a été faite. L'endroit où les $55 sont remplacés par des $01 $02 etc donne l'empreinte mémoire ainsi que l'ordre d'empilement des octets des registres.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3051
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)

Message par Papy.G »

Ce toute manière, si c'était empilé deux fois, il faudrait le dépiler deux fois aussi, sous peine de plantage le cas échéant, vous tous qui programmez sur 6809 depuis longtemps vous en seriez déjà rendu compte. :lol:
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Daniel
Messages : 17410
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)

Message par Daniel »

Encore une fois, dans ce sujet, nous n'essayons pas de savoir ce que fait l'instruction CWAI, ni les interruptions matérielles. Nous discutons de la qualité de la documentation. Je voulais seulement faire remarquer que la documentation peut être mal interprétée et faire naître des incertitudes. Encore une fois aussi je ne dis pas qu'elle est fausse, mais qu'elle laisse planer des doutes.

La documentation du processeur 6809 n'est pas un cas isolé. Tous les lecteurs de la datasheet de l'EF9345 se sont aussi posé des questions pour interpréter certaines subtilités, moi le premier. Ceux qui écrivent des documentations devraient se mettre dans la peau d'un programmeur, ou mieux d'un créateur d'émulateur. Ces deux activités demandent une précision absolue qui ne se satisfait pas d'explications superficielles ou approximatives ou incomplètes.
Daniel
L'obstacle augmente mon ardeur.
Répondre