Détection d'interruption ?
Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

Détection d'interruption ?



  1. #1
    abracadabra75

    Détection d'interruption ?


    ------

    Bonjour.

    Mon but: compter des passages aléatoires détectés par la coupure d'un faisceau lumineux.
    Le comptage se fait par un µp (ATMEL Attiny2313), par déclenchement d'une interruption externe.
    La sortie de la détection se fait sur une porte CMOS qui est branchée sur l'interruption.
    Afin d'adapter les impédances d'entrée de l'interruption et de sortie de la porte CMOS, j'ai mis un MOSFET BS170 (peu importe que le signal soit inversé...).
    Sur le papier (et la simulation ISIS utilisée pour en même temps tester le programme), tout semble parfait et fonctionne. Mais quand je passe au montage de test, les niveaux sur l'interruption ne changent pas et restent au niveau (haut) de repos de l'interruption.
    Sur la pj, j'ai mis la porte de sortie, la détection étant simulée par des créneaux High/low.
    Je fais sûrement une erreur, mais laquelle*?

    Bonne année à tous.

    A+

    -----
    Images attachées Images attachées  
    Il n'y a que dans le dictionnaire où 'réussite' vient avant 'travail'.

  2. #2
    Antoane
    Responsable technique

    Re : détection d'interrupt

    Bonjour,
    As-tu activé une pull-up en interne ?
    L'état en sortie du 4011 varie-t-il ?
    Quelle est la tension d'alim du 4011 ?
    Dernière modification par Antoane ; 30/12/2014 à 16h13.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  3. #3
    gienas
    Modérateur

    Re : détection d'interrupt

    Bonsoir abracadabrantes et tout le groupe

    Citation Envoyé par abracadabra75 Voir le message
    ... Sur le papier (et la simulation ISIS utilisée pour en même temps tester le programme), tout semble parfait et fonctionne. Mais quand je passe au montage de test, les niveaux sur l'interruption ne changent pas et restent au niveau (haut) de repos de l'interruption.
    Sur la pj, j'ai mis la porte de sortie, la détection étant simulée par des créneaux High/low ...
    Je préfèrerais que:

    1- tu testés sans le micro, ton entrée interruption, avec une résistance de pull un. Des fois que ...

    2- que ce test se fasse sans géné sur l'entrée du CMOS pour faire les niveaux 0 et 1.

    3- si t'es niveaux sont bons, tu places ton micro et tu testes.

    Si déjà là, t'es niveaux ne sont pas transformés, tu délimités la zone et les responsables possibles.


    Edit: je crois voir qu'Antoane est sur la même longueur d'onde.
    Dernière modification par gienas ; 30/12/2014 à 16h20.

  4. #4
    vincent66

    Re : détection d'interrupt

    Bonsoir,
    Et petite question subsidiaire : quelle est la tension de gate de saturation du NMOS, ce n'est pas un Logic Level il me semble..?
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  5. A voir en vidéo sur Futura
  6. #5
    jiherve

    Re : détection d'interrupt

    Bonsoir
    soyons concis le MOS ne sert strictement à rien!
    JR
    l'électronique c'est pas du vaudou!

  7. #6
    abracadabra75

    Re : détection d'interrupt

    Tout le circuit se fait sous les 5 V, commun à tous les composants (sur le schéma, tronqué,je n'ai mis que ce qui me posait problème).
    J'ai testé tous les composant qui fonctionnent seuls dans des montage de base.
    En init du programme, la broche de l'INT0 est bien mise au niveau haut par pull-up interne, de l'ordre de 47kohms.
    Si je connecte cette broche (INT0) à la masse via un banal poussoir temporaire, l'interrupt fonctionne normalement (je compte même les rebonds! en montage 'réel' sur table).
    La sortie du 4011 inverse normalement les signaux; j'ai testé en le remplaçant par une sortie de 4060, également avec des buffers 4049 et 4069, même ennui.
    Tous les éléments pris séparément fonctionnent normalement, en montages de test.
    Au départ, j'avais essayé l'adaptation d'impédances avec un banal transistor bipolaire, mais la tension de déchet empêche de descendre plus bas que 2 volts environ (avec un BC558), supérieure au niveau bas réclamé par la patte du µp.
    Mais je ne sais pas répondre directement à la question de vincent66, il faut que je reprenne le datasheet du BS:
    http://pdf1.alldatasheet.com/datashe...DES/BS170.html
    sur lequel je pense que c'est le 'forward voltage drop', soit 0.85, ou le 'gate threshold voltage, soit 0.8v? admissibles tous deux le niveau bas du µp étant tout ce qui est < à 1.1v (bon... je sais avec les dispersions des composants fet....).
    Il n'y a que dans le dictionnaire où 'réussite' vient avant 'travail'.

  8. #7
    abracadabra75

    Re : détection d'interrupt

    Problème résolu: je viens de recevoir un nouveau BS170: avec celui-ci, tout se passe normalement!
    Le 'vieux' était... foireux, tout simplement, bien que donnant un résultat correct en test!!
    Merci à vous et:

    BONNE ANNEE

    A+
    Il n'y a que dans le dictionnaire où 'réussite' vient avant 'travail'.

  9. #8
    abracadabra75

    Re : Détection d'interruption ?

    bonsoir jhervé.
    Si je branche en direct la porte CMOS à la patte du µP, la sortance du cmos est insuffisante pour une attaque directe.
    Est-ce cela que tu veux suggérer?

    (Sur une autre réalisation, j'avais un problème analogue en liaison directe
    Faute de temps, j'avais été obligé de laisser tomber)
    Dernière modification par abracadabra75 ; 30/12/2014 à 21h50.
    Il n'y a que dans le dictionnaire où 'réussite' vient avant 'travail'.

  10. #9
    Antoane
    Responsable technique

    Re : détection d'interrupt

    Bonsoir,
    Le BS170 n'est pas compatible TTL : sa Rds_on n'est spécifiée qu'à Vgs=10V, pas pour Vgs=5V. https://www.fairchildsemi.com/datasheets/BS/BS170.pdf "On Characteristic", page 2. Ton transistor n'était donc pas nécessairement foireux, c'est juste que le nouveau convient. Ce n'est pas pour autant définitif : le Vgs_th étant fonction de la température et changeant avec le temps, ton montage peut cesser de fonctionner dans certaines conditions.
    Mieux vaudrait donc employer un transistor compatible avec une commande en 0/5V (ex : 2n7002).

    J'ai du mal à comprendre que la tension de sortie d'une 4011 s'écroule :
    - Alimenté sous 5V, l'attiny voit comme un 0 toute tension inférieure à 0.5V (cf page 177 http://www.atmel.com/images/doc2543.pdf) ;
    - Alimenté sous 5V, un 4011 peut débiter au moins 360µA (soit 14kOhm) et fournir une tension de sortie de 0.4V ;
    - La pull-up interne est de valeur comprise entre 20kOhm et 50kOhm (http://www.atmel.com/images/doc2543.pdf p177).
    As-tu mesuré les tensions de sortie haute et basse du 4011 chargé par le µC ?
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  11. #10
    abracadabra75

    Re : détection d'interrupt

    Bien sûr que j'ai mesuré quand j'ai constaté le non fonctionnement, mais je ne les ai pas notées...
    Je reprendrai les tests demain (ou plus tard), mais comme mes petits-enfants sont arrivés pour fêter le 31/12, je ne pourrai pas le faire tout de suite, et ce soir, j'ai la flemme (le vin d'Alsace était.... gouleyant!)
    Merci pour la bonne référence. J'espère que ça se trouve chez tous les bons épiciers, et pas par 1000 pièces!
    Il n'y a que dans le dictionnaire où 'réussite' vient avant 'travail'.

  12. #11
    jiherve

    Re : détection d'interrupt

    Bonjour,
    Comme je suis d'une nature têtue :
    le 4011 a pour caractéristiques :
    Vol = 0,4V Iol = 0,51ma
    Voh = 4,6v Ioh = -0,51ma
    l'entrée INT0 quant à elle c'est:
    Vil 0,5v Iil = -0,12 ma
    Donc à sec cela doit marcher si INT0 est réellement configurée en entrée, j'aimerais voir le code, car la particularité de cette pin c'est de pouvoir être utilisée en interruption même si elle est configurée en sortie et dans ce cas le MOS devient nécessaire pour forcer la sortie, cela se nomme un court circuit!!
    Observe that, if enabled, the interrupts will trigger even if the INT0, INT1 or PCINT7..0 pins are configured as outputs.
    Bis repetita Antoanius!!!
    Bonnes fetes
    JR
    Dernière modification par jiherve ; 31/12/2014 à 09h57.
    l'électronique c'est pas du vaudou!

  13. #12
    abracadabra75

    Re : Détection d'interruption ?

    Merci de ces judicieux conseils, que j'ai suivis.
    Le code... est en BASCOM, où le fait de configurer l'interruption place la broche PORTD.2 automatiquement en entrée:
    Code:
    Config Int0 = Falling
    Enable Int0
    sans avoir à initialiser le DDRD, sauf bien sûr si on utilise les autres I/O.
    Quant aux liaisons entre broches, ou vers d'autres sources de courant, j'interpose toujours (sauf oubli...) une 470ohms.
    Cet oubli d'ailleurs, n'a pas été néfaste: pas de passage à trépas, sans doute par chance?(quoique je n'y croies pas, le père OHM étant encore plus têtu que toi). Je vais essayer de comprendre les schémas des ports I/O.
    Bien que ce soit jour de FET, je l'ai supprimé, et cela fonctionne impec.
    Cela veut dire que je m'étais planté dans mon montage sur plaque....

    Petite info: 50 (et même 100!!!) 2N7002 coûtent 1 euro , transport gratuit, depuis la Chine! moins cher que d'aller chez l'épicier du coin.

    Encore merci à vous tous qui avez pris le temps de me répondre, mais qui m'avez appris quelques petites choses.

    JOYEUX REVEILLON (sans excès...) BONNE ANNEE

    A+
    Il n'y a que dans le dictionnaire où 'réussite' vient avant 'travail'.

  14. #13
    jiherve

    Re : Détection d'interruption ?

    Re
    Comme je n'utilise pas ce langage je ne saurais dire ce qu'il fait ou ne fait pas, étant de la vielle école, celle d'avant les µC je programme en assembleur ou en C (plus rarement toutefois).
    Ceci dit je pense qu'il faut initialiser le PORT, ce qui doit être fait si l'on veux activer les Pull up.
    j'avais écrit :
    cela se nomme un court circuit
    mais en réalité c'est un conflit de port
    JR
    l'électronique c'est pas du vaudou!

  15. #14
    DAUDET78

    Re : Détection d'interruption ?

    Citation Envoyé par jiherve Voir le message
    j'avais écrit : mais en réalité c'est un conflit de port
    C'est facile de lever le doute !
    • On ne branche rien sur la broche du µC
    • On fait un pont diviseur sur l'alimentation Vdd avec 1K et 1K
    • On branche la sortie du pont diviseur sur la broche du µC


    On mesure la tension sur la broche du µC

    3 cas possibles :
    • On mesure une tension faible : Le port est en sortie et au niveau "0"
    • On mesure une tension Vdd/2 : Le port est en entrée
    • On mesure une tension haute : Le port est en sortie et au niveau "1"


    Et en fonction du résultat, on se replonge dans le logiciel
    Dernière modification par DAUDET78 ; 31/12/2014 à 11h10.
    J'aime pas le Grec

  16. #15
    abracadabra75

    Re : Détection d'interruption ?

    Etant d'une école encore plus ancienne(+20), je programme d'habitude en assembleur, mais le BASCOM est d'un emploi tellement commode,(je n'ai jamais pu accrocher le C sûrement plus généraliste et transportable, mais trop gourmand en ressources pour les petits µC) que la plupart du temps je fais les déclarations en BASCOM et le programme lui-même en assembleur, ce dernier pouvant y être inclus par une ligne d'avertissement au compilateur.
    Il n'y a que dans le dictionnaire où 'réussite' vient avant 'travail'.

Discussions similaires

  1. Interruption USB
    Par AiMaxTht dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 27/07/2014, 07h52
  2. Interruption sur pic 18F
    Par Fredryck dans le forum Électronique
    Réponses: 30
    Dernier message: 02/05/2014, 16h05
  3. PIC : interruption externe et interruption on change ?
    Par jlg_47 dans le forum Électronique
    Réponses: 10
    Dernier message: 09/04/2012, 12h41
  4. [C / PIC18] - Problème de détection d'interruption
    Par jorg1n dans le forum Électronique
    Réponses: 15
    Dernier message: 25/08/2009, 08h47
  5. interruption sur pic
    Par alainav1 dans le forum Électronique
    Réponses: 4
    Dernier message: 02/08/2009, 20h13
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...