Go Down

Topic: atmega 328 sur breadboard (Read 1 time) previous topic - next topic

Krayon70

Nov 03, 2018, 07:41 pm Last Edit: Nov 03, 2018, 07:45 pm by Krayon70
Bonjour à tous,

Après des heures de recherches et de lectures sur de nombreux forums (dont celui-ci), je me décide à poster.


Projet : porter un arduino sur une bredboard

Problème : impossible de téléverser un sketch

Matériel :
Arduino UNO, ATMEGA328P, oscillateur 16MHz, condensateurs (2x 22pF, 1x 100nF), 1x résistance de 10k Ohm, FTDI FT232RL

Description :
Je me suis basé sur le tuturiel de U=RI https://www.youtube.com/watch?v=G-ZIcA3fS7c que j'ai suivi à la lettre.
J'ai gravé le bootloader sur mon atmega 328P au moyen de ma carte arduino, sans aucun problème.
Puis j'ai réalisé le montage avec mon FTDI comme dans le tutoriel (cf. image ci-dessus et photos en fin de post).

Description détaillée du problème :
Lorsque j'essaie de téléverser un sketch (ex. blink), la barre de téléversement reste bloquée à 100% pendant plus d'une minute, puis un message d'erreur apparaît en indiquant qu'il y a un "problème de téléversement vers la carte". Voici le message :

avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x07
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x07
Problème de téléversement vers la carte.
Voir http://www.arduino.cc/en/Guide/Troubleshooting#upload pour suggestions.


