Go Down

Topic: Problèmes d'encodeur EC11 (Read 39493 times) previous topic - next topic

LamiRene

Bonjour,

Bon, après la découverte des erreurs dans ma documentation sur les Tiny (mon message précédent), soulagement intellectuel de voir que je ne suis pas aussi bête que ça ! Fierté d'avoir surmonté l'embûche et joie de voir mon code source d'échange en i2c entre Mega et Nano fonctionner entre Mega et Tini85 et Tiny84, du fait d'utiliser maintenant les bonnes broches de ces circuits intégrés !

Il me faut maintenant tester l'équivalent avec un ATMEGA328-PU sur planche d'expérimentation, puis, testé les trois types de circuits (Nano, ATMEGA328-PU et Tiny84) avec quelques encodeurs (je pense à 4) pour finalement pouvoir choisir judicieusement quelle CI intégrer à mon projet de cockpit, avant de tout chambouler derrière le cockpit actuel.

Mais, vous, de par vos expériences dans le concret, à ma place, que choisiriez-vous ?

Avez-vous un penchant plus prononcé pour l'une de ces solutions ?

Pour quoi ?

Je suis curieux de vous lire !

Merci pour tout !

L'ami René
Tous pour un et un pour tous !

LamiRene


La Reference :
www.atmel.com/images/atmel-2586-avr-8-bit-microcontroller-attiny25-attiny45-attiny85_datasheet.pdf
Bonne lecture
Jacques


Bonjour Jacques,

Oui, je sais bien, c'est l'ultime référence, mais c'est en anglais, ça fait 234 pages. Pas pratique au travers des minuscules composantes d'électronique de mon microscopique atelier, qui n'est qu'un bout de table recyclé.

C'est pour cela que je souhaiterais avoir une feuille, une image du type du premier lien « http://www.ledsandchips.com/upload/cards/attiny.jpg », qui fait la corrélation entre les broches des cartes Arduino, des broches des CI ATMEGA328-PU et des broches des CI Tiny85 et Tiny84.



Et j'y pense, je m'y collerais si le logiciel qui a servi à faire ce montage graphique était sous Linux Kubuntu. Alors, connaissez-vous le logiciel qui a servi à ce montage graphique ?

L'ami René
Tous pour un et un pour tous !

jean-I

mon avis:
1) soit tu colle un attiny45/85 derriere chaque codeur,
2) soit tu mets un 328 pour l'ensemble des codeurs qui te manquerait sur le 2560.

la solution 1 est a previlegier si tu veut un truc modulaire-extensible
la solution 2 est a previlegier si tu veut gerer d'autres chose avec (par exemple les 3 lcd)

la solution 2 a l'avantage d'avoir sa platine UNO pour laquelle tu devrai deja etre familier.

LamiRene

Rebonjour Jean,

Une fois de plus vos recommandations sont très judicieuses et c'est la première fois que le cas des Tiny85 attirent mon attention, je l'est trouvaient trop limité en nombre de broches, mais ici le côté modulaire resurgir plus qu'avant.

Il va vraiment falloir que je réfléchisse bien à tout cela et que je priorise une option ou une autre.

Merci bien !

J'espère que beaucoup d'autres personnes me feront leurs recommandations, la différence d'opinions et de points de vue est une richesse...

L'ami René
Tous pour un et un pour tous !

fdufnews


C'est pour cela que je souhaiterais avoir une feuille, une image du type du premier lien
.....
Et j'y pense, je m'y collerais si le logiciel qui a servi à faire ce montage graphique était sous Linux Kubuntu. Alors, connaissez-vous le logiciel qui a servi à ce montage graphique ?


Sous Linux, il y a Inkscape qui permet de faire ça http://www.inkscape.org/fr/. Tu le trouveras dans les dépôts standards.

LamiRene

Bonjour fdufnews,

Merci pour l'info et le lien !

