Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

SPI sans Bits START STOP Normale ?



  1. #1
    just-a-man-but

    SPI sans Bits START STOP Normale ?


    ------

    Bonjour, j'utilise une liaison SPI pour envoyer un mot en Hexadécimale de 8 bits qui est "A9"=10101001
    J’utilise un PIC18F4550 et un oscilloscope pour visualiser le graphe.
    Ci joint le schéma, le programme du PIC en BASIC PROTON, et le graphe relevé par l'oscilloscope.
    Il n y a aucun problème d'après ce que je vois appart que je ne vois pas les bits START et STOP ou celui de Parité, je ne sais pas pour quoi, avez vous des commentaires ?
    simul.JPGoscilloscope.JPG


    Le programme :

    Device = 18F4550
    Declare XTAL = 40 ' Set the oscillator speed to 48MHz (using a 20MHz crystal)
    Declare USBDIV = 2 ' USB clock source comes from the 96 MHz PLL divided by 2
    Declare FOSC = HSPLL_HS ' HS oscillator, PLL enabled, HS used by USB
    Declare FCMEN = OFF ' Fail-Safe Clock Monitor disabled
    Declare IESO = On ' Oscillator Switchover mode enabled
    Declare PWRT = On ' PWRT enabled
    Declare BOR = OFF ' Brown-out Reset disabled in hardware and software
    Declare BORV = 0 ' Maximum setting
    Declare VREGEN = On ' USB voltage regulator enabled
    Declare WDT = OFF ' HW Disabled - SW Controlled
    Declare WDTPS = 1 ' 1:1
    Declare MCLRE = On ' MCLR pin enabled; RE3 input pin disabled
    Declare LPT1OSC = OFF ' Timer1 configured for higher power operation
    Declare PBADEN = OFF ' PORTB <4:0> pins are configured as digital I/O on Reset
    Declare CCP2MX = On ' CCP2 input/output is multiplexed with RC1
    Declare STVREN = OFF ' Stack full/underflow will not cause Reset
    Declare LVP = OFF ' Single-Supply ICSP disabled
    Declare XINST = OFF 'Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
    Declare Debug = OFF 'Background debugger disabled, RB6 and RB7 configured as general purpose I/O pins
    Declare CP0 = OFF ' Block 0 (000800-001FFFh) not code-protected
    Declare CP1 = OFF ' Block 1 (002000-003FFFh) not code-protected
    Declare CP2 = OFF ' Block 2 (004000-005FFFh) not code-protected
    Declare CPB = OFF ' Boot block (000000-0007FFh) not code-protected
    Declare CPD = OFF ' Data EEPROM not code-protected
    Declare WRT0 = OFF ' Block 0 (000800-001FFFh) not write-protected
    Declare WRT1 = OFF ' Block 1 (002000-003FFFh) not write-protected
    Declare WRT2 = OFF ' Block 2 (004000-005FFFh) not write-protected
    Declare WRTB = OFF ' Boot block (000000-0007FFh) not write-protected
    Declare WRTC = OFF ' Configuration registers (300000-3000FFh) not write-protected
    Declare WRTD = OFF ' Data EEPROM not write-protected
    Declare EBTR0 = OFF ' Block 0 (000800-001FFFh) not protected from table reads executed in other blocks
    Declare EBTR1 = OFF ' Block 1 (002000-003FFFh) not protected from table reads executed in other blocks
    Declare EBTR2 = OFF ' Block 2 (004000-005FFFh) not protected from table reads executed in other blocks
    Declare EBTRB = OFF ' Boot block (000000-0007FFh) not protected from table reads executed in other blocks


    Symbol CS = PORTC.4 ' SPI eeprom CS line
    Symbol SCK = PORTD.0 ' Clock pin
    Symbol SI = PORTC.7 ' Data in pin
    Symbol SO = PORTC.6 ' Data out pin


    Dim Addr As Word ' Address
    Dim B0 As Byte ' Data

    ‘Subroutine to write data at addr in serial EEPROM

    bcl:
    CS = 0 ' Enable serial EEPROM
    SHOut SO, SCK, msbfirst, [$A9] ' Send write enable command
    CS = 1 ' Disable to execute command
    DelayMS 10 ' Delay 10ms after each write
    GoTo bcl:
    Return

    -----

  2. Publicité
  3. #2
    gcortex

    Re : SPI sans Bits START STOP Normale ?

    start et stop c'est en asynchrone. Or une SPI est synchrone.
    Ici tu semble être sur l'UART et elle n'envoie pas toujours 8 bits.
    Dernière modification par gcortex ; 24/11/2011 à 10h56.

  4. #3
    just-a-man-but

    Re : SPI sans Bits START STOP Normale ?

    Merci, je ne peut pas basculer vers une SPI asynchrone en modifiant le programme ?

  5. #4
    Jack
    Modérateur

    Re : SPI sans Bits START STOP Normale ?

    Une spi est un simple registre à décalage et fonctionne uniquement en mode synchrone. Il faut regarder la doc du dispositif avec lequel tu veux communiquer et configurer la spi en conséquence. Il faut par exemple déinir les fronts actifs de l'horloge et des données.

    A+

  6. A voir en vidéo sur Futura
  7. Comparatifs

    Gagnez du temps et de l'argent grâce à nos comparatifs de produits. Parmi nos sujets :
  8. #5
    ftorama

    Re : SPI sans Bits START STOP Normale ?

    Qui plus est, tu n'utilises pas le SPI du micro, tu émules son fonctionnement par une fonction dédiée aux registres à décalage. En plus d'être très très lente, cette méthode ne permet pas d'affiner le fonctionnement d'une liaison SPI

    Sur une vraie liaison SPI, il faut configurer les bits CPOL et CPHA pour se calquer sur le protocole de l'esclave. Ces bits influent sur la polarité de l'horloge et les moments de sample et de propagation de la donnée (sur front montant ou descendant de l'horloge).

    http://en.wikipedia.org/wiki/Serial_..._Interface_Bus

    Une SPI asynchrone, comme on te l'a dit, ça n'existe pas...Une liaison SPI typique,c'est 4 fils, SCK, MOSI, MISO et /CS mais le protocole SPI n'étant pas règlementé, il existe des tas de variantes (donnée bi-directionnelle, absence du /CS, etc.). Cependant la présence d'au moins un signal d'horloge et un signal de donnée est un minimum....

    Que cherches-tu à faire? Si c'est pour écrire sur ta carte SD, n'espère pas te passer de l'horloge
    Dernière modification par ftorama ; 24/11/2011 à 11h55.
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

  9. #6
    just-a-man-but

    Re : SPI sans Bits START STOP Normale ?

    Merci pour vos réponses.
    ftorama : je ne trouve pas les bits CPOL et CPHA sur le datasheet de mon pic, et puis le programme je l'ai pris d'un programme exemplaire officiel de Proton Basic apart la configuration que j'ai fait moi meme meme si je ne la comprend pas tout à fait. , donc ça m'etonnerai un peu ...

  10. Publicité
  11. #7
    Jack
    Modérateur

    Re : SPI sans Bits START STOP Normale ?

    Je ne connais pas trop les pic mais je viens de jeter un œil rapide sur la doc. Microchip, histoire de ne pas faire comme tout le monde a appelé ses bit CKP, CKE et SMP.

    A+

  12. #8
    ftorama

    Re : SPI sans Bits START STOP Normale ?

    Citation Envoyé par just-a-man-but Voir le message
    Merci pour vos réponses.
    ftorama : je ne trouve pas les bits CPOL et CPHA sur le datasheet de mon pic
    Parfois on parle de mode SPI qui peut prendre les valeurs 0 à 3 et qui correspond à ces bits.

    et puis le programme je l'ai pris d'un programme exemplaire officiel de Proton Basic apart la configuration que j'ai fait moi meme meme si je ne la comprend pas tout à fait. , donc ça m'etonnerai un peu ...
    Shout, qu'on appelle shifout sous d'autres latitudes (Arduino, Basic Stamp) est une fonction de gestion de registre à décalage qui considère en général que les données sont latchées sur front montant avec horloge par défaut à 0, correspondant à CPOL+0 et CPHA=0, qu'on trouve aussi sous l'appellation de "Mode 0"
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

  13. #9
    ftorama

    Re : SPI sans Bits START STOP Normale ?

    Citation Envoyé par Jack Voir le message
    Je ne connais pas trop les pic mais je viens de jeter un œil rapide sur la doc. Microchip, histoire de ne pas faire comme tout le monde a appelé ses bit CKP, CKE et SMP.

    A+
    Autant ça peut se comprendre sur l'I2C qui est soumis à licence (d'ou le TWI sous AVR), mais là, c'est vraiment emm... le monde pour pas grand-chose
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

Discussions similaires

  1. Définition - Stop & Start
    Par RSSBot dans le forum Commentez les actus, dossiers et définitions
    Réponses: 0
    Dernier message: 25/11/2010, 23h07
  2. step 7 siemens prog format list push button état "start et stop"
    Par jérome stas dans le forum Électronique
    Réponses: 1
    Dernier message: 28/01/2009, 10h02
  3. tipe stop and start
    Par prepasup834 dans le forum TPE / TIPE et autres travaux
    Réponses: 1
    Dernier message: 24/02/2005, 18h03
  4. Stop & Start chez Citroën
    Par Tam dans le forum Technologies
    Réponses: 32
    Dernier message: 16/02/2005, 20h39
Découvrez nos comparatifs produits sur l'informatique et les technologies.