Auteur Sujet: Mini décodeur à base d'ATTiny 84  (Lu 2145 fois)

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1265
    • Voir le profil
Mini décodeur à base d'ATTiny 84
« le: juin 02, 2018, 08:36:35 am »
Voici les infos sur cette carte avec le BOM et le schéma

Si vous vous souvenez, cette carte est hybride. Elle peut également être utilisée sans l'ATTiny.

Avec l'ATTiny

Souder S2, S3, S4 et S5 mais pas S1

Le connecteur K2 donne accès aux broches de programmation

Deux sorties peuvent être amplifiées (transistor NPN en collecteur ouvert), la 9 et la 10. Par défaut elles le sont mais vous pouvez avoir une sortie directe en soudant dis 9 (pour la sortie 9) et dis 10 (pour la sortie 10).

Sans l'ATTiny

Souder S1 mais pas les autres. L'ATTiny ne sera pas alimenté. La broche 4 du connecteur K2 donne accès au signal DCC.
« Modifié: juin 02, 2018, 09:21:42 am par Jean-Luc »

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1265
    • Voir le profil
Re : Mini décodeur à base d'ATTiny 84
« Réponse #1 le: juin 02, 2018, 09:07:13 am »
L'alimentation :



Donc à partir du signal DCC, on passe par un pont redresseur (RC1) puis une zener qui abaisse la tension (Z1, la valeur de celle que j'ai soudée est de 6,8V, pas de 6,3V) et enfin un régulateur (IC1). La zener pour éviter de trop stresser le régulateur. Malgré tout, il s'agit d'une zener 2W et par conséquent le courant maxi est de 2/6,8 = 290mA. Le redresseur encaisse 500mA maxi.

En supposant un signal DCC de 18V, après le redresseur on est à 17V, après la zener à 10,2V. Au max le régulateur dissipe 5,2 x 0,29 = 1,5W ce qui est déjà au dessus de ce qu'il peut dissiper. À 200mA on est à 1W et les jonctions seront à 110°C. L'ATTiny consomme beaucoup moins que ça rassurez vous.

IC2:power, c'est l'alim de l'ATTiny, C4 sont condensateur de découplage

Le redresseur MBS4
La zener
Le régulateur

Sont soudés : RC1, Z1, IC1, C4, IC2
Restent à souder : D1 (la petite diode en verre), C2, C3 (les capas chimiques), K1
« Modifié: juin 02, 2018, 09:29:18 am par Jean-Luc »

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1265
    • Voir le profil
Re : Mini décodeur à base d'ATTiny 84
« Réponse #2 le: juin 02, 2018, 09:14:55 am »
Le signal DCC, c'est le montage classique de Minabay



Déjà soudés : D2, OC1, C1
À souder : R1, R2, R3
« Modifié: juin 02, 2018, 09:22:20 am par Jean-Luc »

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1265
    • Voir le profil
Re : Mini décodeur à base d'ATTiny 84
« Réponse #3 le: juin 02, 2018, 09:28:53 am »
L'ATTiny



À gauche l'amplification des sorties 9 et 10.

Déjà soudés : T1, T2, l'ATTiny
À souder : R4, R5, R6, R7, K2, K3

Pour R4 et R5, je vous ai mis un assortiment de 330 à 910Ω. Vous pouvez également souder un fil à la place de la résistance et mettre la résistance à l'extérieur de la carte.

msport

  • Sr. Member
  • ****
  • Messages: 467
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Mini décodeur à base d'ATTiny 84
« Réponse #4 le: juin 13, 2018, 11:21:52 pm »
Bonjour,
j'ai commencé le montage du décodeur. Reste le Tiny. J'ai bien 2,5V sur le pont S2, un bon début.
Vérifiez que le régulateur de tension est un 5V. Le LD1117 tout court est la version ajustable.
Pour faciliter l'implantation, j'ai "nettoyé" le typon joint.
Cordialement

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1265
    • Voir le profil
Re : Mini décodeur à base d'ATTiny 84
« Réponse #5 le: juin 14, 2018, 12:00:09 am »
La version ajustable était pour la carte ULN

msport

  • Sr. Member
  • ****
  • Messages: 467
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Mini décodeur à base d'ATTiny 84
« Réponse #6 le: juin 14, 2018, 08:40:35 pm »
Un petit coup de main pour déclarer les broches de l'ATTiny84 :
je voudrais transposer mon décodeur blanc/rouge qui tourne sur un ATTiny13 où les pins étaient numérotées comme sur le boitier.

Mais là je vois que la pin 5 correspond à la 2 de l'Arduino avec l'INT0

Est-ce que pour l'ATTiny84 on déclare bien les ports comme dans le code ci-dessous ?

/*
  Turns on an LED on for 0.2 seconds, then off for 0.5 seconds
  for each useable pinout on the ATtiny84 - there are 11 useable.
 
  ATtiny Pin 1: 5V
  ATtiny Pin 2: myPin 0
  ATtiny Pin 3: myPin 1
  ATtiny Pin 4: RESET 
  ATtiny Pin 5: myPin 2
  ATtiny Pin 6: myPin 3
  ATtiny Pin 7: myPin 4
  ATtiny Pin 8: myPin 5
  ATtiny Pin 9: myPin 6
  ATtiny Pin 10: myPin 7 
  ATtiny Pin 11: myPin 8
  ATtiny Pin 12: myPin 9 
  ATtiny Pin 13: myPin 10
  ATtiny Pin 14: myPin GND
 */
 
// declare pins
int myPins[] = {0,1,2,3,4,5,6,7,8,9,10,11,12};
int i =0;

void setup()
{               
    pinMode(myPins[0], OUTPUT);
    pinMode(myPins[1], OUTPUT);
    pinMode(myPins[2], OUTPUT);
    pinMode(myPins[3], OUTPUT);
    pinMode(myPins[4], OUTPUT);
    pinMode(myPins[5], OUTPUT);
    pinMode(myPins[6], OUTPUT);
    pinMode(myPins[7], OUTPUT);
    pinMode(myPins[8], OUTPUT);
    pinMode(myPins[9], OUTPUT);
    pinMode(myPins[10], OUTPUT);
    pinMode(myPins[11], OUTPUT);
    pinMode(myPins[12], OUTPUT);
}

// the loop routine runs over and over again forever:
void loop()
{
  i = 0;   //reset i so that for loop repeats
  for (i=0; i<11;i++)
  {
    digitalWrite(myPins[i], HIGH);   // turn the myPins[#] on
    delay(200);                      // wait for 200 milliseconds
    digitalWrite(myPins[i], LOW);    // turn the myPins[#} off
    delay(200);
  }
}
Cordialement

msport

  • Sr. Member
  • ****
  • Messages: 467
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Mini décodeur à base d'ATTiny 84
« Réponse #7 le: juin 14, 2018, 10:25:10 pm »
Du diagramme joint, je pourrais penser que ce sont les références en brun qu'il faut adopter dans l'IDE pour l'ATTiny84.
J'ai tenté une compilation avec les deux, ça passe ...
Ce serait 9 et 10 pour les sorties transistors ?

PS : pour l'horloge : 1MHz ou 8MHz  ?
« Modifié: juin 14, 2018, 10:36:09 pm par msport »
Cordialement

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1265
    • Voir le profil
Re : Mini décodeur à base d'ATTiny 84
« Réponse #8 le: juin 14, 2018, 11:12:56 pm »
Bonsoir,

La numérotation est basée sur celle de l’attinycore : https://github.com/SpenceKonde/ATTinyCore

https://camo.githubusercontent.com/d46f3f004aaf977040d933ae5eaf25d22d33eac1/687474703a2f2f6472617a7a792e636f6d2f652f696d672f50696e6f7574543834612e6a7067

La normale, pas l’alternative.

Pour ma part, je mets l’horloge à 8 MHz. À 1MHz ça risque d’être tendu de décoder les trames.

msport

  • Sr. Member
  • ****
  • Messages: 467
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Mini décodeur à base d'ATTiny 84
« Réponse #9 le: juin 14, 2018, 11:53:04 pm »
Merci Jean-Luc,
bien noté, je pars sur 9 et 10.
L'exemple peut marcher puisqu'il balaie toutes les sorties ... trop facile.
Cordialement

msport

  • Sr. Member
  • ****
  • Messages: 467
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Mini décodeur à base d'ATTiny 84
« Réponse #10 le: juin 17, 2018, 04:38:40 pm »
Bon, j'ai du mal avec ce sketch.
La version pour Nano (ports modifiés, sinon idem) fonctionne comme fonctionnait la version d'origine pour ATTiny13, et la version pour ATTiny84 pas du tout.
La carte est OK : j'ai bien le signal DCC sur la broche 5 physique de l'ATTiny.
J'ai testé la carte, les ports de sortie sont opérationnels, le port 8 en entrée (broche 5 physique) aussi.
les ports 0, 1, 2, 3 sont OK aussi.
Je testerai à nouveau avec un ATTiny84 en DIL, à commander, avec une détection à 6N317 ou la réciproque l'interface à V00600T sur Nano.
Deux hypothèses : l'interface DCC ou l'affectation des ports. (nota pourquoi le port 7 est connecté au port 8 ?)
Ci-joint :
mes options pour l'IDE, mais les programmes de test sont OK.
version pour ATTiny84 : RB_DCC_Decoder_Function_ATtinyM4.ino
version pour Nano : RB_DCC_Decoder_Function_ATtinyM4n.ino
Nota, elles ne sont pas finalisées.
Cordialement

msport

  • Sr. Member
  • ****
  • Messages: 467
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Mini décodeur à base d'ATTiny 84
« Réponse #11 le: juin 19, 2018, 06:23:31 pm »
Un pas de plus dans le débogage :
j'ai rentré le signal DCC via un 6N137 Vishay validé par ailleurs, directement à l'ATTiny (par S2), alimenté en 5 V par K2 et il décode correctement.
Le problème est donc au niveau de la partie opto.
Pourtant le signal est bien fourni  à l'ATTiny et il parait propre.
J'avais mis la charge (R2) à 4Kohm comme les spécifications le demandent, mais sans plus de résultat.
Qui aurait un sketch (+library) comme référence au cas où les timings gérés par interruption seraient limites ?
Edit : remplacement de la LED par une diode sans résultat.
« Modifié: juin 19, 2018, 06:43:12 pm par msport »
Cordialement

msport

  • Sr. Member
  • ****
  • Messages: 467
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Mini décodeur à base d'ATTiny 84
« Réponse #12 le: juin 19, 2018, 10:58:36 pm »
La solution (restons prudent). Après balade sur Internet, je suis retombé sur le site de D. Bodnar qui m'a déjà inspiré mes manettes. Il a aussi publié un décodeur de fonction (en fait probablement un décodeur d'accessoires) avec le sempiternel montage de Mynabay, sauf qu'il y a ajouté un condensateur de 270pF (et pas 27pF comme écrit précédemment) en parallèle sur l'entrée de l'optocoupleur .Et ça marche. Et moi qui commençait à chercher des optocoupleurs encore plus rapides.

