[THOMSON] ARDDRIVE

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

hlide
Messages : 1087
Enregistré le : 29 nov. 2017 10:23

Re: [THOMSON] ARDDRIVE

Message par hlide » 16 avr. 2019 13:56

Voici ce que ça me donne en assembleur AVR :
Arddrive-1.png
Arddrive-1.png (144.19 Kio) Vu 268 fois
Je vois que ce n'est pas optimal :
1) autant le ".loop: sbic PINB, PINB0; rjmp .loop" me paraît bien, autant le ".loop: in __tmp_reg__,SPSR; sbrs __tmp_reg__,SPIF; rjmp .loop" me paraît abusif puisque l'on devrait pouvoir le faire avec ".loop: sbis SPSR, SPIF; rjmp .loop" (ou alors SPSR à une valeur trop grande à encoder dans SBIS).
2) AVR a les instructions SBI et CBI mais elles ne sont pas utilisées ici : "in r25,SPSR; andi r25,lo8(~(1<<SPIF)); out SPSR,r25" au lieu de "cbi SPSR,SPIF" tout simplement.
3) rajouté l'instruction CLI pour ne pas être perturbé par les interruptions comme les timers.

En imaginant qu'il n'y ait pas de watchdog, on peut tout simplement boucler à l'infini dans *loop* pour un peu moins d'instructions :
Arddrive-2.png
Arddrive-2.png (203.1 Kio) Vu 268 fois
Et là je rajoute les macros SBIS, SBIC,SBI et CBI pour optimiser les points 1) et 2) :
Arddrive-3.png
Arddrive-3.png (201.34 Kio) Vu 261 fois
Peut-on faire mieux, je me demande...
Modifié en dernier par hlide le 16 avr. 2019 14:41, modifié 3 fois.

hlide
Messages : 1087
Enregistré le : 29 nov. 2017 10:23

Re: [THOMSON] ARDDRIVE

Message par hlide » 16 avr. 2019 14:36

Bon malheureusement, les macros ne fonctionneront pas et il y a une explication sur le pourquoi le SPSR n'en profite pas : sa valeur en tant que registre est supérieure à 31 et ne peut donc pas entrer dans les instructions CBI et SBIS. CQFD.

Au final gcc se débrouille pas trop mal.

Daniel
Messages : 11892
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [THOMSON] ARDDRIVE

Message par Daniel » 29 oct. 2019 17:43

hlide a écrit :
29 oct. 2019 17:04
Pour ce projet ARDDRIVE, tu prévoyais à combien le coût de fabrication ? je me doute que ça ne doit être pas simple. Avec le Z80, je le verrais bien faisable en se servant du signal /WAIT pour laisser le temps de lire et écrire sur le SD. Mais avec le 6809E, je ne vois pas trop comment faire sans devoir jouer avec la fréquence de E qui est impossible ici.
Avec un Arduino, une EPROM et quelques circuits TTL le coût aurait été d'une vingtaine d'euros. La difficulté pour moi est de comprendre pourquoi ça ne marche pas. Mon analyseur logique est de mauvaise qualité et il perturbe le fonctionnement du circuit. Et même avec du matériel professionnel le diagnostic n'est pas facile.
Daniel
L'obstacle augmente mon ardeur.

__sam__
Messages : 4701
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [THOMSON] ARDDRIVE

Message par __sam__ » 29 oct. 2019 18:48

Question idiote: il existe dans DCMoto l'interface CFMo. Tu n'en as pas trop fait la publicité je crois Daniel, mais je suppose que tu as la version matérielle, et qu'elle fonctionne. D'où la question: le format CF permet-il un meilleur débit qu'en SD (SPI en fait)?

Si oui l'utilisation d'un adaptateur CF<->SD éventuellement combiné à un adapteur CF-IDE pourrait être intéressant, non? (il me semble me souvenir que l'interface IDE s'adapte bien aux 8 bits).

