Comment charger un atmega328 via arduino atmega328 ?

tetardo:
Si je comprend bien, un cable entre le reset du convertiseur vers le reset de mon circuit permet un autoreset via le logiciel arduino en fin d'upload ?

T'as tout compris :slight_smile: (reset en début et en fin d'upload, ça évite d'avoir à le faire à la main)

tetardo:
Je vais modifier mon schéma pour virer les 6 broche et les remplacer par les 4, bien plus simple, merci !

Rappelle toi il te faut quand même programmer le bootloader :wink: donc garde l'ISP quelque pars, tu ne l'utilisera qu'une fois mais au moins il sera là au cas ou :wink:

tetardo:
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.

Les triacs doivent commander quoi ?
si c'est pour de la charge inductives en TOR , il est préférable d'utiliser de l'opto zero-crossing
MOC3041 à la place de MOC3021

Hey Artouste !

Les triacs doivent commander quoi ?

Pas grand chose... Déja pas de variable, du tout ou rien, comme des relais.

  • Rampe éclairage avec ou sans balaste
  • Filtre avec ou sans transfo
  • Électrovanne avec ou sans trasfo
  • Cable chauffant
  • Sonde chauffante

Je reviendrais la dessus un peu plus tard pour l'autre version, je fais une version eau douce et une version eau de mer qui elle contient un pulseur pour pompe de brassage. Là, il faudrat varier le 220v. (plus tard... bien plus tard...)

" Commence par finir ce que tu as commencé "

si c'est pour de la charge inductives en TOR , il est préférable d'utiliser de l'opto zero-crossing
MOC3041 à la place de MOC3021

Ah ! questions !

  • zero-crossing, kesako ? C'est un qui fait tout ou rien ?
  • Le montage reste le mm, ainsi que la gachete ?
  • Si tu as quelques explications, je suis preneur...

Je vais regarder ça... Merci pour la piste !


Hey skywodd !

Rappelle toi il te faut quand même programmer le bootloader donc garde l'ISP quelque pars, tu ne l'utilisera qu'une fois mais au moins il sera là au cas ou

