Programmer un ATmega 328 sur une breadboard.

Bonjour, j'aimerais pouvoir faire un projet avec un ATmega 328. Le problème, c'est que je n'arrive pas à téléverser un programme à l'intérieur. Je pense que ça viens du câblage. Je possède un convertisseur USB/Serie: CP2102.

Comment le programmer?

Merci d'avance!!! :)

Bonjour,

Ton ATmega 328 a un bootloader?

Oui, car c'est celui d'une Arduino uno

le breadboard, bof, contacts aléatoires, surtout si elle a servi quelques fois. il faut un qtz 16mhz,2 condos 22pf, 1 res 10k et un condo 100nf en plus du m328p puisque c'est le bootloader de l'uno, tu ne peux pas choisir : obligé d'etre en 16mhz relier les pins du cp2102 : 5v, gnd, tx,rx et dtr il y a des schemas de cablage à foison sur le web le cp2102 doit etre reconnu par ton OS, driver installé+choix du bon port com si tout est correct, théoriquement IDE arduino croit qu'il a une carte arduino attachée

Les interfaces usb à base de cp2102 que je connais ne sortent pas le signal DTR qui est nécessaire pour provoquer le reset du micro 328p.

Le modèle dont tu dispose sort-il ce signal ?

Effectivement, je n'ai pas DTR sur le CP2102. Pour ce qui est de mettre un quartz, j'ai vu qu'il existait une configuration minimale. Mais il faut changer le bootloader. J'ai essayé comme indiqué, mais l'IDE affiche l'erreur:

avrdude: Device signature = 0x000000 avrdude: Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check.

Comment faire?

Merci!!!

Tu fais comment pour changer le bootloader?

J’utilise une arduino mega 2560 que je cable à l’ATmega en respectant le câblage suivant:

Ensuite, j’ai téléchargé une carte dans l’IDE spécial atmega 328 sans quartz(avec l’horloge interne: 8mhz).

J’ai programmé la mega en ISP en téléversant l’exemple, puis j’ai changé la carte et le programmateur. Et j’ai cliqué sur Graver la séquence d’initialisation, mais l’erreur que j’ai évoqué ci dessus est survenu!

Je n'ai jamais fait ça avec une mega, mais avec une uno je n'ai jamais eu de problème.

Si j’essaie avec une nano, c’est comme une uno non?

Je viens d'essayer avec une mega et ça fonctionne

Cependant j'ai deux remarques sur le schéma que tu as utilisé (mais je ne pense pas que ça empêche la gravure)

  • la pin 20 (AVCC) de l'atemega328 doit être relié au 5V et non à la masse
  • le condensateur sur le reset de la mega est inutile.

68tjs: Les interfaces usb à base de cp2102 que je connais ne sortent pas le signal DTR qui est nécessaire pour provoquer le reset du micro 328p.

Le modèle dont tu dispose sort-il ce signal ?

tous ceux que j'ai ont le dtr, contrairement au pl2303 que j'ai acheté par mégarde....

Effectivement, il y a une erreur de cablage que je n'avais pas remarqué, mais je ne l'ai pas reproduite, car je me suis dis que le rouge c'était VCC. Je précise juste que l'ATmega est celui d'une arduino uno (il y a déja un bootloader). C'est peut être pour ça que je n'y arrive pas. J'ai des messages d'erreur du genre lock... C'est peut être que le bootloader est vérouillé?

Pourtant, sur le site d’Arduino, il arrive à faire sans en "minimale configuration".

Ok, je crois que je commence à comprendre. Mais est ce que l’on peut changer un bootloader?

Oui. Si les fuses sont programmés pour un oscillateur externe, tu peux programmer directement le bootloader de ton atmega328 sur la carte uno en suivant ce tuto

J'ai réussi à graver le bootloader, mais maintenant, je n'arrive pas à téléverser un programme dans l'ATmega.

Comment fait on pour modifier la vitesse de transmission?

Et je n'ai pas compris comment mettre un bouton poussoir au pin reset?

euh le bouton poussoir : c'est pour faire en manuel ce que le cp2102 fait en automatique avec son dtr..... il y a une chronologie tres stricte à respecter : utilisé avec les promini au début d'arduino....galere pas connu l'age de pierre d'arduino, perso