[Projet] Bi-ATmega644

zoroastre:
que le port rs485 se pilote comme à mon souvenir, c'est dire parfaitement, et que l'i2c ne pose pas de problème particulier dans un configuration maitre/esclave ou même avec plusieurs maitres.

Commentaire intéressant.
Il faudra que je t'en reparle à l'occasion....

Yep!

Avant de reprendre en partie le projet, j'avais comme problème essentiel de pouvoir programmer indépendamment mes deux uC.

C'est donc un gros point noir que je viens de résoudre ce matin même : Il suffit en fait de couper la liaison SCK sur l'un ou l'autre des uC (logique en fait !!!).

Un simple cavalier officiera sur le prochain proto.

Afin d'economiser du materiel, je ferais les remarques suivantes : 1 seul oscillateur peut cadencer les 2 uC (voir post : 2 arduino + 1 oscillateur - #3 by zoroastre - Français - Arduino Forum ), 1 seul brochage ISP avec un cavalier 3 broches sur SCK (programmation indépendante des chip) et pour finir, 1 seul bouton reset commun (si besoin).

D'autres changements seront apportés dont essentiellement : alimentation indépendante du proto et connectiques pass-through pour empilage sur carte fille.

D'un point de vue programmation, il y a ceci qui permet une gestion des tâches (pour rebondir sur le commentaire de skizoh) : http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=95490

@+

Zoroastre.

EDIT1 :

salut zoroastre,

je suis avec intérêt ton projet :wink:
Je suis entrain de développer une version musclée de la mainboard xPLDuino avec l'aide de l'équipe. Je compte utiliser un atmega1284p pour cela.
Alors une question me vient: pourquoi un 644p alors que le 1284p offre de meilleur prestation pour un coût identique ?

Gromain

Belle avancé :slight_smile: dit moi, tu sera le seul bénéficiaire de ce bijou ou dans l'avenir on pourra y goûté? a la sauce remix ARDUINO ou snootlab que sais je ^^

Moi en tout cas si tu l'industrialise je t'en prend une :slight_smile:

Skizo !

Yep!

Gromain59, j'avais deux 644p sous la main et ne sachant quoi en faire, l'idée m'est venu de les associer sur une seule carte. Voilà le pourquoi tout simplement :wink:
De plus, il faut prendre en compte le routage du typon, mon but est d'éliminer tout strap et de router le circuit sur une seule face (en essayant de respecter les règles conventionnelles). Ce n'est pas une tâche facile d'autant plus que je suis plutôt débutant aussi bien sur les cartes arduino que sur la partie électronique. Par chance, la communauté documente bien ses travaux et les circuits standalone sont disponibles à profusion.
J'ai testé le routage sur deux 328, brièvement, et pour l'instant je n'en suis pas satisfait. Peut être que j'essaierais sur la gamme des 1280 dip. En effet, il n'est pas toujours évident et j'ai fortement l'impression que les constructeurs de chips font tout pour nous compliquer le travail :grin:

Je disposerais de mes travaux complets dés validations finales et réceptions, dans l'idéal, en proposant une carte fille.

skizoh, Si tu m'en achètes 1000, çà peut s'arranger :wink:
Plus sérieusement, je n'ai pas l'intention de commercialiser ce qui reste à considérer comme un prototype ou une vulgaire experience de laboratoire.
Si le projet prend de l'envergure et apporte de véritables solutions à des problèmes de gestion domotique ou robotique, la disponibilté du typon sera gratuite et sans contrainte. Des graveurs professionnelles ou amateurs pourront à loisirs et pour quelques euros te faire le pcb.

Ce qui demeure à mes yeux interessant pour l'heure sont les considérations sur le quartz et la gestion du SCK pour ISP.

Nouveau proto (non finalisé) :

  • Les connectiques seront pass-through = stackable (encore 4 groupes à implanter).
  • Il manque le bornier d'alimentation (ou jack ou broches)
  • emplacement second quartz ou pas (+ cavalier entre les 2 CI) ?
  • Faut-il mettre l'impédance + condo pour l'ADC (vf datasheet) ?
  • Plan de masse ?

