icareDuino

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" :wink:

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" :wink:

Bonjour Icare
"pakon" :grin:
sur ce coup là, je ne te serais pas d'une grande aide
mais bidouille pour bidouille :grin:
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é

Salut,

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.

Tu devrais pouvoir trouver ton bonheur ici : GitHub - maniacbug/mighty-1284p: Mighty 1284P Platform for Arduino

Bin l'atmega 1284 est pris en charge par Arduino depuis longtemps :o

pinout correspondant => http://forum.arduino.cc/index.php/topic,146315.0.html

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.

La même chose en version schéma électronique.

Les entrées/sorties avec les repères Arduino.

Les liaisons RX0 et TX0 sont utilisées pour le téléversement des sketchs.
A suivre la partie logiciel...

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.


Le répertoire mighty-1284p contient les répertoires et fichiers suivants :

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.

  1. Choisir la carte.
  2. Choisir le programmateur.
  3. Graver la séquence d'initialisation.

A partir de maintenant, on peut utiliser icareDuino comme une carte normale dans l'IDE Arduino.

Comparaison entre différents micro-contrôleurs

                   ATmega 328p             ATmega 1284p           ATmega 2560p
RAM                     2k                      16k                    8k
FLASH                  32k                     128k                  256k
EEPROM                  1k                       4k                    4k
UART                    1                        2                     4
IO pins                23                       32                    86
Interrupts              2                        3                     8
Analog inputs           6                        8                    16

Bonne amusement avec cette super UNO si cela vous intéresse :wink:
@+

Re,
En prime :wink:
CI côté cuivre


CI côté composants

CI ensemble

@+

Salut,

Excellente initiative, et je me permets :

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!

Bonjour Super_Cinci,

Super_Cinci:
Salut,

Excellente initiative, et je me permets :

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.

@+

Bonsoir,
New look for icareDuino


Le lecteur aura rectifier 318 en 328 (merci Artouste)

icare:
Bonsoir,
New look for icareDuino

bonsoir Icare
C'est joli et propre
Je ne sais passi tu a du stock de PCB "en rab" 8)
mais okazou , je suis par curiosité intéressé par un ex

hahahahaha, ca m'aurait étonné aussi :slight_smile:
sacré Artouste

infobarquee:
hahahahaha, ca m'aurait étonné aussi :slight_smile:
sacré Artouste

:grin:
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 .

http://forum.arduino.cc/index.php?topic=203695.msg1500161#msg1500161

Re,

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)

icare:
Re,

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 :grin:

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 ?

Re,

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
  • traitement de texte + gcc
  • programmation via ISP sans bootloader

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).

Bonjour Super_Cinci,

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)
@+

Salut,

Par le plus grand des hasards un exemplaire de l'icareduino c'est retrouvé dans ma boite au lettre :grin:
Je vais monter tout ça dans la journée :wink:

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 :grin: