Question communication série sur ATMEL
Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

Question communication série sur ATMEL



  1. #1
    Canaillou2k5

    Question communication série sur ATMEL


    ------

    Bonjour, je dispose de microcontrôleurs ATMEL.

    Pour ce qui est de l'ATtiny45:

    Il dispose d'un USI : Universal Serial Interface.

    Je suppose que l'on peut faire n'importe quel type de liaison série avec ce port ?

    RS232, I2C, SPI.....

    Pour le mega8535:

    Il à une fonction SPI intégrée en natif si j'ai compris, et on à juste à lui envoyer notre mot de huit bit et il se débrouille pour l'envoyer.

    Par contre pour le tiny45 il faut qu'on fasse une fonction qui contrôle la transmission bit à bit adapté au protocole de transmission.

    Merci pour vos lumières.

    -----

  2. #2
    ftorama

    Re : Question communication série sur ATMEL

    Si j'ai bien compris (puisqu'il n'y a pas de question dans ton post), tu veux savoir si on est obligés d'écrire la gestion du SPI en bit-bang sur l'Attiny45.

    La réponse est non, regarde la doc:
    http://www.atmel.com/dyn/resources/p...ts/doc2586.pdf

    Chapitre 15.3.1, il suffit de mettre les bonnes valeurs dans USIDR et USICR.

    L'exemple de code fournit un peu plus bas permet de gérer le bon fonctionnement de l'échange, mais pas bit à bit:
    Code:
    SPITransfer:
       out USIDR,r16
       ldi r16,(1<<USIOIF)
       out USISR,r16
       ldi r16,(1<<USIWM0)|(1<<USICS1)|(1<<USICLK)|(1<<USITC)
    SPITransfer_loop:
       out USICR,r16
       in r16, USISR
       sbrs r16, USIOIF
       rjmp SPITransfer_loop
       in r16,USIDR
       ret
    Le code plus bas permet de travailler à haute vitesse soit la moitié du quartz....mais inutile la plupart du temps
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

  3. #3
    Canaillou2k5

    Re : Question communication série sur ATMEL

    Merci pour la réponse, en effet je n'avais pas regarder en détail.

    Mon but est d'augmenter le nombre d'E/S de mon tiny45 pour pouvoir contrôler un LCD.

    J'ai vu ce composant: PCF8574 pour l'IC2 existe t-il un équivalent pour le SPI ?

    Sinon pour l'IC2 il faut que je créer le programme bit à bit?

  4. #4
    ftorama

    Re : Question communication série sur ATMEL

    Citation Envoyé par Canaillou2k5 Voir le message
    Merci pour la réponse, en effet je n'avais pas regarder en détail.

    Mon but est d'augmenter le nombre d'E/S de mon tiny45 pour pouvoir contrôler un LCD.

    J'ai vu ce composant: PCF8574 pour l'IC2 existe t-il un équivalent pour le SPI ?
    Un bête registre à décalage est un bon équivalent 74HC164 ou 165 selon le sens.

    Sinon pour l'IC2 il faut que je créer le programme bit à bit?
    Toujours pas, Atmel n'appelle pas spécialement son I2C de l'I2C (parce que l'I2C est un protocole propriétaire de Philips) mais l'appelle le TWI, Two Wire Interface. Le fonctionnement est décrit après le SPI dans la doc.

    Sinon pourquoi ne pas prendre un AVR plus gros plutôt que de greffer des expanseurs de ports qui vont augmenter la conso, compliquer le routage etc. Un Atmega88 suffirait peut-être
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

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

    Re : Question communication série sur ATMEL

    J'ai dit une bétise, les 164 et 165 n'ont pas de gestion en 3 états de la ligne série.

    Si tu n'en utilises qu'un type, toujours dans le même sens, tu n'auras pas de soucis. Sinon tu risques des conflits de données, aussi appelés court-circuits
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

  7. #6
    Canaillou2k5

    Re : Question communication série sur ATMEL

    Je ne vois pas vraiment comment utiliser un registre décalage en extension du nombre de sorties.

    Pour moi 2 fil pour relier le tout et gagner un port n'est pas bien plus compliquer pour le routage, j'avoue que pour la conso c'est autre chose, je n'y ait pas réfléchi, mais dans mon cas, avec un TINY45 et une extension ce n'est pas énorme non plus.

    j'ai un mega 8535 mais je me dit autant utiliser un micro qui coûte 4 euro de moins dont je vais exploiter tout sa capacité plutôt qu'un gros que je vais chatouiller avec mes 10 lignes de code et 20% des E/S utilisés.

  8. #7
    ftorama

    Re : Question communication série sur ATMEL

    Citation Envoyé par Canaillou2k5 Voir le message
    Je ne vois pas vraiment comment utiliser un registre décalage en extension du nombre de sorties.
    C'est quoi un bus SPI?

    une ligne de données entrante, une ligne de données sortante, une horloge pour synchroniser les deux, une broche de validation

    Maintenant qu'est-ce qu'un registre à décalage?

    une ligne de données entrante ou sortante selon le modèle et l'horloge de synchro...

    Tiens, il y aurait comme une ressemblance.

    Prenons l'exemple d'un 165 (série vers parallèle, donc sorties).

    Tu raccordes MOSI sur les entrées A et B du 165, SCK sur CP et tu as un expandeur 8 sorties tout à fait honorable.

    Eventuellement utilise un 595 à la place du 165, comme ça, tes sorties n'auront pas d'état indéterminé lors du transfert

    Pour l'utilisation en entrée, utilise un 164 ou un 597 et raccorde MISO sur la sortie série. Le raisonnement est le même
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

  9. #8
    Canaillou2k5

    Re : Question communication série sur ATMEL

    oué mais pour moi si je veut allumer une led sur la sortie 3 je fait comment ?

    je vais rentrer un 1 et 3 coups d'horloge après elle sera allumée, sauf que les 2 sortie précédentes l'auront été aussi.

    enfin je capte vraiment pas cette histoire de conversion registre à décalage.

  10. #9
    ftorama

    Re : Question communication série sur ATMEL

    Citation Envoyé par Canaillou2k5 Voir le message
    oué mais pour moi si je veut allumer une led sur la sortie 3 je fait comment ?

    je vais rentrer un 1 et 3 coups d'horloge après elle sera allumée, sauf que les 2 sortie précédentes l'auront été aussi.

    enfin je capte vraiment pas cette histoire de conversion registre à décalage.
    Tu stockes dans une variable l'état de tes 8 sorties.
    Si tu dois allumer la led 3, tu mets le bit 3 à 1 par exemple, puis tu transmets cet octet sur le bus SPI
    Avec un 595, tu balances un pulse sur l'entrée de commande des latchs et ta sortie est actualisée...

    Avec un 165, il est vrai que les sorties 0, 1 et 2 auraient pu changer d'état pendant le transfert du nouvel octet.

    compris?
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

  11. #10
    Canaillou2k5

    Re : Question communication série sur ATMEL

    Avec le 595 je suis déja plus d'accord.

    Si j'ai bien compris les huit bit qui arrivent en série sont stockées dans un registre, ce registre serais l'image des sorties du 165, sauf que la les sorties sont recopiées sur le registre lors de l'impulsion sur une entrée.

    On peut faire un interrupt sur la fin de transmission pour envoyer l'impulsion qui met à jour les sorties....

    A voir lequel est plus simple à mettre en oeuvre au niveau programmation entre SPI et Registre à décalage ou TWI et PCF8574.

    Y ajouter les facteurs vitesse et conso, bref pour ce que je vais en faire je pense que c'est du pareille au même^^

  12. #11
    ftorama

    Re : Question communication série sur ATMEL

    sinon un Atmega88

    on en trouve à 2,80€ sur un site d'enchères bien connu ou ici pour faire un peu marcher les marchands locaux:
    http://www.myavr.fr/14-microcontroleurs
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

  13. #12
    Canaillou2k5

    Re : Question communication série sur ATMEL

    tu n'aime vraiment pas mon tiny45

  14. #13
    ftorama

    Re : Question communication série sur ATMEL

    C'est pas ça, mais je suis de ceux qui considèrent qu'un choix correct du microcontrôleur fait 80% du boulot.

    Avec ton micro trop petit pour ton appli, tu vas ajouter du matériel, du logiciel donc compliquer ton système inutilement et peut-être (sans doute même puisqu'on y est encore) perdre du temps à développer des appendices au système qui deviennent inutiles avec le modèle au-dessus.

    On ne gère pas un ordi complet avec un circuit 8 broches et on ne fait pas clignoter une led avec un 144 broches. Le bon dimensionnement des composants est primordial
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

Discussions similaires

  1. Ftdi usb serie avec microcontroleur atmel et xp
    Par inviteff7a2099 dans le forum Électronique
    Réponses: 1
    Dernier message: 23/07/2008, 23h16
  2. Communication série sur ATMEL 89S2051
    Par Tony78 dans le forum Électronique
    Réponses: 5
    Dernier message: 17/07/2007, 11h38
  3. Liaison série sur ATMEL
    Par Tony78 dans le forum Électronique
    Réponses: 2
    Dernier message: 19/04/2007, 20h38
  4. question sur la communication à distance
    Par invitecb0dc3ae dans le forum Physique
    Réponses: 7
    Dernier message: 10/01/2007, 18h32
  5. Communication serie Pic<->Pc
    Par MicroPuce dans le forum Électronique
    Réponses: 14
    Dernier message: 11/06/2004, 18h06
Découvrez nos comparatifs produits sur l'informatique et les technologies.