(bon ok, il n'y a plus d'arduino dans la boucle, donc c'est un peu hors-sujet.)
Samuel.
A500 Vampire V2+ ^8^, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.

Daniel
Messages : 11892
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [THOMSON] ARDDRIVE

Message par Daniel » 29 oct. 2019 19:04

L'interface avec la carte CompactFlash est au départ un projet de Fool-DupleX, que j'ai ensuite repris à mon compte et fait plus ou moins fonctionner. Il n'a jamais été finalisé, car la fiabilité n'était pas bonne. Malgré l'ajout de résistances en série et de condensateurs en parallèle sur les lignes d'adresses et de données il y avait parfois des erreurs de transmission. J'ai fait quelques démonstrations de vidéo à des membres du forum (C'était Joan Baez, Farewell Angelina, pour ceux qui s'en souviennent), mais ça n'a jamais débouché sur un produit fini.

Aujourd'hui je pense avoir progressé en électronique grâce aux différents projets d'interfaces, et la correction des erreurs de conception est peut-être possible. Mais c'est un gros travail, je ne sais pas si j'aurai le courage.
Daniel
L'obstacle augmente mon ardeur.

__sam__
Messages : 4701
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [THOMSON] ARDDRIVE

Message par __sam__ » 29 oct. 2019 19:16

Ah oui "Farewell Angelina", je m'en souviens. Tiens cadeau: une version SDVideo pour TO/MO. On voit que même sur cette vidéo plutôt calme, le débit a du mal à tenir les 30fps plein écran (il apparaît comme des défauts d'entrelacement.) En couleur c'est possible? Oui Et un concert c'est possible? Oui

Si je comprends bien, d'un coté il y a le projet arduino qui ne marche pas bien, sans doute pour des raisons logicielles/matérielles (il faut synchroniser l'arduino aux signaux 6809 et c'est pas stable), et de l'autre le CF sans logiciel mais où il y a aussi des soucis de synchro hardware.

Je ne sais pas quel type de synchro est plus simple à régler, mais au vu du schéma, j'ai le sentiment que l’interfaçage à un CF est des plus simple (je ne vois pas de composants actifs sur l'image du lien ci-dessus), et la techno utilisée date de l'époque 8bit, donc peu-être plus simple à mettre en oeuvre.

[EDIT] il y a des easter-eggs dans ce message. Saurez vous les trouver?
Modifié en dernier par __sam__ le 29 oct. 2019 22:27, modifié 2 fois.
Samuel.
A500 Vampire V2+ ^8^, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.

Daniel
Messages : 11892
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [THOMSON] ARDDRIVE

Message par Daniel » 29 oct. 2019 21:14

Dans le prototype, il y avait juste une GAL pour le décodage d'adresse. tout le reste était en connexion directe avec la carte CompactFlash. L'interface IDE apporte beaucoup de restrictions, il vaut mieux envoyer directement des commandes à la carte CF pour bénéficier de toutes ses fonctions, c'est mieux et plus simple. De mémoire, on peut lancer la lecture de plusieurs blocs, mais c'est un nombre limité, contrairement à la carte SD qui peut lire une infinité de blocs séquentiels avec une seule commande.

Je vais rechercher les documents de l'époque (2013) pour me rafraîchir la mémoire, mais sans m'engager pour autant à poursuivre le projet.
Daniel
L'obstacle augmente mon ardeur.

Avatar du membre
Papy.G
Modérateur
Messages : 1965
Enregistré le : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: [THOMSON] ARDDRIVE

Message par Papy.G » 30 oct. 2019 09:18

Il me semble avoir lu de-ci de-là que l'Arduino n'était pas la plate-forme forcément idéale lorsque l'on avait besoin d'un truc pointu et réactif, pourquoi alors ne pas être parti sur un périphérique série (intégré ou câblé à base de registres à décalage), ou un µC ayant un périphérique série, éventuellement compatible SPI en natif, voire capable de gérer le mode SD 4bits, un dérivé 8051, par exemple?

Pour ceux qui doutent des débits atteignables par une carte SD en SPI, sur GameCube, on arrive à des débits satisfaisants par rapport au lecteur optique intégré, pour avoir une idée, la copie d'un disque entier (1,4Go) se fait en 20mn, soit une vitesse d'écriture d'au moins 1Mo/sec.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.

Avatar du membre
pascalien
Messages : 86
Enregistré le : 21 janv. 2019 23:40
Localisation : 93200 ST DENIS
Contact :

Re: [THOMSON] ARDDRIVE

Message par pascalien » 30 oct. 2019 12:45

