[DEV] Qui veut bricoler avec des Raspberry Pi Pico?

Salon dédié uniquement à vos tutoriels concernant la modification, le modding ou la réparation de toutes les consoles ne rentrant dans aucune section plus haut.
Avatar du membre
Bouz
Référent Technique
Référent Technique
Messages : 1077
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Contact :

Re: [DEV] Qui veut bricoler avec des Raspberry Pi Pico?

Message par Bouz »

Aujourd'hui, il y avait des bouchons sur la route. J'ai donc trouvé une technique à éprouver pour gagner 16ns en se compliquant la vie: un canal PIO peut gérer 4 machines à état qui tournent chacune à 250MHz sur le même bloc de 32 instructions.
Ca ceut dire qu'en décalant les machines d'un cycle d'horloge (ou deux), je peux multiplier par 4 la vitesse d'acquisition sur le bus d'adresses. Au prix d'une complexité qui commence à ouquer un pour irganider ce petit monde.
Restera que je dois toujours faire des boucles en assembleur côté Core 1 qui me font perdre des cycles.
Et la manière dont les vecteurs d'interruptions sont gérés me fait penser que ça n'irait pas plus vite avec eux.
Je me suis penché aussi sur la possibilité de passer par deux canaux DMA qui se configurent entre eux, mais même là j'aurai besoin de quelques instructions pour recupérer en mémoire les données à renvoyer, et je perdrai du temps.
Et quand bien même jarrive à gratter une trentaine de nanosecondes, il faudra penser que la cobme de tout ça est de supporter des fantaisies comme..
- du bank switching
- de l'écriture en RAM
- de l'écriture dans des ports
Donc encore plus de processing à cacher..... dans le 2ème canal PIO et avec le Core 0? :).

Le Pi Pico, c'est rigolo.
Avatar du membre
Bouz
Référent Technique
Référent Technique
Messages : 1077
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Contact :

Re: [DEV] Qui veut bricoler avec des Raspberry Pi Pico?

Message par Bouz »

J'ai échangé un peu avec FreddyV, qui a bossé sur la carte ISA PicoMEM, sur le Discord de Rodrik Studio.
Il m'a conseillé de passer par une chaîne DMA. J'avais déjà envisagé la chose, mais je ne voyais pas comment calculer l'adresse mémoire à renvoyer depuis le PIO (qui ne sait pas faire d'additions).
Il m'a renvoyé vers l'adresse d'un projet qui ressemble furieusement au BricoNeo, mais pour C64 (moins de lignes d'adresses, et 8 lignes de données): https://github.com/cknave/c64-pico-ram- ... /tree/main
J'ai regardé le code, et j'ai compris comment le calcul était fait. Ca ne va oas être facile (du tout) à adapter à 128ko de mémoire 16 bits!
Le principe est d'aligner l'image de ma ROM en mémoire pour que lss PIO n'aient que les 17 bits de poids faible de l'adresse à gérer. Et ça implique de faire une allocation de potentiellement 256ko de RAM sur le Pico pour être sûr d'aligner correctement mes 128ko. Mais le Pico n'embarque que 264ko de RAM, donc ça sent le boudin et l'obligation de faire de la relocalisation.... et donc d'installer l'authentique toolchain Pi Pico.
Avatar du membre
Bouz
Référent Technique
Référent Technique
Messages : 1077
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Contact :

Re: [DEV] Qui veut bricoler avec des Raspberry Pi Pico?

Message par Bouz »

J'avance petit à petit avec ces petits microcontrôleurs sympathiques.
Pour me rapprocher un peu du matériel, je suis passsé sur le SDK RaspBerry PI Pico officiel, que j'ai installé sous Windows (!!!).
J'avais commandé des Rpi2040-Zero. C'est comme un Pico, mais avec un régulateur à la place de l'alim à découpage, et avec seulement le minimum de broches exposées (mais tous les GPIO). Ca ne coûte rien du tout, alors j'ai avais pris quelques uns, que j'ai reçus cette semaine.
En faisant mes installations sous Windows, j'ai vu qu'on pouvait utiliser un Pi Pico comme sonde de débugage pour piloter un autre Pi Pico. Je viens donc de flasher l'une de ces petites cartes, et je peux l'utiliser pour piloter une carte classique.
20231203_175732.jpg
Avec ça, je peux verser du code dans une carte Pico, déporter un UART, et exécuter du code pas à pas en consultant l'état de la mémoire!
Ca parait vraiment top. Ca devrait être pas mal plus pratique que des "printf" pour debugger la gestion de la mémoire (que je dois reprendre).
Avatar du membre
Bouz
Référent Technique
Référent Technique
Messages : 1077
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Contact :

Re: [DEV] Qui veut bricoler avec des Raspberry Pi Pico?

Message par Bouz »

... et ça avance tranquillement...
J'ai pu modifier la cartographie de la mémoire du Pi Pico pour intégrer un bloc surprise de 128ko, et réduire la RAM accessible à 128ko.
Ca me permet de définir précisément l'emplacement de ma future ROM au moment de build et de m'assurer que sln adresse est bien alignée sur 17 bits.
Ça m'ouvre une énorme porte pour jouer avec les PIO et les canaux DMA pour envoyer de bois sur le bus 2x16 bits (c'est la prochaine étape, qui va piquer un peu).
Quand je serai en maîtrise, je commencerai à intégrer là-dedans la gestion des ports d'I/O pour la potentielle version qui déchire du BricoNeo.
Avatar du membre
kitchen34
Référent Technique
Référent Technique
Messages : 2998
Enregistré le : ven. 10 déc. 2021 18:19