Oui je me suis fait cette réflexion, je vais le garder... enfin si je prend des puces avec bootloader deja chargé, c'est le mm prix... donc prk le garder... et je manque de place sur mon format de pcb.
Si je le garde, je dois prévoir des jumpers pour libérer les pins comme avec RX et TX ? (j'ai mon écran qui se promène par la...)

Donc, j'ajoute +, -, RX, TX et RESET.
Je vois que sur les USB->Serial/TTL il y a un reset, si j'utilise une carte arduino, je le récupère où le reset ? sur le pin du bas ? direct sur le support de la puce (comme je dois retirer la puce...) ?

Merci pour vos réponses, c'est bien sympa et on en apprend à chaque fois !

tetardo:

si c'est pour de la charge inductives en TOR , il est préférable d'utiliser de l'opto zero-crossing
MOC3041 à la place de MOC3021

Ah ! questions !

  • zero-crossing, kesako ? C'est un qui fait tout ou rien ?
  • Le montage reste le mm, ainsi que la gachete ?
  • Si tu as quelques explications, je suis preneur...

Je vais regarder ça... Merci pour la piste !

detection du zero crossing = la commutation se fait au passage à zéro de l'alternance secteur = pas (moins) de parasites de commutations.
pas de modif du schema (pinout compatible)
http://pdf1.alldatasheet.fr/datasheet-pdf/view/83864/ETC/MOC3041.html

tetardo:
Oui je me suis fait cette réflexion, je vais le garder... enfin si je prend des puces avec bootloader deja chargé, c'est le mm prix... donc prk le garder... et je manque de place sur mon format de pcb.

Si tu manque de place ce que tu peut faire c'est ne pas mettre d'ISP et programmer le bootloader en câblant l'atmega sur breadboard, puis utiliser le bootloader pour envoyer les sketch arduino ensuite.
Si tu le garde pas besoin de mettre de jumper ISP -> In Circuit Programming :wink:

tetardo:
Donc, j'ajoute +, -, RX, TX et RESET.
Je vois que sur les USB->Serial/TTL il y a un reset, si j'utilise une carte arduino, je le récupère où le reset ? sur le pin du bas ? direct sur le support de la puce (comme je dois retirer la puce...) ?

Sur D10 :wink:
-> http://arduino.cc/en/Tutorial/ArduinoISP

faudrait un électronicien de la vieille école pour nous éclairer

En voilà un 'spécimen' qui tombe sur ce fil dont le titre ne laissait pas soupçonner qu'il y était aussi question de triac ... et de Proteus, deux vieilles connaissances !!!

Je réponds pour l'instant juste sur le sujet de l'allumage 'en deux temps' du triac.

A l'échelle des millisecondes (50Hz) les temps de commutations des triac sont négligeables.
Le phénomène observé je l'ai rencontré avec des lampes à filament (armoires de commande de feux de carrefour) et dans mon cas il était du à un courant de gâchette un peu insuffisant.
La sensibilité de la gâchette n'est pas la même pour les alternances positives et négatives.
Le triac laisse passer quelques alternances positives du secteur, s'échauffe un peu puis devient conducteur pour les deux alternances. Comme un moteur à essence qui tourne un peu sur 3 cylindres avant de fonctionner sur les 4 !
Solution : revoir le circuit de commande pour augmenter un peu le courant envoyé dans la gâchette. Autre solution : prendre des triacs plus sensibles.
La sensibilité est donnée sur les data sheets pour les quatre quadrants (polarité gâchette/polarité Anodes)
(Il y a encore une dizaine d'années le quadrant le moins sensible était : gâchette positive pour l'alternace négative..... aujoiurd'hui ? perdu de vue !)

Le zero-crossing (commutation au passage à zero du secteur) s'emploie uniquement avec des charges résistives (pas de déphasage courant/tension). Il a l'avantage de réduire de manière importante l'émission de parasites et de ménager les filaments de lampes qui de sont plus soumis à des commutations au moment ou la sinusoide secteur est au maximum.

Hey,

Merci pour toutes vos réponses, j'avance à grands pas grâce à vous ! Merci !
Je vais commencer par vos réponses, puis présenter les modifications que j'ai apporté à mon projet.


@Artouste:
C'est cool de ne rien avoir à changer ! je vais me trouver des 3021.

@skywodd:
Merci pour le reset sur D10 ^^

@al1fch:
Si je comprend bien, il faut que je donne un peu plus de jus à ma gâchette, donc baisser un peu la résistance de l'optocoupleur (ex: R34 sur mon shéma)
j'ai actuellement 220 ohms, ... euh, il me faut un peu d'aide pour savoir de combien je dois baisser... et je n'ose pas faire grand chose, le 220v...
Ok pour le zero-crossing, quoi que un peu flou encore... surtout sur la différence des charges inductives et résistives. Soit pour des moteurs ou transfo, soit pour des lanpes du genre filament. Dans mon cas je ne souhaite pas faire varier mes appareils (tout ou rien), est ce que cela peux poser problème pour une pompe (dont bobine), ballast de néons T5, électrovanne ? Que me conseilles tu ?


Je vais orienter mon automate un peu différemment. Pour cela, je vais ajouter quelques entrées et sorties en rab pour prévoir des petites évolutions sans avoir à refaire toute ma carte. Un peu de détail :

Pour commencer j'ai viré l'ICSP et ajouté 3 pins: RX, TX, RESET. Je n'ai pas ajouté + et - car la carte sera déjà alimentée.
J'ai ajouté un 74HC595 pour libérer quelques pins. 2 digitals (RX et TX) et 2 analogiques.

Je me retrouve donc avec le montage suivant:

  • 6 sorties triac
  • 4 extensions: 2 sorties digitales, 2 sorties/entrées analogiques/digitales
  • 2 sorties pwm + mosfet
  • 2 sondes de température
  • une horloge
  • un clavier
  • une alarme led + buzzer optionnel par jumper
  • un écran

Voici je pense, mes dernières questions:

  • En suivant ce tuto: http://www.arduino.cc/en/Tutorial/ShiftOut je me suis aperçu qu'il utilisait un condensateur. Lors de mon essai, je n'ai pas utilisé de condensateur et je vous avoue que le 74HC595 à très bien fonctionné.
    Est ce que le condensateur pour le 74HC595 est nessessaire ?
    A quoi sert il ?

  • J'ai viré + et - de l'isp, Est ce que je peux utiliser l'isp avec une alim externe ?

  • Les mosfets sont censés chauffer un peu. Je vais brancher dessus une alim 12v 5A pour ma rampe de led.
    Les radiateurs sur les mosfets sont t'il si important ?

  • Lors de mon test pour l'alimentation, le 5v ne fait pas chauffer le régulateur de tension, par contre en 9v il s'échauffe un peu mais cela reste raisonnable.
    A votre avis, si j'alimente en 5v ou 9v, faut il un radiateur sur le régulateur de tension ?

  • Si je branche un chauffage de 300w sur un triac (chose que je n'ose pas faire sans réponse), faut il un radiateur ?

  • Est ce que je peux souder le quartz de l'horloge a plat en fesant juste un petit point au bout car il est très fragile ?

  • Est ce que la taille des pistes pour le 220v est suffisante ? sinon quelle épaisseur, ou comment calculer tout ça ?

  • Puis relier les triacs avec des petite vis et une même barre métallique pour les renforcer ? En gros, peut on relier les parties radiateurs entre elles ?


Voici le schéma avec les modifications, une capture du PCB et une capture 3D ^^

http://crevettegreg.free.fr/Arduino/Capture%2024012012.pdf


Encore une fois merci de votre aide pour ce projet !

tetardo:

  • En suivant ce tuto: http://www.arduino.cc/en/Tutorial/ShiftOut je me suis aperçu qu'il utilisait un condensateur. Lors de mon essai, je n'ai pas utilisé de condensateur et je vous avoue que le 74HC595 à très bien fonctionné.
    Est ce que le condensateur pour le 74HC595 est nessessaire ?
    A quoi sert il ?

Il n'est pas obligatoire mais vivement conseillé, il permet de "stabiliser" le signal sur la broche "latch" pour éviter les raté sur le signal.
Un condensateur 100nF sa coute rien et ça prend pas de place, mais il t'évitera bien des problémes :wink:

tetardo:

  • J'ai viré + et - de l'isp, Est ce que je peux utiliser l'isp avec une alim externe ?

Oui tu peut faire alim + isp, du reste c'est conseillé de programmer sans utiliser l'alim du programmateur pour éviter les problémes.

tetardo:

  • Lors de mon test pour l'alimentation, le 5v ne fait pas chauffer le régulateur de tension, par contre en 9v il s'échauffe un peu mais cela reste raisonnable.
    A votre avis, si j'alimente en 5v ou 9v, faut il un radiateur sur le régulateur de tension ?

Oui, surtout si tu veut pas avoir à changer le 7805 par la suite :wink:

tetardo:

  • Est ce que je peux souder le quartz de l'horloge a plat en fesant juste un petit point au bout car il est très fragile ?

Toujours souder à plat les quartz 32KHz, sinon ils tiennent pas 2 minutes avant de ce casser.

tetardo:

  • Est ce que la taille des pistes pour le 220v est suffisante ? sinon quelle épaisseur, ou comment calculer tout ça ?

ça devrait le faire, astuces: met de la soudure en grande quantité quand tu étamera les pistes, comme ça tu aura une section de piste beaucoup plus grande au final.

Merci skywodd pour tes réponses !
C'est toujours un plaisirs d'avoir des réponses précises et rapides !


Oui tu peut faire alim + isp, du reste c'est conseillé de programmer sans utiliser l'alim du programmateur pour éviter les problémes.

Je suis curieux, pour quelles raisons on conseille d'utiliser une alimentation externe ?

  • Les mosfets sont censés chauffer un peu. Je vais brancher dessus une alim 12v 5A pour ma rampe de led.
    Les radiateurs sur les mosfets sont t'il si important ?

  • Si je branche un chauffage de 300w sur un triac (chose que je n'ose pas faire sans réponse), faut il un radiateur ?

  • Puis je relier les triacs avec des petite vis et une même barre métallique pour les renforcer ? En gros, peut on relier les parties radiateurs entre elles ?

tetardo:

Oui tu peut faire alim + isp, du reste c'est conseillé de programmer sans utiliser l'alim du programmateur pour éviter les problémes.

Je suis curieux, pour quelles raisons on conseille d'utiliser une alimentation externe ?

Sur tout les programmateurs/debuggeurs tu as un switch qui permet de choisir si le circuit cible doit être alimenté par le programmateurs ou pas (valable sur la plupart des programmateurs/debuggeur "sérieux").
C'est trés intéréssant dans le cas d'un circuit qui consomme beaucoup de courant, tellement que le programmateur ne pourrait pas en fournir suffisamment, ce qui l'empêcherai de faire sont travail vu que tout l'alimentation serait pompé par le circuit cible.
Si le circuit cible est alimenté normalement comme lors d'une utilisation normal il suffit juste d'avoir les broches ISP (MISO/MOSI/SCK) et la masse GND pour faire la programmation, l'alimentation sera prise entièrement en charge par l'alimentation normal du circuit et le programmateur pourra faire son taff sans probléme.

(Ps: erreur bête mais fréquente, oublier le GND sur le connecteur de programmation, vérifie que tu as bien la masse sur ton connecteur ISP ;))

Non, je n'ai pas mis la masse, seulement TX, RX, RESET.
Je vais ajouter GND... merci pour l'info !
Du coup quand je vais brancher tout ça (alim + programmateur) cela ne vas pas poser de problème si les masses sont en commun ?

Je ne comprend pas trop l'histoire du jumper pour l'alim, il permet quoi exactement, car si tu choisis une source d'alim avec, l'autre alim ne sert a rien du tout, donc...

tetardo:
Non, je n'ai pas mis la masse, seulement TX, RX, RESET.
Je vais ajouter GND... merci pour l'info !
Du coup quand je vais brancher tout ça (alim + programmateur) cela ne vas pas poser de problème si les masses sont en commun ?

Si les masses était pas en commun comment veut tu que le programmateur et le µc puisse communiquer ? Pas de masse commune = pas de référence commune, pas de référence = pas de niveau Haut/Bas possible.
Le µc sera alimenter tranquillement en 5v par sont alim normal, et le programmateur par l'usb et tout le monde sera content.

tetardo:
Je ne comprend pas trop l'histoire du jumper pour l'alim, il permet quoi exactement, car si tu choisis une source d'alim avec, l'autre alim ne sert a rien du tout, donc...

Heu ... j'ai jamais parler de mettre un jumper sur l'alim (?), j'ai juste parler d'avoir un jumper sur Rx/Tx.

Sur tout les programmateurs/debuggeurs tu as un switch qui permet de choisir si le circuit cible doit être alimenté par le programmateurs ou pas (valable sur la plupart des programmateurs/debuggeur "sérieux").

oui, pas jumper mais switch...
mais j'ai compris... :stuck_out_tongue: