Arduino -> carte DIY : la programmation via serial ne marche pas...

Bonjour,

Je viens de développer un petit prototype de module électronique sur la base d'une carte arduino mini (328 5v 16mhz). Maintenant que tout marche bien, j'ai tenté de faire ma propre carte électronique ayant ses propres capteurs dessus et avec un 328p (dip28) sur lequel j'ai mis le bootloader de l'arduino mini.

Seulement voilà, impossible de reprogrammer l'atmel328 directement sur ma carte avec le programmateur arduino que j'utilisais pour le prototype (c'est un USB2SERIAL LIGHT). J'ai donc tenté de mettre le µC sur une arduino uno, j'ai sélectionné le bootloader de la mini, et le téléchargement de mon programme se fait sans difficulté. De retour sur la carte avec le programme inscrit dessus, le µC fait son boulot et la carte fait ce qu'elle est censé faire... Donc à part le téléchargement, ma carte fait maison marche. Alors pourquoi je n'arrive pas à reprogrammer mon µC directement dessus ?

J'ai tenté d'inverser Tx et Rx, vérifié la conductivité de mes pistes entre le µC et les pin de programmation, j'ai enlevé/remis le µC plusieurs fois du socket pour écarter des problèmes de mauvais contact, fait des resets à la main au moment du téléchargement, mais rien n'y fait...

Auriez vous idée d'une piste que je puisse explorer pour résoudre le problème ?

En vous remerciant.

Il faut un condo en série sur le RST :

DTR (RST) --- condo 100 nF ---- pin RST

Suffit de s'inspirer de la schématique UNO :

http://arduino.cc/en/uploads/Main/arduino-uno-schematic.pdf

J'ai cru voir qu'il n'y a rien d'autre que le connecteur de prog sur RX et TX, c'est une bonne chose.

Mais en effet, un reset manuel n'est pas top, car il faut le faire au bon moment... si comme le dit B@tto il y a une capa, il faut peut-être la court-circuiter...

Si bien sur la capa n’est pas intégré au dongle USB <-> serie

Je trouve que la soudure sur la broche RX du connecteur n'est pas terrible

B@tto:
Si bien sur la capa n’est pas intégré au dongle USB <-> serie

Sur le schéma de l’USB2SERIAL LIGHT il n’y a pas de condensateur sur la ligne reset.

Merci pour vos réponses.

Je viens de rajouter un condo céramique de 100nF en série entre le reset du programmateur et de ma carte, mais cela n'a rien changé.

La led RX du programmateur clignote très brièvement 3 fois au moment ou je lance le téléchargement, puis plus rien jusqu'à ce que j'ai l'erreur habituelle sur l'IDE d'arduino :

avrdude: stk500_getsync(): not in sync: resp=0x00

Dans le doute, j'ai également refait les soudures qui inquiétaient fdufnews.

D'autre idées ?

il faut que la liaison reset soit directe, surtout rien en série dessus!

Bhé c'est ce que j'avais à la base... Sachant que Tx et Rx font de même et que ces pins ne sont utilisés pour rien d'autre, je dois dire que je sèche un peu...

Super_Cinci: il faut que la liaison reset soit directe, surtout rien en série dessus!

Et non [u]il faut[/u] une capa 100 nF [u]en série[/u]. Regarder la schématique de la UNO

Pour faire simple, personne ici n’a deja essayé de faire une carte avec un atmel328 et le bootloader de la mini ?

Je suis d'accord avec B @tto : IL FAUT un condo de 100nF en série sur la liaison reset et un pull-up de 1K à 10K entre la broche reset du CPU et le VCC.

Le fait que la led clignote 3 fois au moment où tu lance le téléchargement montre que le RESET fonctionne et que le bootloader se lance.

Tu dis que tu as utilisé le bootloader de la Mini et non pas le bootloader de la UNO. Pourquoi ? Quel bootloader as tu choisit exactement ? Tu as dis que le même ATmega328 marchait quand tu le plaçait sur ta UNO. Le choix de "Board" dans l'IDE est bien le même quand tu utilises le CPU sur la UNO et sur ta carte ? Quel est-il ?

chez moi et mes 20 ans d'électro, j'ai toujours mis une capa entre le reset et le gnd, avec une pullup à VCC, mais jamais en série... et la dernière carte que j'ai faite, le reset est en liaison directe et ça marche.

mais en stand alone, j'utilise le bootloader UNO, et c'est plutôt de ce côté que ça coince, non? après tout, une capa en série sur le reset laissera passer un reset quand même...

Et chez moi ça n'a jamais marché sans capa (je l'oublis souvent ...). Attention on parle bien de l'up via série, évidemment pas pour up via ISP.

Sinon Barbudor m'y fait penser mais il n'y a pas de résistance de pull up sur le RST.

Moi je constate : schema de la UNO ci-dessous :

Un pull-up sur le VCC
Une capa série qui sert a faire une impulsion courte quelque soit la durée de l’impulsion sur le DTR. Sans cette capa et si le DTR reste à 0, alors le chip reste en reset.
Peut être pas indispensable mais il doit y avoir un historique pour que cette capa soit là…

J’ai jamais essayé sans et j’ai systématiquement remis ces 2 composants sur mes cartes…

Je dois être con pour faire pareil sans me poser de question :roll_eyes:

EDIT : j’ai oublié l’extrait de schéma

barbudor: Tu dis que tu as utilisé le bootloader de la Mini et non pas le bootloader de la UNO. Pourquoi ? Quel bootloader as tu choisit exactement ? Tu as dis que le même ATmega328 marchait quand tu le plaçait sur ta UNO. Le choix de "Board" dans l'IDE est bien le même quand tu utilises le CPU sur la UNO et sur ta carte ? Quel est-il ?

Le choix dans le menu de selection de la carte est systématiquement "Arduino Pro or Pro mini (5V/16Mhz) w/ATmega 328". Je précise que j'ai bien gravé ce bootloader sur le µC que je promène entre la UNO et ma carte faite maison (et ça marche sur la UNO). J'utilise ce bootloader car c'est celui de l'arduino mini que j'ai utilisé pour faire mon prototype et qu'en plus, je trouve que la mini est ce qui ressemble le plus à mon électronique.

Le fait que la led clignote 3 fois au moment où tu lance le téléchargement montre que le RESET fonctionne et que le bootloader se lance.

Donc pas la peine que je rajoute un PULL-UP pour tester !?

Du coup, une idée de ce qui peut poser problème ??

En vous remerciant.

barbudor: Le fait que la led clignote 3 fois au moment où tu lance le téléchargement montre que le RESET fonctionne et que le bootloader se lance.

Je viens de refaire quelque test, notamment en débranch

barbudor: Le fait que la led clignote 3 fois au moment où tu lance le téléchargement montre que le RESET fonctionne et que le bootloader se lance.

Je viens de refaire quelque test, notamment en débranchant le reset, et j'ai exactement la même chose... 3 petits clignotement puis rien. Je vais tester en mettant le reset en pull-up...

Attention : c'est la LED RX qui clignote, ça ne signifie rien sur le bootloader. La LED sur le pin 13, en revanche signifie un démarrage du bootloader. Donc rien ne dit que ton reset fonctionne.

Sans pull-up ni capa je n'ai jamais réussi à up un prog

Je croyais qu’on parlais de la LED sur la pin 13…
Mettre une LED sur D13 alors pour vérifier.
Effectivement sans Reset ca ne peut pas démarrer.