Re: [DEV] Qui veut bricoler avec des Raspberry Pi Pico?

Message par kitchen34 »

Salut ca m'aurai intéraissé pour de la domotique a la maison. Pour un de ces quatres, bientôt je pense m'y pencher. :)
Avatar du membre
Bouz
Référent Technique
Référent Technique
Messages : 1077
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Contact :

Re: [DEV] Qui veut bricoler avec des Raspberry Pi Pico?

Message par Bouz »

Pour la domotique, tu dois avoir ce qu'il faut avec des ESP32 ou des ESP8266.
Côté Raspberry Pi Pico, ils ont sorti un modèle W qui propose du Wifi, mais c'est peut-être trop récent pour avoir une offre domotique pléthorique (par rapport aux ESP).
Avatar du membre
Xrider
Administrateur
Administrateur
Messages : 3710
Enregistré le : sam. 14 sept. 2019 10:47
Localisation : MaskRom
Contact :

Re: [DEV] Qui veut bricoler avec des Raspberry Pi Pico?

Message par Xrider »

Bouz a écrit : dim. 3 déc. 2023 22:31 Pour la domotique, tu dois avoir ce qu'il faut avec des ESP32 ou des ESP8266.
Côté Raspberry Pi Pico, ils ont sorti un modèle W qui propose du Wifi, mais c'est peut-être trop récent pour avoir une offre domotique pléthorique (par rapport aux ESP).
Je confirme, à la maison j’ai développé tout mes modules grâce à des ESP8266 (Wemos D1 mini).
Ça fonctionne très très bien, rapport qualité /prix imbattable :merci:
Avatar du membre
Bouz
Référent Technique
Référent Technique
Messages : 1077
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Contact :

Re: [DEV] Qui veut bricoler avec des Raspberry Pi Pico?

Message par Bouz »

Ce week-end, je me suis battu 20 minutes avec ma carte Pico et sa sonde pour tester les timings du système PIO -> DMA1 -> DMA2 -> PIO.
J'obtiens des résultats carrément intéressants, et j'hésite à me lancer dans la création d'un PCB de test pour me brancher sur... une socket de ROM S1 de NeoGeo, évidemment.

Le sujet qui m'occupe pendant ma pause déjeuner (pas de vacances!), c'est celui des buffers qui mettent en relation le RP2040 et le monde 5V qui l'entoure...
J'ai besoin de buffers 8 ou 16 bits (voire de latches, mais je n'ai encore rien décidé!), tristate, et avec des entrées et sorties compatibles 5V, en alimentation 3.3V ou 5V. Je cherche.....

Je m'intérroge aussi sur la possibilité d'intégrer directement un RP2040 sur le PCB, au lieu d'une carte Pi PIco. L'idée étant de faire une carte proche de la taille d'une EPROM 27C1024 et de ne pas avoir à utiliser de rallonge!

Hop, maintenant, au travail (le vrai)!
Avatar du membre
Bouz
Référent Technique
Référent Technique
Messages : 1077
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Contact :

Re: [DEV] Qui veut bricoler avec des Raspberry Pi Pico?

Message par Bouz »

Pour donner suite... j'ai conçu le PCB en question et j'en attends réception.

Je viens de lire un article intéressant sur le DVI sur RP2040. Ca m'a montré que mes espoirs de faire des sorties HDMI sans perte sur les machines rétro sont vains pour le moment :). Ca reste un article intéressant (pour les gens que ça peut intéresser ;)).

https://www.elektormagazine.fr/articles ... spberry-pi
Avatar du membre
Xrider
Administrateur
Administrateur
Messages : 3710
Enregistré le : sam. 14 sept. 2019 10:47
Localisation : MaskRom
Contact :

Re: [DEV] Qui veut bricoler avec des Raspberry Pi Pico?

Message par Xrider »

La solution est du côté du pi zéro

En plus du projet n64, voici un autre dev sur le sujet :
https://github.com/IanSB/RGBtoHDMI/wiki
Avatar du membre
Bouz
Référent Technique
Référent Technique
Messages : 1077
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Contact :

Re: [DEV] Qui veut bricoler avec des Raspberry Pi Pico?

Message par Bouz »

Je m'étais penché dessus, en effet, mais en pleine pénurie, et donc avec des prix ahurissants.
Et un nano ordinateur pour faire du HDMI , ça ne me satisfait pas trop!
Avatar du membre
Bouz
Référent Technique
Référent Technique
Messages : 1077
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Contact :

Re: [DEV] Qui veut bricoler avec des Raspberry Pi Pico?

Message par Bouz »

Et pour ne pas laisser mourir le sujet...
Au point où j'en suis sur la NeoGeo, je ne sais pas si j'arriverai à fournir les données assez vite, ça se joue à rien, j'ai encore du travail.
Ceci dit, il me semble clair que je peux faire la même chose pour des systèmes 8 et 16 bits sans trop de soucis, alors je vais me pencher sur la question tôt ou tard (Master System? VG5000?).
Répondre

Retourner vers « Général (Divers) »