Go Down

Topic: Comment charger un atmega328 via arduino atmega328 ? (Read 4370 times) previous topic - next topic

tetardo

Jan 19, 2012, 02:01 am Last Edit: Jan 19, 2012, 04:00 am by tetardo Reason: 1
Bonjour,

Je suis toujours sur mon automate pour aquarium. Le programme est terminé pour sa première version.

J'ai réaliser un circuit avec un atmega328 dessus car je ne souhaite pas utiliser l'arduino mais uniquement le microcontroleur.
J'ai prévu dessus un groupe de 6 broches pour pouvoir charger le microcontroleur directement sur mon montage.

http://crevettegreg.free.fr/Arduino/Capture1.pdf

---

J'ai commandé sur ebay un kit comprenant un atmega328 et le quartz. Kit reçu ^^
Si j'ai bien compris il faut procéder en 2 étapes:

1 - Charger le Bootloader
2 - Charger le programme

Mes questions sont les suivantes:

Ai je bien relier mes broches sur mon circuit ?
Y a t'il bien deux étapes: bootloader puis programme ?
Comment savoir si il y a déjà un bootloader sur l'atemega que j'ai reçu ?
Peut t'on utiliser directement le logiciel Arduino pour programmer puis utiliser le bouton upload ?
Est on obligé de mettre un bouton reset avec une résistance ou peut on juste relier a la broche reset sans rien d'autre ?

J'ai trouvé pas mal de tuto mais c'est assez compliqué pour moi... je débute...
Je suis un peu perdu...

Merci d'avance pour votre aide !

Une petite photo pour le fun de mon circuit...
Il me reste encore les triacs et qqs autres composants a souder... Allez, soudure en attendant vos réponses !





Merci d'avance pour votre aide !

Tealcoune

sinon autre solution simple si tu a un arduino uno avec un dip .. tu le remplace par ton atmega, tu charge le bootloader via le programme arduino, ensuite tu charge ton programme et tu retire l'atmega, et tu le met sur ta carte..
Aimez la Vie, mais preferez la Mort, car seulement celle-ci vous liberera des tenebres de la Vie.

tetardo

hey,

Merci pour ta réponse, mais cette solution est bien si tu as un ou deux montage a produire. sinon le DIP va souffrir...
Dans mon cas, je ne peux me permettre... je vais en avoir pas mal a faire, j'essai de trouver un solution pour gagner un peu de temps

Artouste


hey,

Merci pour ta réponse, mais cette solution est bien si tu as un ou deux montage a produire. sinon le DIP va souffrir...
Dans mon cas, je ne peux me permettre... je vais en avoir pas mal a faire, j'essai de trouver un solution pour gagner un peu de temps

bonjour
un ZIF DIP28 et on en parle plus !

genre ça
http://www.sparkfun.com/products/9175

et si besoin d'un peu de hauteur pour passer au dessus de connecteur ICSP , tu l'empile sur 1 ou 2 suports DIP classiques

skywodd

Bonjour,


Ai je bien relier mes broches sur mon circuit ?

Je vois plusieurs chose qui pourrait mettre à mal ton montage :.
1 - Il y a un net_alias sur les broches RX et TX de l'atmega du nom de RAMPE_1 et RAMPE_2 mais je ne vois aucune terminaison avec le même nom ...
ça peut vouloir dire deux choses, tu n'as pas cabler cette partie, ou pire tu as oublié que RX/TX correspond au port série, port série qui sert à l'envoi du programme depuis l'ide arduino.
Cabler quelque chose sur TX/RX n'est pas interdit mais il ne faudrai pas que cela empéche l'envoi du programme par la suite.
2 - Ton ATmega328p tourne avec un quartz 32KHz :smiley-eek-blue: je suppose que tu veut faire du temps réel avec, mais avec l'ide arduino c'est 16MHz ou 8MHz, rien d'autre !
3 - Je vois plein de net_alias qui ne pointe vers aucune autre partie du schéma, c'est normal ou il manque une partie du schéma !?


Y a t'il bien deux étapes: bootloader puis programme ?

Oui si tu veut utiliser l'ide arduino il faut d'abord programmer le bootloader puis utiliser le port série pour envoyer le programme.


Comment savoir si il y a déjà un bootloader sur l'atemega que j'ai reçu ?

Ne cherche pas à savoir si il y a déja un bootloader, envoi directement la bootloader sur l'ATmega, ça t'évitera de te retrouver avec un bootloader ancien ou brické ;)