Papy.G a écrit :
30 oct. 2019 09:18
Il me semble avoir lu de-ci de-là que l'Arduino n'était pas la plate-forme forcément idéale lorsque l'on avait besoin d'un truc pointu et réactif, pourquoi alors ne pas être parti sur un périphérique série (intégré ou câblé à base de registres à décalage), ou un µC ayant un périphérique série, éventuellement compatible SPI en natif, voire capable de gérer le mode SD 4bits, un dérivé 8051, par exemple?
...
c'est peut être plus un problème de librairie.
parce que l'ATMEGA328 fonctionne a 20MHz et dispose en natif du bus SPI.
il me semble avoir vu des AVR avec plus de broches utilisés pour "driver" un Z80
ou même émuler un Z80.
et le vénérable Z80 a 4 MHz lui même était capable de gerer l'IDE (mais peut être pas dans les modes les plus évolués)

totor
Messages : 31
Enregistré le : 09 oct. 2019 22:41

Re: [THOMSON] ARDDRIVE

Message par totor » 30 oct. 2019 16:51

Bonjour,

Une petite question de néophyte : pourquoi ne pas utiliser un raspberry PI? Ca ne coûte que 30 euros. On peut mettre des milliers de fichiers SD Thomson dessus. Vu la vitesse de 1,4 GHZ il n'y a plus de problème de cycles niveau émetteur.

Pourquoi vouloir tout faire en hard niveau émetteur alors que c'est tout à fait possible en soft (soit en C compilé) soit directement en assembleur ARM?

Le port GPIO du raspberry Pi peut tout à fait communiquer avec les Thomson.

En plus l'ensemble du fichier SD serait chargé dans la RAM du Raspberry PI donc pas de temps d'attente pour lire un octet sur la carte SD. Ce serait une transmission de RAM à Thomson.

Enfin plus de gens seront prêts à investir dans un Raspberry PI qui peut être utilisé comme un ordi personnel que dans un arduino qui une fois programmé ne sera utilisable que pour la communication vers Thomson.

Quand on veut utiliser le Raspberry en mode Thomson il suffirait de lancer le logiciel Thomson idoine.

Des articles sur le mode SPI sur Raspberry Pi :

https://www.blaess.fr/christophe/2012/1 ... erry-pi-1/

https://www.raspberrypi.org/documentati ... /README.md

https://eduscol.education.fr/sti/sites/ ... pi-spi.pdf

Ah oui et pour ceux qui me diraient que c'est impossible, en fait ça existe déjà :)

Par exemple sur Commodore 64:

-une vidéo :

https://www.youtube.com/watch?v=CAqJKelw2_4

-deux liens (avec les schémas d'interfaçage déjà faits):

https://cbm-pi1541.firebaseapp.com/

https://hackaday.com/2018/05/07/raspber ... -emulator/

Bien entendu ça existe aussi pour Amiga :

-vidéo :

https://www.youtube.com/watch?v=BVYVZ3fsesk

-lien:

http://amigadrive.blogspot.com/


Et pour Atari ST :

https://www.framboise314.fr/donnez-la-p ... framboise/

__sam__
Messages : 4701
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [THOMSON] ARDDRIVE

Message par __sam__ » 30 oct. 2019 18:20

Ce qui est petit est mignon. Le PI est pas vraiment petit. En plus le soft introduit un max de latences et de contraintes supplémentaires qui ne simplifient pas toujours le projet. Laissons le hard gérer les affaires de hard (synchro sur bus de donnée thomson) et le logiciel gérer les affaires de logiciel (programmation SPI, accès à la fat, lecture des secteurs, etc.).
Samuel.
A500 Vampire V2+ ^8^, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.

totor
Messages : 31
Enregistré le : 09 oct. 2019 22:41

Re: [THOMSON] ARDDRIVE

Message par totor » 30 oct. 2019 18:40

__sam__ a écrit :
30 oct. 2019 18:20
(...)
Je cherchais plutôt à obtenir une réponse technique que philosophique :)

Ce qui est petit est mignon. :shock: :shock:

En plus le soft introduit un max de latences et de contraintes supplémentaires qui ne simplifient pas toujours le projet. bizarre quand dans les autres projets C64, Amgia, Atari ST tout fonctionne très bien :mrgreen:

Il ne faut pas oublier que les Raspberry PI existent depuis 2011, ce qui signifie qu'une seule carte aurait été suffisante pour tous les projets multiples : SDLEP, SDMOTO, SDDRIVE, ARDDRIVE...
Le gain financier et le temps de programmation soft aurait été réduit par 20 ou 30.

Chaque nouveau projet nécessite à nouveau l'achat de nouveau matos alors qu'en soft il suffit d'une simple mise à jour dans avoir à racheter du matériel.
Laissons le hard gérer les affaires de hard (synchro sur bus de donnée thomson) et le logiciel gérer les affaires de logiciel (programmation SPI, accès à la fat, lecture des secteurs, etc.).
Ca c'est une réponse de dinosaure :) la personne qui a répondu en est-elle un?