Inkscape est un éditeur de graphismes vectoriels génériques très performants et je pensais plus à un produit spécialisé, du genre Fritzing, mais avec des formats de puce (CI) que l'on place sur une feuille blanche et une liste d'autres icônes que l'on place à côté et que l'on personnalise et relie entre eux.

Mais s'il existait un modèle Inkscape de circuit et brochage que je pourrais recycler. Par exemple, si j'avais le modèle Inkscape d'une seule des puces Tiny ou Uno, avec du copier/coller je m'en sortirais, mais partir de zéro avec Inkscape cela serait trop laborieux.

L'ami René
Tous pour un et un pour tous !

JMe87

Bonjour,
les informations de brochage dans la doc Atmel sont sur la page 2, je crois que c'est accessible meme a un Francophone !
Tu peux aussi aller voir ici :
https://sites.google.com/site/mechatronicsguy/arduinocheatsheet



il y a plein d'infos utiles soft et hard.
Jacques

JMe87

Rene,
pourrais-tu nous dire clairement ce que tu recherches.
Je viens de relires tes quelques derniers messages, c'est du n'importe quoi.
Tu dis qu'il y a des erreurs et omissions sur une documentations d'un site anglophone et tu nous demandes de les en informer sans nous dire de quoi il s'agit.
Tu es parvenu a faire UNE liaison I2C entre UN Tinny85 et un Mega et tu nous demandes un avis. Si tu as besoin de 8 encodeurs supplementaires, il va te plein de Tinny supplementaires et un soft autrement complexe a developper.
Je t'ai dis qu'il existait des I/O Expander faits pour cela. Tout le travail est prepare, il suffit de configurer.
Si tu veux un Micro distant pour lire tes encodeurs, alors choisis un micro 40 pins, par exemple le 644. Supporte par Arduino, il gere tous les encodeurs et discute avec le Mega en I2C. C'est plus facile a mettre en route.
Je trouve que memoriser a distance un certain nombre de clics d'encodeur et envoyer la somme vers le Mega, cela va avoir pour consequence un affichage qui saute des pas. Deconcertant.
Jacques

LamiRene

#98
Sep 11, 2014, 04:36 am Last Edit: Sep 11, 2014, 04:37 am by LamiRene Reason: 1
Bonjour à tous,

Voici l'une des choses dont un débutant comme moi avec un nouveau circuit imprimé (CI) a besoin pour partir avec une puce comme la Tiny84 :

Quote

Tyny84
Numéro ----- Dans
de ----------- le ------- Les
Broche ------ code ---- fonctions
physique # -- source -- de la broche
1 ------------- N/A ---- +5V
2 ------------- 0 ------ PB0 (PCINT8/XTAL1/CLKI)
3 ------------- 1  ------ PB1 (PCINT9/XTAL2)
4 ------------- 3 ------ PB3 (PCINT11/RESET/dW)
5 ------------- 2 ------ PB2 (PCINT10/INT0/OC0A/CKOUT)
6 ------------- ? ------ PA7 (PCINT7/ICP/OC0B/ADC7)
7 ------------- 4 ------ PA6 (PCINT6/SDA/MOSI/DI/ADC6)
8 ------------- 5 ------ PA5 (PCINT5/OC1B/MISO/DO/ADC5)
9 ------------- 6 ------ PA4 (PCINT4/T1/SCL/USCK/ADC4)
10 ------------ 7 ------ PA3 (PCINT3/T0/ADC3)
11 ------------- 8 ------ PA2 (PCINT2/AIN1/ADC2)
12 ------------- 9 ------ PA1 (PCINT1/AIN0/ADC1)
13 ------------ 10 ------ PA0 (PCINT0/AREF/ADC0)
14------------- N/A ---- GND

N/A = Non Applicable

Donc, le numéro de la broche physique sur le CI, le nom à utiliser dans le code source pour la désigner et les désignations des fonctions associées à la broche. Exemple, pour utilisé la fonction MOSI de la broche physique # 7, dans le code source Arduino je dois écrire « 4 ».

Malheureusement, c'est avec une démarche essai/erreur sur chaque broche avec le code source Blink.ino et en passant la valeur de la DEL de 0 à 20 et de A0 à A5, que j'ai finalement constitué le tableau qui précède.

J'aurais deux questions :

1) Dans les codes sources Arduino, quel est le nom ou numéro a utilisé pour la broche physique # 6, car si vous regardez le tableau, je n'ai rien trouvé pour cette broche et il semblerait que ce n'est pas une valeur entre 0 à 20 et de A0 à A5 ?

2) Comment cela se fait-il que je doive passer par une démarche essai/erreur pour avoir ce genre d'information fondamental pour utiliser un CI (sujet sous-jacent dans nos deniers messages de la présente discussion) ?

Merci d'avance pour votre compréhension et votre aide à un débutent, parfois un peu stupide comme moi ?

L'ami René
Tous pour un et un pour tous !

jean-I

???
sur quoi t'est tu basé pour ajouter le support du tiny84 dans l'ide?
il n'y a pas des explications sur le site ou tu as downloadé ?

tu doit avoir dans arduino-1.0.5/hardware/arduino/variants/tiny14/pins_arduino.h
tout ce que t'as besoin

LamiRene

Bonjour Jean,

Merci pour la piste que je devais suivre « /hardware/arduino/variants/tiny14/pins_arduino.h » !

Je n'ai pas cette structure de fichier chez moi, mais en regardant le « README » de l'archive « arduino-tiny-0100-0018 », il est question de :

Quote

* Extract the contents of the archive into the "hardware" folder.  For example,
  if the Arduino Sketch folder is...

      C:\Projects\Arduino

  After extracting, the following files / folders should exist...

      C:\Projects\Arduino\hardware\tiny\license.txt
      C:\Projects\Arduino\hardware\tiny\Prospective Boards.txt
      C:\Projects\Arduino\hardware\tiny\README
      C:\Projects\Arduino\hardware\tiny\bootloaders\
      C:\Projects\Arduino\hardware\tiny\cores\


Donc, chez moi, sous Linux Kubuntu, c'est plus du genre :

Pour Arduino 1.0.5+dfsg2-2 :
Code: [Select]
/usr/share/arduino/hardware/tiny/cores/tiny

Pour Arduino partagé :
Code: [Select]
/home/rene/Arduino/libraries/

Pour Arduino 1.0.5 (directement du site arduino.cc) :
Code: [Select]
/home/rene/sda6/Électroniques/Arduino_Linux_1.0.5/hardware/tiny

Pour Arduino 1.5.7 beta (directement du site arduino.cc) :
Code: [Select]
/home/rene/sda6/Électroniques/Arduino_Linux_1.5.7/hardware/tiny

Et dans le fichier « ~/Arduino_Linux_1.0.5/hardware/tiny/cores/tiny/pins_arduino.h », c'est du chinois pour moi !

Mais dans le fichier « ~/Arduino_Linux_1.0.5/hardware/tiny/cores/tiny/pins_arduino.c », j'ai trouvé :

Code: [Select]

#if defined( __AVR_ATtinyX5__ )

// ATMEL ATTINY45 / ARDUINO
//
//                           +-\/-+
//  Ain0       (D  5)  PB5  1|    |8   VCC
//  Ain3       (D  3)  PB3  2|    |7   PB2  (D  2)  INT0  Ain1
//  Ain2       (D  4)  PB4  3|    |6   PB1  (D  1)        pwm1
//                     GND  4|    |5   PB0  (D  0)        pwm0
//                           +----+

...
Code: [Select]

#if defined( __AVR_ATtinyX4__ )