Peut t'on utiliser directement le logiciel Arduino pour programmer puis utiliser le bouton upload ?

Utilise t'as carte arduino ;)
Tu envoi le sketch ArduinoISP dessus, tu place une diode entre reset et gnd (ou vcc je sais plus :smiley-red:) si c'est une UNO/mega2560 ou alors une résistance entre reset et VCC si c'est une carte arduino plus ancienne.
Tu branche en ISP ta carte, ensuite tu fait "burn bootloader" dans le menu de l'ide et tu attend ;)


Est on obligé de mettre un bouton reset avec une résistance ou peut on juste relier a la broche reset sans rien d'autre ?

Non tu peut juste mettre une résistance entre VCC et reset sans rien d'autre mais garde quand même un jumper ou un truc pour pouvoir faire un reset au cas ou ;)


Une petite photo pour le fun de mon circuit...
Il me reste encore les triacs et qqs autres composants a souder... Allez, soudure en attendant vos réponses !

Ha! Un schéma sous proteus, pas un truc fait sous eagle 8) ... je suis content pour la journée :smiley-mr-green:
Ps: quelle version de proteus tu as ? J'ai la 7.5 mais j'ai pas les prises jack/ds1307/... tu as fait les empreintes toi même ?
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Artouste


Bonjour,

Je suis toujours sur mon automate pour aquarium. Le programme est terminé pour sa première version.
...



Merci d'avance pour votre aide !


BAT1 à 1.5V  pour le ds1307 c'est hors limites  :smiley-mr-green:

tetardo

#6
Jan 19, 2012, 03:14 pm Last Edit: Jan 19, 2012, 05:53 pm by tetardo Reason: 1
Alors Alors ^^

Pour commencer, merci pour vos réponses !

@Artouste

Quote
si besoin d'un peu de hauteur pour passer au dessus de connecteur ICSP , tu l'empile sur 1 ou 2 suports DIP classiques

Merci pour l'idée, c'est pas *on du tout !

@skywodd

Quote
Il y a un net_alias sur les broches RX et TX de l'atmega du nom de RAMPE_1 et RAMPE_2 mais je ne vois aucune terminaison avec le même nom ...

Normal, le shéma des triacs est sur une autre feuille... je les ai testé et il fonctionnent parfaitement.
Pour les broches RX et TX, je n'avais pas pensé que cela pouvait gêner a l'envoi du programme... le mieux est du coup d'essayer de les avoir toujours libre. Un petit 74HC595 devrait m'aider a les libérer.

Code: [Select]
Ton ATmega328p tourne avec un quartz 32KHz
Non non, il est en 16, j'ai juste pas fait attention a la valeur sur mon shéma (merci :p)

Code: [Select]
Ha! Un schéma sous proteus, pas un truc fait sous eagle  ... je suis content pour la journée
Autant apprendre avec des truc pas trop mal... c'est un gain de temps

Code: [Select]
quelle version de proteus tu as ? J'ai la 7.5 mais j'ai pas les prises jack/ds1307/... tu as fait les empreintes toi même ?
Version 7.7 sp2 build 9089 (j'ai un zip si tu veux mais c'est pas bien :p)... mp...
Voui, j'ai fait les composants schéma + empreintes moi même... c'est pas bien dur !

@Artouste

Code: [Select]
BAT1 à 1.5V  pour le ds1307 c'est hors limites
Oupsss... comme le quartz, j'ai pas fait attention, la pile est une 3v

---

Autre question, c'est quoi "big-bang serial" ?

Merci à tous :p

tetardo

#7
Jan 19, 2012, 04:20 pm Last Edit: Jan 19, 2012, 04:51 pm by tetardo Reason: 1
Autre question: Les triacs sont assez fragiles... peut on les relier avec une petite plaque métallique et des vis ?

tetardo

Apres réflexion, ajouter un 74HC595 est pas bien compliqué mais j'ai peur de manquer de place sur la carte et tout ça pour juste charger directement dessus.
Le plus simple est de charger la puce avant de la mettre sur le circuit je vous l'accorde.

Que feriez vous ?

Voici le schéma modifier avec la partie manquante:
http://crevettegreg.free.fr/Arduino/capture2.pdf
http://crevettegreg.free.fr/Arduino/capture2b.pdf

Merci d'avance pour vos idées...

skywodd


Normal, le shéma des triacs est sur une autre feuille... je les ai testé et il fonctionnent parfaitement.
Pour les broches RX et TX, je n'avais pas pensé que cela pouvait gêner a l'envoi du programme... le mieux est du coup d'essayer de les avoir toujours libre. Un petit 74HC595 devrait m'aider a les libérer.