Je rappelle que l'Histoire montre que le hard disparaît au profit du soft. Avez-vous déjà entendu parler des radio logicielles? SDR ? même l'armée s'y met :

https://www.thalesgroup.com/fr/programme-contact
La Direction générale de l’armement (DGA) a notifié le 21 juin 2012 à Thales le contrat de développement du programme CONTACT (Communications numériques tactiques et de théâtre). Ce programme stratégique est destiné à équiper la majorité des plateformes des forces armées en postes de radio tactiques de nouvelle génération utilisant une technologie innovante dite de « radio logicielle ».
Si les formes d'ondes chiffrées (waveform) des radios tactiques sont maintenant définies en logiciel c'est que le logiciel est capable de gérer ce qui avant était le pré-carré du hard.

hlide
Messages : 1087
Enregistré le : 29 nov. 2017 10:23

Re: [THOMSON] ARDDRIVE

Message par hlide » 30 oct. 2019 19:05

pascalien a écrit :
30 oct. 2019 12:45
c'est peut être plus un problème de librairie.
parce que l'ATMEGA328 fonctionne a 20MHz et dispose en natif du bus SPI.
il me semble avoir vu des AVR avec plus de broches utilisés pour "driver" un Z80
ou même émuler un Z80.
et le vénérable Z80 a 4 MHz lui même était capable de gerer l'IDE (mais peut être pas dans les modes les plus évolués)
Non, un AVR a beau être du RISC mais rien que pour faire un décalage/rotation de plus d'un bit (pour réarranger des bits lus depuis des port I/O dans un octet), on a la même problématique qu'avec le Z80. De plus, le prologue d'une interruption prend pas mal de cycles. Bref, à 16 ou 20 MHz, ça reste quand même compliqué parce qu'il faut que l'Arduino réagit tout de suite aux signaux et ne pourra pas faire d'autre tâche simultanément.

Concernant les projets qui partagent entièrement le bus entre un Z80/6502/6809 et un Arduino, c'est l'Arduino qui cadence la fréquence du Z80/6502/6809, et il est très bas ! (bien en dessous du 1 MHz pour un Z80 !).

hlide
Messages : 1087
Enregistré le : 29 nov. 2017 10:23

Re: [THOMSON] ARDDRIVE

Message par hlide » 30 oct. 2019 19:12

Par ailleurs il existe un kit PSOC5LP vendu à 10 € :
- il est compatible 5 V.
- il a un ARM Cortex-M3 qui peut monter jusqu'à 80 MHz.
- il a PL : oui, il suffit de dessiner le schéma des blocs et on obtient l'équivalent d'un CPLD+ARM. On peut donc adjoindre des blocs USB, SPI, I²C, ADC, DAC, etc. Si avez besoin d'un décodeur d'adresse, mettez le dans le PL ! etc.

J'en ai pris un. J'espère un jour développer un truc sympa avec.
Modifié en dernier par hlide le 30 oct. 2019 19:14, modifié 1 fois.

__sam__
Messages : 4701
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [THOMSON] ARDDRIVE

Message par __sam__ » 30 oct. 2019 19:13

C64, Amgia, Atari ST tout fonctionne très bien :mrgreen:
Ce ne sont pas des thomsons. Il faut relire l'ensemble des fils de discussion concernant la lecture de carte SD sur thomson, en particulier les pbs de bugs électroniques bien subtils. Je ne suis pas certain que la solution "pi" aurait été couronnée du même succès.

Et puis, comme je le dis: un pi est énorme tant à la fois au niveau surface (difficile de le faire tenir dans un port d'extension thomson, et je compte pas non plus l'alim externe à ajouter, les problèmes de maintenance logicielle, de chauffe, etc), qu'au niveau puissance: il peut émuler un thomson sous retro-arch et charger les fichiers FD directement, alors pourquoi s'encombrer d'un thomson finalement?

C'est vraiment une question de philosophie je pense, et je trouve que la solution de Daniel avec SDDrive très élégante. Petite, simple, bref parfaitement adaptée à nos ordinosaures!
Modifié en dernier par __sam__ le 30 oct. 2019 19:16, modifié 1 fois.
Samuel.
A500 Vampire V2+ ^8^, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.

Répondre