Go Down

Topic: Problème de communication avec ATMega328 (Read 2098 times) previous topic - next topic

icare

Bonsoir à tous,
J'ai réalisé une petite carte avec un circuit intégré Arduino ATMega 328 (origine Lex....c).
Lorsque j'essaye de charger le programme dans la "bête", j'ai les messages suivants :

Binary sketch size 896 bytes (of 30720 byte maximum)
avrdude : stk500_getsync() : not in sync : resp=0x00
avrdude : stk500_disable() : protocol error, expert=0x14, resp=0x51

Comme je suis complètement perdu, j'aimerai que quelqu'un puisse me dire ce que je dois faire.
Merci pour votre aide
Icare
2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

fdufnews

Dans le menu Tools de l'environnement de développement, tu vérifies :
          1) que tu as sélectionné la bonne carte arduino dans le sous-menu Board
          2) que tu as sélectionné le bon port série dans le sous-menu Serial Port

Maintenant tu dis que tu as fait une carte, si ce n'est pas une carte du commerce il faut commencer par vérifier ton câblage par rapport au schéma.
Les alimentations, le quartz, les condensateurs entre le quartz et la masse, la résistance de tirage au plus sur le reset, le branchement de la sonde de téléchargement sur la carte
Et d'ailleurs, de quel schéma es-tu parti?

icare

Bonsoir,
Merci pour vos éléments de réponse.
Le schéma est issu de la revue Electronique Pratique n°357 page 27.
J'ai déjà vérifié plusieurs fois le câblage de ma carte et d'un point de vue paramètres soft cela semble correcte mais je vais revérifier l'ensemble.
@+
2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

barbudor

Je comprend que tu as acheté le "Circuit intégré "Arduino ATMega328" seul" chez Lex...c ?

Qu'elle carte as tu choisit dans le menu "Board" ?
Avec un chip similaire acheté chez "Sel...c", j'ai du utiliser "Arduino Uno"

Le problème vient probablement de la vitesse de la liaison série qui a été configurée dans logiciel "bootloader" présent dans la flash.
Il faut choisir une "Board" qui marche à la même vitesse que celle du bootloader de ton circuit.

Attention, si tu as acheté un ATMega328 non pré-programmé avec un bootloader Arduino, tu ne va pas pouvoir aller plus loin sans disposer :
- soit d'un programmateur ISP type TinyISP-USB
- soit d'une autre carte Arduino avec son processeur qui pourra te servir de programmateur pour ton circuit "vierge"

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

icare

Bonjour barbdor,

Quote
Qu'elle carte as tu choisit dans le menu "Board" ?

J'ai essayé toute la liste des boards disponibles à base de ATMega328
Pour la communication avec le composant, je dispose sur mon PC d'une interface série et j'ai juste utilisé un convertisseur RS232/TTL
Quote
Attention, si tu as acheté un ATMega328 non pré-programmé avec un bootloader Arduino, tu ne va pas pouvoir aller plus loin sans disposer :

Le composant est bien programmé avec le bootloader Arduino
Merci pour tes conseils et aide
2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

salut,

en partant du principe que le bootloader est bien le bon et que ton cablage est correct, je pencherai pour un problème au niveau de ton convertisseur série/TTL (vécu).

Cause probable:
- la ligne RTS du convertisseur ne provoque par le reset de l'atmega au bon moment
- le Tx/Rx du convertisseur n'est pas correctement connecté au Rx/Tx de l'atmega

Solutions:
- juste avant la fin de la compilation, relache la ligne reset de l'atmega (plusieurs essais seront nécessaires)
- vérifier que Tx de l'un est sur Rx de l'autre.

et j'ajouterais que s'il y a des leds témoins directement sur les lignes Tx/Rx de la liaison série, la communication est bloquée. Les supprimer le cas échéant.

Gromain
"pour résoudre un gros problème, il est souvent plus facile de le diviser en petits problèmes élémentaires..."

projet domotique xPLDuino
IRC: freenode #xplduino

osaka


Cause probable:
- la ligne RTS du convertisseur ne provoque par le reset de l'atmega au bon moment


je penche également pour un problème avec l'auto reset.

http://arduino.cc/forum/index.php?topic=66178.0

barbudor

Est-ce que tu as une led sur D13 (comme l'Arduino standard) ?
Au moment du reset, cette led doit "pulser" 2 fois
Si ce n'est pas le cas c'est qu'il n'y a pas de bootloader dans le chip

Il est peut être temps de poster quelques photos de ton adaptateur USB/série, des schémas, ... pour aider a voir clair ?
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

fdufnews

Quote
Le schéma est issu de la revue Electronique Pratique n°357 page 27

On est pas tous abonné à Électronique Pratique alors ça ne nous aide pas beaucoup.

barbudor

Et sur Me......ad ?
Ah non mince, c'est finit  :smiley-zipper:
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

icare

Salut,


Est-ce que tu as une led sur D13 (comme l'Arduino standard) ?
Au moment du reset, cette led doit "pulser" 2 fois
Si ce n'est pas le cas c'est qu'il n'y a pas de bootloader dans le chip

Il est peut être temps de poster quelques photos de ton adaptateur USB/série, des schémas, ... pour aider a voir clair ?


J'ai bien une diode sur D13 et elle pulse lors d'un reset et même lors de la tentative de download, elle clignote
Je n'utilise pas de convertisseur USB/TTL car le port série est en natif sur le PC
@+
2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

icare

Salut,


Quote
Le schéma est issu de la revue Electronique Pratique n°357 page 27

On est pas tous abonné à Électronique Pratique alors ça ne nous aide pas beaucoup.

Le schéma est joint en annexe au post

2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

icare

Salut,


en partant du principe que le bootloader est bien le bon et que ton cablage est correct, je pencherai pour un problème au niveau de ton convertisseur série/TTL (vécu).
Cause probable:
- la ligne RTS du convertisseur ne provoque par le reset de l'atmega au bon moment
- le Tx/Rx du convertisseur n'est pas correctement connecté au Rx/Tx de l'atmega

Solutions:
- juste avant la fin de la compilation, relache la ligne reset de l'atmega (plusieurs essais seront nécessaires)
- vérifier que Tx de l'un est sur Rx de l'autre.
Gromain


Il est possible que cela vienne de la liaison série, je vais vérifier le bon fonctionnement. Le reset à partir du PC se fait sur RTS ou DTR ?
@+
2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

barbudor


Je n'utilise pas de convertisseur USB/TTL car le port série est en natif sur le PC


Attention, le port série de ta carte en niveau TTL (branché directement sur le chip 0V..5V), celui de ton PC en niveau RS232 (+12V..-12V).
As tu un MAX232 ou similaire pour faire la conversion ?

Sinon "Pfffssshhhhh" fait l'Arduino
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

icare

Salut,



Je n'utilise pas de convertisseur USB/TTL car le port série est en natif sur le PC


Attention, le port série de ta carte en niveau TTL (branché directement sur le chip 0V..5V), celui de ton PC en niveau RS232 (+12V..-12V).
As tu un MAX232 ou similaire pour faire la conversion ?

Sinon "Pfffssshhhhh" fait l'Arduino



Je te rassure il y a bien un MAX232 entre les deux.
@+
2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

Go Up