Ce que c'est d'utiliser du trop bon matériel !  Je vais ressortir mes CNY17.

http://www.trainelectronics.com/DCC_Arduino/Decoder_board/
« Modifié: juin 20, 2018, 09:41:58 am par msport »
Cordialement

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1452
  • 100% Arduino et N
    • Voir le profil
Re : Mini décodeur à base d'ATTiny 84
« Réponse #13 le: juin 19, 2018, 11:21:23 pm »
Sur ce schéma, je vois une capa de 270 pf.

Je vais essayer car j’ai eu une panne bizarre et simultanée dans 2 projets que j’ai monté il y a plus d’un an :
- un décodeur pour 16 signaux (sur un Mega)
- un moniteur DCC sur LCD (sur un Nano)

Les 2 montages ont cessé de voir le protocole DCC, alors que le signal sur la broche 2 semblait correcte.

J’ai pensé que la résistance de 1k en série avant l’opto était trop faible.
http://www.mynabay.com/dcc_monitor/

J’ai mis une 4K et ça re-marche ! Mais c’est peut-être un peu trop.
Je me demande d’ailleurs pourquoi ça a marché si longtemps. Est-ce qu’un courant excessif aurait fatigué le 6N137 ?

Là dans le circuit de Bodnar la résistance est toujours de 1k mais il y a cette capa de 270 pf qui filtre peut-être des parasites faibles mais perturbant.

A suivre..

msport

  • Sr. Member
  • ****
  • Messages: 467
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Mini décodeur à base d'ATTiny 84
« Réponse #14 le: juin 20, 2018, 09:40:52 am »
Il manquait juste un zéro, c'est bien 270 pF que j'ai mis. Je vais tester en diminuant.
Je pense que ces sketches sont prévus pour fonctionner sur de grands réseaux (et pas seulement sur table !) donc avec des capacités réparties importantes (rails + locos + etc.) qui modifient les timings.
J'avais déjà constaté que dans certains cas, il fallait une locomotive sur les rails pour que ça fonctionne.
Les optocoupleurs sont spécifiés à partir de 5 mA, donc on peut commencer à 2K.
C'est l'occasion de recycler des 6N137 récalcitrants. (à part ceux qui ont pris du 12V)
Cordialement