// ATMEL ATTINY84 / ARDUINO
//
//                           +-\/-+
//                     VCC  1|    |14  GND
//             (D  0)  PB0  2|    |13  AREF (D 10)
//             (D  1)  PB1  3|    |12  PA1  (D  9)
//                     PB3  4|    |11  PA2  (D  8)
//  PWM  INT0  (D  2)  PB2  5|    |10  PA3  (D  7)
//  PWM        (D  3)  PA7  6|    |9   PA4  (D  6)
//  PWM        (D  4)  PA6  7|    |8   PA5  (D  5)        PWM
//                           +----+

...
Code: [Select]

#if defined( __AVR_ATtinyX313__ )

// On the Arduino board, digital pins are also used
// for the analog output (software PWM).  Analog input
// pins are a separate set.

// ATMEL ATTINY2313
//
//                   +-\/-+
//      (D 17) PA2  1|    |20  VCC
// RX   (D  0) PD0  2|    |19  PB7 (D  16)
// TX   (D  1) PD1  3|    |18  PB6 (D  15)
//      (D  2) PA1  4|    |17  PB5 (D  14)
//      (D  3) PA0  5|    |16  PB4 (D  13)*
// INT0 (D  4) PD2  6|    |15  PB3 (D  12)*
// INT1 (D  5) PD3  7|    |14  PB2 (D  11)*
//      (D  6) PD4  8|    |13  PB1 (D  10)
//     *(D  7) PD5  9|    |12  PB0 (D  9)
//             GND 10|    |11  PD6 (D  8)
//                   +----+
//
// * indicates PWM port


Et c'est très près de ce que cherche un néophyte francophone comme moi.

Encore Merci !

L'ami René
P.-S. Si à 52 ans un bonhomme vivant au Québec n'est pas devenu bilingue (français, anglais), c'est qu'il y a de bonnes raisons... Alors il faut être réaliste, cela n'est pas dans cette vie-ci que je le deviendrai, à mon grand regret, vous vous en doutez bien !!!
Tous pour un et un pour tous !

LamiRene

#101
Sep 12, 2014, 06:58 am Last Edit: Sep 12, 2014, 09:05 am by LamiRene Reason: 1
Rebonjour,

Et voici ce que j'ai fait des informations que j'ai trouvées. À défaut d'un logiciel graphique spécialisé, avec un éditeur de code source basique. La principale différence est que j'ai tout regroupé en une seul page et coller au plus proche du numéro des broches, le libellé à utiliser dans le code source Arduino pour désigner les broches. Ça peut donner cela comme aide mémoire pour débuter avec Arduino et Tiny :

Code: [Select]