Non pas la peine ;) tu ajoute juste deux jumpers, quand tu programme tu enlève les jumpers et quand tu est en fonctionnement tu les remets, simple, rapide, pas chère, et terriblement efficace ;)


Non non, il est en 16, j'ai juste pas fait attention a la valeur sur mon shéma (merci :p)

Ok ^_^


Autant apprendre avec des truc pas trop mal... c'est un gain de temps

Bonne philosophie ! proteus FTW 8)


Autre question, c'est quoi "big-bang serial" ?

C'est une technique qui permet de programmer un µc AVR en utilisant le circuit FT232 qui normalement s'occupe de la liaison série, en faite il a une fonction spécial qui permet de transformer les broches de signal (DTR, RTS, ...) en sortie 0/5v, et donc de faire un programmateur ISP en software.
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

tetardo

Quote
tu ajoute juste deux jumpers, quand tu programme tu enlève les jumpers et quand tu est en fonctionnement tu les remets, simple, rapide, pas chère, et terriblement efficace

Pas *on !
Allez..., ajout de 2 jumpers !

Pour le fun, une autre petite question:

J'ai testé mes triacs sur des ampoules à filament. Normalement je devrais avoir un allumage instantané mais je n'obtiens pas ce résultat. L'ampoule s'allume en deux fois. Pendant une demi seconde (je ne sais pas cb de temps, c'est trop rapide) l'ampoule s'allume un peu puis s'allume complètement et reste allumée pour de bon. Avez vous une idée ?

C'est pas gênant, mais c'est pas très propre... et j'ai peur que cela abîme les appareils avec transfo comme mon filtre ou mon électrovanne.


skywodd


J'ai testé mes triacs sur des ampoules à filament. Normalement je devrais avoir un allumage instantané mais je n'obtiens pas ce résultat. L'ampoule s'allume en deux fois. Pendant une demi seconde (je ne sais pas cb de temps, c'est trop rapide) l'ampoule s'allume un peu puis s'allume complètement et reste allumée pour de bon. Avez vous une idée ?

Il faudrait que tu jette un œil au datasheet de ton triac, il doit bien y avoir les temps de commutation quelque pars.
Les triacs/thyristor c'est pas mon truc, faudrait un électronicien de la vieille école pour nous éclairer ;)
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

tetardo

Quote
Il faudrait que tu jette un œil au datasheet de ton triac, il doit bien y avoir les temps de commutation quelque pars.

je regarde coté triac ou coté optocoupleur ?
Si il y a un temps, c'est je suppose pas réglable ?

Je n'ai pas optez pour des relais pour une question de longévité et de sécurité.
Tu utilises autres choses que triac ou relais ?

Quote
Les triacs/thyristor c'est pas mon truc, faudrait un électronicien de la vieille école pour nous éclairer

T'es un petit jeune toi ?! Moi aussi... De toute façon on ne sera jamais des vieux... Il y a toujours plus vieux...

tetardo

J'ai bien ajouté mes deux jumpers sur RX et TX, ce qui correspond au pin D0 et D1 de l'arduino.
Mes broches icsp sont sur les pins D13, D12, D11 et Reset.

Euh... c'est qui le rapport avec RX et TX ?

skywodd


je regarde coté triac ou coté optocoupleur ?
Si il y a un temps, c'est je suppose pas réglable ?

Triac ou opto ... bonne question, si c'est vraiment un gros temps de latence je dirai triac, et oui c'est pas réglable (ce serait pas drôle sinon :smiley-mr-green:)


Je n'ai pas optez pour des relais pour une question de longévité et de sécurité.
Tu utilises autres choses que triac ou relais ?

Moi je suis très mosfet, c'est hyper simple à utiliser, et ça résiste à toute les conn*rie de câblage que je peut faire (et dieu sait que dés fois j'en fait des belles :P).


T'es un petit jeune toi ?! Moi aussi... De toute façon on ne sera jamais des vieux... Il y a toujours plus vieux...

Yep! étudiant en IUT ^_^


Euh... c'est qui le rapport avec RX et TX ?

ISP -> charger le bootloader, RX/TX -> utiliser par le bootloader pour charger le prog depuis l'ide arduino.
Tu peut aussi utiliser l'ISP pour envoyer directement ton programme mais c'est un peu plus lourd à utiliser.
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Go Up