(Par rapport au proto précedent, j'ai donc supprimé la partie alimentation et je remets les éléments sur la carte fille : Cette version me semble beaucoup plus cohérente et modulable).

Il y a encore des ajustements à faire sur les espacements entre composants et je dois regarder aussi à ne pas trop surcharger de pistes sous les µC.

@+

Zoroastre.

stackable (femelle au dessus, mâle en dessous) :

Les connectiques seront pass-through

Les connecteurs seront a piquer. :grin: :grin:

<mode : sérieux>
Soigne particulièrement le plan de masse et les découplages, surtout du coté analogique .
Un bon condensateur de découplage n'est pas obligatoirement celui qui à la plus forte valeur, un bon compromis est un condensateur chimique (ou tantale) de plusieurs µF qui peut être raisonnablement à quelque distance des accès à découpler et un condensateur céramique de 10nf ou 100nF plus petit mais câblé au plus court, l'idéal est de prendre des condos CMS en format 1206 ou 0805, 0603 c'est faisable mais il faut des bons yeux ou une bonne loupe.

Prévoit aussi des holes trous pour des reprises de masse près des connecteurs des E/S.
Cela manque sur les conceptions Arduino surtout pour les entrées analogiques, toujours elles.

Yep!

Merci pour les conseils 68tjs, effectivement j'ai omis de parler des condos de découplage, je prends régulièrement une valeur de 100nF (1/CI).

Pour les connectiques, j'avais pensé un moment à disposer carrément des 3 broches principales, Pin + Gnd + Vcc, un peu comme sur les shields mega. C'est idéal pour connecter des sondes bien en face de l'entrée arduino.
Par contre, je n'avais pas songé à disposer uniquement de la masse et c'est une trés bonne idée que tu viens de me suggérer. :smiley:

Je vais regarder çà attentivement.

@+

Zoroastre.

Yep!

Nouveau proto :

Ancien proto en bas, le nouveau plus concis en haut :

Les premiers tests sont bons : blink + com I2C.

Je n'ai pas encore sérigraphié de shield pour l'instant, suite à mes premiers dessin, je me suis rendu compte qu'en serrant trop les connectiques, il devenait difficile de placer des composants sur les cartes filles. J'ai donc écarté les connecteurs stackables afin de laisser un peu plus de place.

@+

Zoroastre.

Beau travail.

Remarque :
Je ne vois pas les perçage pour les fixations (vis, colonnettes etc).
Par contre je vois des pistes qui passent bien dans les angles :expressionless:
Cela serait bien s'il était possible de fixer ton Bi-ATmega644 sur un support.

Serait-il possible d'avoir le schéma électrique en format Kicad ou à défaut en pdf?

Yep!

Les connectiques à chaque bord sont donc des connecteurs stackables avec deux possibilités, une carte mère en dessous et une carte fille au dessus. C'est comme celà que j'imaginais la chose.

D'ailleurs, j'ai réalisé la carte suite à ce sujet : http://arduino.cc/forum/index.php/topic,111211.msg855128.html#msg855128

68tjs:
Cela serait bien s'il était possible de fixer ton Bi-ATmega644 sur un support.

Oui, les percages pour les fixations, vis manquent cruellement. Je pensais à pourvoir des connectiques vierges afin d'embrocher la carte sur la carte mère. Une solution certe un peu batarde :grin:
Le problème est de choisir entre une fixation globale (x4) ou par moitié (x8) pour le shield et qui ne tombe pas en face de celle de la carte mère, je n'ai pas encore réellement choisi et plus tu sers moins tu as de place XD

Je te joins volontiers les fichiers kicad et apprecierais toute aide ou optimisation susceptible d'être apportées :wink:

Sur la carte du dessous, j'envisage deux liaisons rs485, une eeprom ainsi qu'une horloge temps réel pour l'instant.
(+ ENC28 si j'ai assez de place)
La carte du dessus serait une shield afin de faciliter la connection de sondes/afficheurs/etc.
(J'utiliserais certainement des plaques à pastilles dans un premier temps.)

REMARQUE sur les fichiers kicad :

1 - le shematic est bordelique à souhait (pas encore eu le temps de mettre au propre)
2- J'ai du regrouper les fichiers car sur la fin j'ai exclusivement travailler sur le typon, plus tout à fait dans le repertoire d'origine du projet(sauvegarde +1, sauvegarde +2, etc).

###REGLES DE CONCEPTION###
PISTES : 0.5 mm
VIA : 1.8 mm
PERCAGE : 1 mm
PISTES-- : 0.3 mm

###LISTE MATOS###
atmega644P x2
quartz 20Mhz x1
condensateur 22pF x2
condensateur 100nF x2
résistances 4,7K (appliquées à l'I2C) x2
résistance 10K (appliquée au RESET) x1
connecteurs 8 "stackables" x6
connecteur 6 "stackables" x 4
6 broches ISP
3 broches SCK + cavalier
bornier +/-

@+

Zoroastre.

EDIT1 :

bi-atmega644.tar (640 KB)

Merci, je regarde dès que j'ai le temps.
Mais en ce moment je suis plus avec les pinceaux et les pots de peinture qu'avec Arduino.
Donc si le kicad installé sur mon PC veut bien tout ouvrir sans raller ça devrait aller sinon s'il faut que je mette les mains dans le cambouis ce sera pour un peu plus tard.

Yep!

Je travaille avec 2 versions de kicad, une sur ma linux Debian, l'autre étant une version portable chopée sur PortableApps.com pour windows. Cette dernière version me permet d'avoir kicad sur clé usb partout avec moi :wink:

http://portableapps.com/node/30675

L'une ou l'autre râlent aussi de temps en temps, j'ai un peu mis le foutoir dans les librairies :grin:

Pour le temps, ne t'inquiètes pas trop, je suis sur 2/3 trucs en simultanés...et il faut que j'élague sérieusement :stuck_out_tongue_closed_eyes:

@+

Zoroastre.

Mon Kicad est bien élevé: il n'a rien dit et il a ouvert gentiment tes fichiers.

J'ai déjà des petites propositions a te faire, je reprendrais l'examen entre deux couches de peinture histoire de me changer les idées : je hais la peinture ]:slight_smile:

Premières impressions favorables:

Mais en préambule je gronde !
C'est pas bien de modifier directement sur l'implantation en court-circuitant le schéma : tu crois gagner du temps mais au final tu va bien te faire c****r pour remettre le schéma d'aplomb sans rien perdre de ton travail d'implantation/routage.

Découplage :
Je me base sur le pcb et je ne vois que 3 capa par micro : 2 pour le quartz et une pour Vcc.
Cela ne fonctionnera pas correctement. Plutôt qu'un long discours télécharge la note d'application Atmel AVR042 qui contient des consignes d'implantation notamment du coté des entrées analogiques et de AVcc qui ne doit pas être relié directement à Vcc.
Je prendrais des condensateurs CMS qui ont moins d'inductance parasite que ceux à piquer et par conséquence qui découplent beaucoup plus efficacement.

Masse :
Bien pour les reprises de masse près des entrées notamment analogiques. Ce n'est pas visible sur l'implantation mais est-il possible que le connecteur soit à double rangées signal+ masse et accepte un connecteur pour une nappe ? (Nappe : signal/masse/signal/masse/ etc)

**SDA/SCL **
Suggestion : Un connecteur dédié pour réserver ces pins à cette seule utilisation ?

Mes marottes à moi :

  1. Je sépare strictement les organes de commandes des organes de puissance. Ce qui se traduit dans le cas présent : le micro ne doit fournir aucune puissance ce n'est pas son rôle.
  2. D'autre part j'ai toujours considéré qu'une carte bien conçue doit supporter des court-circuit sur ces entrées/sorties.
    Un court-circuit à la masse sur une sortie CMOS à l'état "1" et c'est la mort du transistor de sortie.
    Imagines que tu relies deux micros : une sortie du micro 1 déclenche une interruption sur une entrée du micro2.
    Que se passe-t-il si en modifiant le programme tu place accidentellement l'entrée du micro2 en sortie ?
    Si les deux pins sont au même niveau logique il ne se passe rien, si les niveaux logiques sont différents ça fume !
    Et c'est bien connu que des erreurs en modifiant un programme cela n'arrive jamais.
    La seule loi physique que j'ai toujours vu vérifiée est que quoi qu'on fasse l'emrdemnt est toujours maximum.
    Sur les cartes arduino il y a une double protection : le polyfusible et l'usb qui se met à genoux.
    Dans ton cas tu auras une alim extérieure qui ne se mettra pas à genoux donc exit le micro. Avec un boîtier DIP sur support ça passe encore mais avec un autre micro en boîtier cms ce serait rédhibitoire.

Solution commune à ces deux marottes:
Comme les entrées des périphériques du micro sont à haute-impédance il est possible de placer des résistances de protection en série entre le micro et les connecteurs.
Pas de composants à piquer, bien sûr, mais des 0402 (tu es encore jeune, tu as encore de bons yeux) ou des 0603, valeur entre 250 et 1kohms. Au cas par cas il sera toujours possible de les court-circuiter si le besoin s'en fait sentir..
Mais ça ce sont des marottes personnelles, ne pas les suivre n'empêchera pas de fonctionner mais faudra pas faire de bêtise.

J'en profite pour signaler que bien qu'on utilise dans le langage courant les termes 805, 603, 402 pour le format des cms, le nom officiel est 0805, 0603, 0402 et ce n'est pas par hasard..
Calculs des dimensions des CMS résistifs ou capacitifs
xxyy = longueurLargeur en 1/100 d'inch
Donc pour le format 0603
longueur =0,06 * 25.4 = 1,52 mm
largeur=0,03 * 25,4 = 0,76 mm
Format 402 longueur 1mm, largueur 0,5 mm --> il faut soit des bon yeux soit après 45 ans une bonne loupe sur pied mais dans les deux cas ça se câble assez facilement.

Edit : j'oubliais pour le découplage de AVcc puisque tu as accès à RS en professionnel regarde pour la self du coté des blm de Murrata, c'est très efficace ces petites bêtes là.

Yep!

Je te remercie vivement pour le temps passé et tes recomandations :smiley:

Mais en préambule je gronde !

Je sais, je sais :grin: J'avais prévenu que c'était le foutoir. Je vais devoir passer quelques heures à tout remettre d'aplomb...

Découplage

Je n'avais pas cette note, et effectivement, j'ai quelques carences au niveau des découplages.
Par contre, je réchigne encore à passer au cms : j'ai l'impression que cela rendrait mon typon moins accéssible.

Masse :

Pour les connecteurs doubles, c'est tout à fait envisageable. Il faut que je valide encore certains choix technologiques et les connecteurs en font partie même si au demeurant, une de mes contraintes est la connectique "stackable".

SDA/SCL
Suggestion : Un connecteur dédié pour réserver ces pins à cette seule utilisation ?

Là, je suis tout à fait dans ce sens, sur le dessin, j'ai tout regroupé pour plus de facilité et également parce que j'ai aussi pensé avec le matos que j'avais commandé/sous la main.
Il en sera de même d'ailleurs de Vcc et Gnd, et je supprimerais la pinoche XTAL1 sur le second cpu qui est inutile.

Je pense avoir dégrossis le travail pour l'instant. Je vais m'atteler à soigner le découplage et réflechir encore à certaines hypothèses et aux choix à faire.

J'ai remarqué aussi que dans mes écarts entre connectiques, je n'ai pas respecté le pas et rend ainsi la carte impossible à embrocher sur une plaque de test.

Quelques pistes peuvent être mieux dessinées.

Les dimensions actuelles me plaisent bien, mais des fixations seraient un plus. Il faut que je regarde çà aussi.

En tout cas, je te remercie encore et n'hesiterais pas à montrer mes avancées à la communauté dans les prochaines semaines (j'espère pouvoir proposer une version finale pour octobre 2012).

@+

Zoroastre.

Par contre, je réchigne encore à passer au cms : j'ai l'impression que cela rendrait mon typon moins accéssible.

Il n'y a que des avantages a passer aux CMS surtout que tu n'as pas de problème d'appro.

Tu élimines les perçages et tu gagnes de la place. Pour les condensateurs tu diminues drastiquement les longueurs de connections néfastes pour les découplages.

Et question soudure c'est ultra simple, pour dessouder il faut un peu d'astuce. Ne surtout pas utiliser des fers spéciaux : ils coûtent chers et ne sont pas efficaces. Le mieux c'est d'utiliser deux fers à souder, tout ce qu'il y a de normaux, un dans chaque main, de chauffer les deux extrémités du cms en même temps et de retirer le cms en le pinçant entre les deux pannes.

Essayes une fois et tu verra que tu ne pourra plus te passer des CMS. Il faut juste faire attention aux puissances : plus le format est petit plus la puissance est faible, ce est tout à fait compréhensible.

Pour les résistances en protection, ce matin je me suis rappelé que j'avais vu un schéma "bizarre" dans la dernière norme I2C.
J'y ai jeté un oeil et effectivement le schéma incorpore des résistances séries en protection qui me paraissent bien utile quand on veut faire dialoguer deux microcontroleurs par I2C.
Et si des protections sont prévues dans la norme c'est bien que des fois tout ne se passe pas toujours comme prévu ?
La loi de la tartine beurrée se vérifie tous les jours.

http://www.nxp.com/documents/user_manual/UM10204.pdf
Page 58.
7.3 Series protection resistors
fig 45

SALUT,
belle projet, et peut donner quelque chose de puissant qui se passe si vous créez une manière simple d'utiliser une tache sur la distinction entre place rapide et lente, le début d'une belle chance :slight_smile:

Merci.

J'ai beaucoup appris à travers ce projet. Je n'ai cependant pas encore eu le temps ni la patience d'appliquer cette expérimentation sur un sujet précis. Je songe à m'y remettre sérieusement.

@+

Zoroastre.

Salut et heureux de te voir de nouveau sur le forum.