Infos complémentaires :
Je précise que dans l'IDE Arduinon(menu "Outils"), j'ai bien sélectionné la carte Arduino UNO (puisque j'ai un oscillateur à 16MHz), le programmeur AVR ISP ainsi que le port COM.

J'ai constaté que certaines puces chinoises posaient problème et n'étaient pas reconnues par le pc , pourrait-il s'agir ici du même problème ou le fait d'avoir réussi à graver le bootloader signifie que le processeur est bien "reconnu" ?

Sur le ftdi, il y a un jumper pour commuter entre 5V et 3.3 ; je suis en 5V actuellement, cela pourrait-il être la cause ?

Merci d'avance pour votre aide.






kamill

Bonjour,

On ne voit pas très bien car les fils n'ont pas tout à fait les mêmes couleurs sur les deux photos, mais on dirait que rx et tx ne sont pas croisés.
Il faut croiser tx et rx.

pierrotm777

Puisque vous avez réussi à programmer le bootloader avec un programmateur usbasp je suppose, essayez de verser le programme blink avec ce même programmateur. Si c'est bon, cela voudra dire que votre cablâge n'est pas bon.
Rapprochez le quartz et les 2 condos de l'atmega328. Éloigner un quartz n'est jamais bon.

Krayon70

Bonjour,

On ne voit pas très bien car les fils n'ont pas tout à fait les mêmes couleurs sur les deux photos, mais on dirait que rx et tx ne sont pas croisés.
Il faut croiser tx et rx.
Effectivement, Rx et Tx ne sont pas croisés. J'avais testé en les croisant, sans succès.
Je viens de tester à nouveau en les croisant, le problème persiste.

Tu avais raison, j'avais mal observé le schéma et Tx et Rx doivent effectivement être croisés ! C'est déjà un bon début. Merci

Krayon70

#4
Nov 03, 2018, 09:08 pm Last Edit: Nov 03, 2018, 09:10 pm by Krayon70
Puisque vous avez réussi à programmer le bootloader avec un programmateur usbasp je suppose, essayez de verser le programme blink avec ce même programmateur. Si c'est bon, cela voudra dire que votre cablâge n'est pas bon.
Rapprochez le quartz et les 2 condos de l'atmega328. Éloigner un quartz n'est jamais bon.
Résultat des courses :
Le quartz et les deux condensateurs sont déjà proches du processeur dans MON montage (cf. photo).
J'ai refait le même montage que pour graver le bootloader (j'ai d'ailleurs gravé à nouveau le bootloader) et j'ai ensuite téléverser le sketch "blink" (modifié avec la led en D8). Le téléversement s'est fait sans problème.
Mais le téléversement s'est fait sur l'Arduino utilisé comme ISP et non sur le nouvel atmega328P.

Comment être sûr que j'ai bien gravé le bootloader sur l'atmega328P (de la bredboard) et non sur celui de la carte Arduino UNO.

Y a-t-il un test à faire sur le processeur afin d'être sur que la gravure du bootloader s'est bel et bien effectuée ?

Se pourrait-il que le FTDI FT232RL soit défectueux  ?


Krayon70

Bon, ça fonctionne MAIS en utilisant l'arduino (sans le processeur) et non avec le FTDI.

Par contre je ne sais toujours pas pourquoi cela ne marche pas avec le FTDI.

De plus en utilisant l'Arduino, Tx va sur Tx et Rx sur Rx, donc pas croisés ?!?! (je dirais que c'est normal, puisque c'est le Tx de la carte qui va sur le Tx du processeur).

kamill

Pour tester ton ftdi, tu le débranches de la breadboard et tu relies tx et rx. Avec le terminal tu tapes quelquechose et tu dois le voir en echo sur l'écran.

kamill

Effectivement si tu utilises l'arduino comme interface usb serie, il ne faut pas croiser tx et rx.

Krayon70

Bon, je suis à court d'idées...

Voici les modifications que j'ai encore testées :

- j'utilisais un câble "chip" usb mini... j'ai donc changé de câble sur le FTDi > problème persiste !

- j'ai changé de FTDI... J'en avais deux identiques > problème persiste !

- j'ai essayé avec Rx/Tx croisés (cas standard) et décroisés > problème persiste !

Il semble clair que le problème vienne du FTDI (pas que le composant soit endommagé, puisque je l'ai remplacé) mais peut-être que ce modèle/fabricant est inadapté ? (ce qui serait étrange).

Certes en utilisant la carte Arduino sans le processeur, je peux téléverser les sketches vers mon atmega328P sur la bredboard mais j'aimerais plutôt utiliser le FTDI...

Quelqu'un a-t-il encore une idée ?


Krayon70

Pour tester ton ftdi, tu le débranches de la breadboard et tu relies tx et rx. Avec le terminal tu tapes quelquechose et tu dois le voir en echo sur l'écran.
Euh... j'ai pas tout compris... désolé...
Donc j'ai Googlé...

J'ai téléchargé Putty, court-circuité Rx et Tx de mon FTDI et sur Putty j'ai sélectionné le mode "série". choisi le port COM du FTDI (à 9600), puis j'ai lancé la connexion.

Un écran s'est ouvert et j'ai tapé un texte au clavier qui est apparu dans le "moniteur" de Putty...

Cela signifie que mon FTDI est opérationnel, correct ?!

kamill

Oui, ça veut dire que le ftdi fonctionne (si putty n'est pas configuré en echo)
Tu pouvais faire le test avec le moniteur série de l'ide arduino.

Krayon70

#11
Nov 03, 2018, 10:43 pm Last Edit: Nov 03, 2018, 11:32 pm by Krayon70
Pour téléverser le sketch, quel programmateur (menu "Outils") faut-il choisir, j'ai vu sur un tuto (avec le même FTDI) qu'il prenait ArduinoIsp, est-ce correct ? (j'ai testé avec ArduinoIsp et AVR ISP, mais rien n'y fait ! Grrrrr...!).

J'ai redessiné mon schéma exact...


kamill

Pour televerser avec un ftdi, c'est comme pour televerser dans une carte uno, c'est la flèche en haut à gauche.
Dans ce cas ce qui est indiqué dans programmateur n'a aucune importance.

Krayon70

Pour televerser avec un ftdi, c'est comme pour televerser dans une carte uno, c'est la flèche en haut à gauche.
Dans ce cas ce qui est indiqué dans programmateur n'a aucune importance.
Ok... je ne savais pas...

kamill

Habituellement j'utilise une interface avec un CP2102 pour programmer et ça fonctionne nickel.

Je viens d'essayer avec un ftdi et là j'ai des messages d'erreur.
Apparemment le téléversement se fait bien mais à la fin j'ai des messages d'erreur
soit celui ci
Quote
avrdude: stk500_paged_load(): (a) protocol error, expect=0x14, resp=0x93
avrdude: stk500_cmd(): programmer is out of sync
le port série sélectionné avrdude: stk500_cmd(): programmer is out of sync
 n'existe pas ou votre Arduino n'est pas connectée
soit un autre qui me dit qu'il y a une erreur de vérification


Go Up