/*
           Programmation sur Breadboard
            :--- De ----:---- à ---- :
Arduino / CI : Uno  Mega : 328P 84 85 :
Slave reset  : 10   53   : 1    4  1  :
MOSI         : 11   51   : 17   7  5  :
MISO         : 12   50   : 18   8  6  :
SCK          : 13   52   : 19   9  7  :
            :-----------:------------:

Mettre une DEL (avec résistance de 220?) sur les broches suivantes :
9 : En action     - Montre que le programme est en exécution (Verte).
8 : Erreur        - S'allume si quelque chose va mal (Rouge)
7 : Programmation - En communication avec l'esclave (Jaune)

                                   Atmel Tiny 85
                                      +-\/-+
      dW RESET Ain0 ADC0 PCINT5 PB5 5 |1  8|   VCC
CLKI OC1B XTAL1 Ain3 ADC3 PCINT3 PB3 3 |2  7| 2 PB2 PCINT2 ACD1 INT0 USCK SCK  SCL T0 Ain1
CLKO OC1B XTAL2 Ain2 ADC2 PCINT4 PB4 4 |3  6| 1 PB1 PCINT1 AIN1 OC1A OC0B MISO     DO PWM1
                                GND   |4  5| 0 PB0 PCINT0 AIN0 OC1A OC0A MOSI SDA DI PWM0 AREF
                                      +----+

                                 Atmel Tiny 84
                                    +--\/--+
                              VCC   |1   14|   GND
           CLKI XTAL1 PCINT8  PB0 0 |2   13| 10 PA0 PCINT0 ADC0 AREF
                XTAL2 PCINT9  PB1 1 |3   12|  9 PA1 PCINT1 ADC1 AIN0
             dW RESET PCINT11 PB3   |4   11|  8 PA2 PCINT2 ADC2 AIN1
  PWM INT0 OC0A CKOUT PCINT10 PB2 2 |5   10|  7 PA3 PCINT3 ADC3 T0
  PWM ICP  OC0B ADC7  PCINT7  PA7 3 |6    9|  6 PA4 PCINT4 ADC4 T1 USCK SCL
DI PWM SDA  MOSI ADC6  PCINT6  PA6 4 |7    8|  5 PA5 PCINT5 ADC5 DO OC1B MISO PWM
                                    +------+

                         Atmel Mega 328P
                            +---\/---+
        RESET PCINT5  PC6   |1     28| A5 PC5 PCINT13 ADC5 SCL
        RXD   PCINT16 PD0 0 |2     27| A4 PC4 PCINT12 ADC4 SDA
        TXD   PCINT17 PD1 1 |3     26| A3 PC3 PCINT11 ADC3
        INT0  PCINT18 PD2 2 |4     25| A2 PC2 PCINT10 ADC2
PWM OC2B INT1  PCINT19 PD3 3 |5     24| A1 PC1 PCINT9  ADC1
   XCK  TO    PCINT20 PD4 4 |6     23| A0 PC0 PCINT8  ADC0
                      VCC   |7     22|    GND
                      GND   |8     21|    AREF
   OSC1 XTAL1 PCINT6  PB6   |9     20|    VCC
   OSC2 XTAL2 PCINT7  PB7   |10    19| 13 PB5 PCINT5      SCK
PWM OC0B T1    PCINT21 PD5 5 |11    18| 12 PB4 PCINT4      MOSI
PWM OC0A AIN0  PCINT22 PD6 6 |12    17| 11 PB3 PCINT3 OC2A MISO PWM
        AIN1  PCINT23 PD7 7 |13    16| 10 PB2 PCINT2 OC18 SS   PWM
   ICP1 CLKO  PCINT0  PB0 8 |14    15|  9 PB1 PCINT1 OC1A      PWM
                            +--------+
*/


Pour la section « Programmation sur Breadboard », est-ce qu'il faut inversé les MOSI et MISO du "Master" vs "Slave" et donc corriger le tableau ?

Si j'ai fait des erreurs, m'en aviser, pour que je corrige le document.

En pièce jointe, une version txt et pdf de cet aide mémoire.

Merci de m'avoir indiqué la bonne piste à suivre !

L'ami René
P. s. Pour copier/coller dans les entêtes de nos codes sources et pour circulation le plus large possible...
Modif. : Pour Tiny 85 rajout de SDA et doublon PCINT2 pour PCINT0, corrections des fichiers.
Tous pour un et un pour tous !

fdufnews

Pour faire des fiches sans inkscape il y a aussi une solution simple avec une feuille de tableur.
En pièce jointe un modèle que j'ai fait pour une carte Nucleo.
Un peu moins de deux heures de travail avec le module calc de libre office.

fdufnews


LamiRene

Bonjour fdufnews,

Super bonne idée et super travail, très inspirant !

Le côté ajout des couleurs à sa grande efficacité, le repérage rapide des types de broches, etc.

Un grand merci !

Bon, pour aujourd'hui, j'en ai un peu ras le bol des « ...PCINT0 AIN0 OC1A OC0A MOSI SDA DI PWM0 AREF... », et je viens de corriger deux ou trois erreur et omission que j'ai faite. Alors, au cas ou vous en trouveriez d'autres, il est plus sage que je me change les idées ailleurs.

Mais dans les jours qui viennent, je passe le tout à Libre Office Calc avec couleur et image.

L'ami René
Tous pour un et un pour tous !

Go Up