La liaison série asynchrone SCI

 

La partie EMISSION

 

La partie RECEPTION

Le Registre de contrôle 1 (SCI Control Register 1)

Composer votre phrase puis valider sur le bouton se situant à la fin du formulaire. L'ordinateur calculera pour vous la valeur à mettre dans le registre SCCR1.

La longueur de mes données est de bits. La méthode de réveil est .

Le bit R8 (Receive Data Bit 8)

Si le bit M est postionné à 1, le bit R8 reçoit le neuvième bit du caractère reçu.


Le bit T8 (Transmit Data Bit 8)

Si le bit M est postionné à 1, le bit R8 stocke le neuvième bit du caractère à transmettre.


Le bit M (Mode)

Ce bit selectionne la taille des données à transmettre :

  • M = 0 => 1 bit de START, DONNEE de 8 bits et 1 bit de STOP,
  • M = 1 => 1 bit de START, DONNEE de 9 bits et 1 bit de STOP,

Le bit WAKE (WAKE up by address mark/idle)

Ce bit selectionne le mode de réveil du périphérique :

  • WAKE = 0 => SCI réveillée par IDLE,
  • WAKE = 1 => SCI réveillée par le MSB (bit 7) de l'octet reçu à 1.

 

 

Le Registre de contrôle 2 (SCI Control Register 2)

Composer votre phrase puis valider sur le bouton se situant à la fin du formulaire. L'ordinateur calculera pour vous la valeur à mettre dans le registre SCCR2.

Les interruptions déclenchées par TDRE sont . Les interruptions déclenchées par TC sont . Les interruptions déclenchées par RDRF sont . L'interruption du mode attente est . L'interruption déclenchée par le transmetteur prêt est . L'interruption déclenchée par le récepteur prêt est . Envoyer des BREAKS : .

Le bit TIE (Transmit Interrupt Enable)

  • TIE = 0 => l'interruption provoquée par TDRE est inhibée,
  • TIE = 1 => l'interruption provoquée par TDRE est validée.

Le bit TCIE (Transmit Complete Interrupt Enable)

  • TCIE = 0 => l'interruption provoquée par TC est inhibée,
  • TCIE = 1 => l'interruption provoquée par TC est validée.

Le bit RIE (Receive Interrupt Enable)

Si le bit RIE est postionné à 1, une interruption est génerée lorsque le SCI recoit un caractère. Lorsque ce bit est à 0, pas d'interruption lors de la réception d'un caractère.


Le bit ILIE (IdLe Interrupt Enable)

Interruption en mode attente sélectionnée :

  • ILIE = 0 => interruption du mode attente inhibée,
  • ILIE = 1 => interruption autorisée lorsque IDLE passe à 1 (la ligne de réception retourne au repos).

Le bit TE (Transmit Enable)

  • TE = 0 => ligne PD1 est utilisée par le SCI en sortie (TxD),
  • TE = 1 => ligne PD1 n'est pas utilisée par le SCI, et donc contrôlée par DDRD.

Le bit RE (Receive Enable)

  • RE = 0 => ligne PD0 est utilisée par le SCI en entrée (RxD),
  • RE = 1 => ligne PD0 n'est pas utilisée par le SCI, et donc contrôlée par DDRD.

    Le bit RWU (Receiver Wake Up)

    Lorsque ce bit est mis à 1, le recepteur SCI est en veille et la fonction réveil est en service. Si le bit WAKE de SCCR1 est à 0, RWU est forcé à 0 après avoir reçu 10 ou 11 bits au niveau 1. La réception est dès lors validée.


    Le bit SBK (Send BreaK)

    Envoi de signal BREAK :

    • SBK = 0 => repos,
    • SBK = 1 => le SCI emet en permanence des blocs de 0 jusqu'à ce que SBK repasse à 0. A la fin du signal BREAK, il émet un 1 comme START bit.

 

  • Le Registre de STATUS (SCI Status Register )


    Le bit TDRE (Transmit Data Register Empty)

    Ce bit est positionné à 1 lorsque le registre de transmission a été transferé dans le registre à décalage d'émission. Il est remis à 0 par une lecture de SCSR suivie d'un accès au registre SCDR.


    Le bit TC (Transmit Complete)

    Ce bit est positionné à 1 à la fin de la transmission d'une data ou d'un BREAK. Il est remis à 0 par une lecture du SCSR suivie d'un accès au registre SCDR.


    Le bit RDRF (Receive Data Register Full)

    Ce bit est positionné à 1 lorsque le registre à décalage a été transferé dans le registre SCDR. Il est remis à 0 par une lecture du SCSR suivie d'un accès au registre SCDR.


    Le bit IDLE

    Ce bit est positionné à 1 par la détection d'un 1 sur la ligne pendant la durée d'au moins un caractère (10 ou 11 bits). Si il est à 0, il n'est pas remis à 1 tant que la ligne RxD n'est pas activée et ne repasse pas en attente. Il est remis à 0 par une lecture du SCSR suivie d'un accès au registre SCDR. Une fois à 0, ce bit ne peut pas être remis à 1 tant que la ligne RxD n'a pas été activée et ne soit pas repassée en attente.


    Le bit OR (OverRun error)

    Erreur d'écrasement : il y avait une donnée non lue dans le registre SCDR et une autre data vient d'arriver. La valeur lue dans le registre SCDR est la première, la seconde étant perdue. Il est remis à 0 par une lecture du SCSR suivie d'un accès au registre SCDR.


    Le bit NF (Noise Flag)

    Ce bit est mis à 1 si des parasites se présentent durant la transmission. Tant que RDRF est à 1, il ne peut être mis à 1. Il est remis à 0 par une lecture du SCSR suivie d'un accès au registre SCDR.


    Le bit FE (Framing Error)

    Ce bit est positionné à 1 si le bit de STOP n'est pas détecté. Ce bit est activé en même temps que le bit RDRF. Il est remis à 0 par une lecture du SCSR suivie d'un accès au registre SCDR.

    Le Registre de Données (SCI Data Register)


    Le registre SCDR (SCI Data Register)

    SCDR est le registre où sont écrites les données à envoyer ou les données reçues.