Bonjour,
Pardon pour le titre, je ne vais pas ré-inventer le monde Arduino.
Je n'ai pas la compétence hard et soft pour développer ce type de produit. Juste un peu le sens de l'observation et j'ai décider de remplacer ATmega328p par un ATmega1284p pour bénéficier dans un premier temps de plus de RAM et quelques pins de plus ne font pas de mal.
Un petit circuit adaptateur (attention aux yeux et à la tremblote) à enficher en lieu et place du 328p. On garde bien sur le quartz et le circuit de download de la UNO (La UNO n'a subit aucune modification).
Voila la "bête"
Après installation du bootload via l'interface ISP et c'est parti.
La carte fonctionne pour les premiers tests, Serial.println(), et leds clignotantes sur les I/O (mais pour l'instant par accès direct aux ports).
Il me reste à résoudre l'intégration des pins dans l'environnement IDE Arduino pour pouvoir utiliser les pinMode, digitalWrite, etc ...
Si quelqu'un a une idée sur les fichiers à adapter, je suis preneur.
Lorsque tout fonctionnera je le mettrai dans la bonne rubrique.
@+
icare:
Bonjour,
Pardon pour le titre, je ne vais pas ré-inventer le monde Arduino.
Je n'ai pas la compétence hard et soft pour développer ce type de produit. Juste un peu le sens de l'observation et j'ai décider de remplacer ATmega328p par un ATmega1284p pour bénéficier dans un premier temps de plus de RAM et quelques pins de plus ne font pas de mal.
Un petit circuit adaptateur (attention aux yeux et à la tremblote) à enficher en lieu et place du 328p. On garde bien sur le quartz et le circuit de download de la UNO (La UNO n'a subit aucune modification).
Voila la "bête"
Bonjour Icare
"pakon"
sur ce coup là, je ne te serais pas d'une grande aide
mais bidouille pour bidouille
je deriverais le support DIP d'origine du uno vers un ZIF
je fais ça de temps en utilisant de la nappe IDE de recup (2X20)
attention : sur les nappes IDE 2X20 sur une des lignes il y a un point generalement obturé
icare:
Il me reste à résoudre l'intégration des pins dans l'environnement IDE Arduino pour pouvoir utiliser les pinMode, digitalWrite, etc ...
Si quelqu'un a une idée sur les fichiers à adapter, je suis preneur.
Bonsoir,
Merci de vos réponses, je vais étudier tout çà.
@+
[EDIT1] Tout fonctionne et on a finalement une super-UNO avec 128kO FLASH, 4kO EEPROM, 16kO SRAM, 8 entrées analogiques et 23 I/O. Le tout pour moins de 8€ (en plus de la carte UNO bien sur).
Le temps de mettre mes notes en forme et je vous livre le dossier complet de la modification.
Pour l'intégration dans l'environnement Arduino, il existe une multitude de solutions et j'ai choisi celle qui se rapproche le plus du pin mapping de la UNO.
@+
Bonjour,
Pour intégrer l'ATmega1284p dans l'environnement Arduino, il existe de multiples solutions (Sanguino, Bobuino, Breatroller, Calcium, BahBots, etc...) pour ma part j'ai retenu mighty-1284p car le plan d'affectation des pins et le plus proche de la UNO (mais toutes les autres solutions restent valides).
Vous trouverez ci-dessous le tableau d'affectations des pins entre le 328p et le 1284p permettant de réaliser la carte d'interface.
Re,
Pour la partie logiciel j'ai utilisé la description Mighty1284.
Les fichiers utilisés se trouvent ici.
Après décompression, il y a lieu de copier le répertoire mighty-1284p dans le répertoire hardware de Arduino.
Avec cette configuration, on a accès à 5 modes d'utilisation différents mais pour mes besoins, je n'ai utilisé que Mighty 1284p 16 MHz using Optiboot. Les autres options ont été commenté (#) dans le fichier boards.txt du répertoire mighty-1284p.
Avant d'utiliser la carte, il y a lieu de programmer le bootloader du 1284p. Pour réaliser cette opération, il faut utiliser un programmateur USBasp ou USBtiny.
Du fait de l'ajout du circuit "adaptateur", l'utilisation de shield devient impossible. Alors pourquoi ne pas mettre simplement un quartz sur ton PCB et bricoller un shield type arduino qui t'offre un connecteur permettant d'envoyer Alim, Reset et Rx/Tx (5 fils) sur ton PCB? Tu obtiendrais alors une platine stand-alone que tu pourrais reprogrammer à souhait en la connectant simplement à ton arduino dépourvu de 328p.
C'est ce que j'avais fait pour reprogrammer des cartes sparkfun (ATMEGA128), et ça marchait très bien...
Ca marche aussi pour des petits projets avec un 328p en stand-alone, ça coûte juste un arduino en DIP... J'ai d'ailleurs toujours dans l'idée de fabriquer une petite plateforme en partant d'un arduino DIP : en séparant le 328p de la carte, on aurait alors le FTDI pour l'USB et donc la programmation d'autres ATMEGA et en bricolant un peu, le 328 passerait sur un petit circuit à côté (via un sélecteur) pour flasher des boot-loader avec "arduino as ISP"... le tout dans une petite boîte, de quoi adapter n'importequel ATMEGA en arduino.
Ce ne sont que des idées, si ça peut t'en donner...
Du fait de l'ajout du circuit "adaptateur", l'utilisation de shield devient impossible. Alors pourquoi ne pas mettre simplement un quartz sur ton PCB et bricoller un shield type arduino qui t'offre un connecteur permettant d'envoyer Alim, Reset et Rx/Tx (5 fils) sur ton PCB? Tu obtiendrais alors une platine stand-alone que tu pourrais reprogrammer à souhait en la connectant simplement à ton arduino dépourvu de 328p.
C'est ce que j'avais fait pour reprogrammer des cartes sparkfun (ATMEGA128), et ça marchait très bien...
Ca marche aussi pour des petits projets avec un 328p en stand-alone, ça coûte juste un arduino en DIP... J'ai d'ailleurs toujours dans l'idée de fabriquer une petite plateforme en partant d'un arduino DIP : en séparant le 328p de la carte, on aurait alors le FTDI pour l'USB et donc la programmation d'autres ATMEGA et en bricolant un peu, le 328 passerait sur un petit circuit à côté (via un sélecteur) pour flasher des boot-loader avec "arduino as ISP"... le tout dans une petite boîte, de quoi adapter n'importequel ATMEGA en arduino.
Ce ne sont que des idées, si ça peut t'en donner...
A pluche!
Merci pour tes remarques.
L'idée de départ était d'utiliser le hard de la UNO et uniquement remplacer le processeur et d'ajouter les quelques I/O supplémentaires.
On peut mettre certains shields en intercalant des connecteurs mâles/femelles (photo d'ici ce soir).
Entre temps j'ai commandé un PCB qui permet la mise en place du 1284P comme un shield mais les délais de livraison chinoises sont très longs. Ce PCB presente encore quelques défauts d'ergonomie mais sera résolus dans la révision suivante (photos prochaines).
J'ai également fait une version autonome à base de 1284P en version plaque à pastilles pour l'instant (PCB en cours).
Idem pour le 328P.
Cette carte à base de 328p permet une utilisation "normale" ou directement sur le breadboard
En attendant les PCB, voila 2 versions pour transformer une UNO en super UNO.
infobarquee:
hahahahaha, ca m'aurait étonné aussi
sacré Artouste
on ne se refait pas 8)
@ Icare , je regarderais mieux et plus precisemment plus ... tard 8) , mais si j'ai bien tout suivi
il suffit simplement d'ajouter une clock pour que ton board (chargé) soit/devienne autonome ?
si le 1284 se comporte là dessus comme un 328 (sans aucune modif soft)
un simple oscillateur doit etre suffisant .
Artouste:
@ Icare , je regarderais mieux et plus precisemment plus ... tard 8) , mais si j'ai bien tout suivi
il suffit simplement d'ajouter une clock pour que ton board (chargé) soit/devienne autonome ?
si le 1284 se comporte là dessus comme un 328 (sans aucune modif soft)
un simple oscillateur doit etre suffisant .
Non, il n'y a rien à rajouter le 1284p est connecté aux pins qui vont bien du 328p et les i/o sup sont câblés sur le PCB.
Le 1284p utilise le quartz de la carte UNO et la liaison USB vers TX et RX.
Il suffit de programmer le bootloader qui va bien (voir plus bas ou haut suivant ton format d'affichage).
L'idée de départ était d'utiliser un 1284p qui dormait sur un coin d'une table et de profiter de l'ergonomie de la UNO avec les capacités du 1284p (128k flash, 16k RAM et 4k EEPROM)
Artouste:
@ Icare , je regarderais mieux et plus precisemment plus ... tard 8) , mais si j'ai bien tout suivi
il suffit simplement d'ajouter une clock pour que ton board (chargé) soit/devienne autonome ?
si le 1284 se comporte là dessus comme un 328 (sans aucune modif soft)
un simple oscillateur doit etre suffisant .
Non, il n'y a rien à rajouter le 1284p est connecté aux pins qui vont bien du 328p et les i/o sup sont câblés sur le PCB.
Le 1284p utilise le quartz de la carte UNO et la liaison USB vers TX et RX.
Il suffit de programmer le bootloader qui va bien (voir plus bas ou haut suivant ton format d'affichage).
L'idée de départ était d'utiliser un 1284p qui dormait sur un coin d'une table et de profiter de l'ergonomie de la UNO avec les capacités du 1284p (128k flash, 16k RAM et 4k EEPROM)
oui Icare , ça j'avais compris 8)
apparté sur les cadencements :
sur les R2 (R3 je ne sais pas) Uno le QZ est à l'usage du 16U2, le 328 lui n'a droit qu'à un simple resonnateur
Mais si l'on veux utiliser ton board en standalone (avec un programme prealablement chargé) en faisant l'impasse de l'interface RX/TX pour progr et de la gestion du 3.3V venant du 5V, il suffirais donc simplement d'apporter du (bon) 5V et de fournir une clock pour que l'icareduino devienne autonome ?
Artouste:
Mais si l'on veux utiliser ton board en standalone (avec un programme prealablement chargé) en faisant l'impasse de l'interface RX/TX pour progr et de la gestion du 3.3V venant du 5V, il suffirais donc simplement d'apporter du (bon) 5V et de fournir une clock pour que l'icareduino devienne autonome ?
Oui c'est exact,
Par ailleurs je l'utilise ainsi. Il suffit de mettre le quartz 16MHz (éventuellement 20 MHz) + 2 capa 22pF.
A partir de cette configuration, tu as 2 possibilités :
1)
mettre le bootloader 16MHz ou 20MHz,
convertisseur usb / série TTL
adaptation de l'environnement Arduino et cela fonctionne comme toutes les autres cartes Arduino
Je crois que ce qu'Artouste voit, c'est de déconnecter ton adaptateur de la carte arduino. Mais je crois que ça ne marcherait pas car tu dois utiliser le routage de la carte arduino pour les connecteurs standarts (0 à 13 et A0 à A5).
Super_Cinci:
Je crois que ce qu'Artouste voit, c'est de déconnecter ton adaptateur de la carte arduino. Mais je crois que ça ne marcherait pas car tu dois utiliser le routage de la carte arduino pour les connecteurs standarts (0 à 13 et A0 à A5).
Oui, c'est bien ça, je n'avais pas compris du premier coup.
Si ça marche, il suffit de mettre le quartz avec ces 2 capas ou une source d'horloge externe.
Par contre, on aura un pin mapping différent de la UNO (ce qui est de toute façon le cas)
@+
Par le plus grand des hasards un exemplaire de l'icareduino c'est retrouvé dans ma boite au lettre
Je vais monter tout ça dans la journée
Pour le moment à par les problèmes (semble-t-il connu) de diamètres de perçages il y a juste un ou deux petits détails qui me font peur.
Au niveau des vias, pourquoi ceux-ci ne sont pas recouvert par le vernis ?
Normalement les vias ne sont pas inclut dans le masque de protection par les logiciels de CAO.
Autre chose à propos des vias, juste en dessous du m1284p il y a un certain nombre de vias, dont deux qui me semblent dangereusement proches des broches du m1284p/m328p. Lors de l'étape de soudure il faudra être très prudent pour ne pas faire de pont.
Sinon l'idée d'une shield de "mise à jour cpu" n'est pas conne du tout. Ça me rappelle un peu les cartes de dév de MikroElektronika