PIC18Fxxxx - .Capture/Compare/PWM 2 2 Communications séries SPI / I2C / USART SPI / I2C / USART

download PIC18Fxxxx - .Capture/Compare/PWM 2 2 Communications séries SPI / I2C / USART SPI / I2C / USART

of 53

  • date post

    13-Sep-2018
  • Category

    Documents

  • view

    212
  • download

    0

Embed Size (px)

Transcript of PIC18Fxxxx - .Capture/Compare/PWM 2 2 Communications séries SPI / I2C / USART SPI / I2C / USART

  • PIC18Fxxxx

    Christian Dupaty Professeur de gnie lectrique

    Acadmie dAix-Marseille

    christian.dupaty@ac-aix-marseille.fr

  • PIC18Fxxxx - ressources

    cours PICs 2 / 53

    Table des matires

    1. Famille et constitution (exemple famille 18FX62X) .......................................................................... 3 2. Choix de lhorloge ............................................................................................................................. 5 3. RESET ............................................................................................................................................. 8 4. Organisation mmoire ...................................................................................................................... 9 4.1. PIC18Fxx2x, Mmoire programme.............................................................................................. 9 4.2. Lecture / Ecriture FLASH ........................................................................................................... 10 4.3. PIC18Fx620, Mmoire RAM ...................................................................................................... 11 4.4. Adressage direct en RAM .......................................................................................................... 12 4.5. Adressage indirect en RAM ....................................................................................................... 12 5. Acces EEPROM / FLASH .............................................................................................................. 13 6. Registres internes .......................................................................................................................... 14 7. Interruptions ................................................................................................................................... 16 8. Jeu dinstructions ............................................................................................................................ 20 9. Ports parallles ............................................................................................................................... 24 10. CAN 10bits................................................................................................................................. 25 11. Detection de faible tension (LVD) .............................................................................................. 26 12. TIMER0 ...................................................................................................................................... 27 13. TIMER1 ...................................................................................................................................... 28 14. TIMER2 ...................................................................................................................................... 29 15. TIMER3 ...................................................................................................................................... 30 16. Capture/Compare/PWM ............................................................................................................ 31 16.1. CAPTURE ............................................................................................................................... 31 16.2. COMPARE .............................................................................................................................. 33 16.3. PWM ....................................................................................................................................... 35 17. Chien de garde .......................................................................................................................... 36 18. Communications sries asynchrones ........................................................................................ 37 19. Communications sries synchrones : bus SPI .......................................................................... 44 20. Communications sries synchrones : bus I2C (IIC) .................................................................. 47

  • PIC18Fxxxx - ressources

    cours PICs 3 / 53

    1. Famille et constitution (exemple famille 18FX62X) Caractristiques PIC18F2xxxx PIC18F4xxxx Frquence Horloge MHz DC-40 MHz DC-40 MHz Mmoire programme FLASH 64KO 64KO Programme (Instructions) 32768 32768 Mmoire donnes 3968 Octets 3968 Octets Mmoire EEPROM 1024 Octets 1024 Octets Interruptions 17 18 Ports parallles 25 36 Timers 4 4 Capture/Compare/PWM 2 2 Communications sries SPI / I2C / USART SPI / I2C / USART CAN 10-bit 10 entres 13 entres RESETS POR, BOR,RESET

    Instruction,Stack Full,Stack Underflow (PWRT, OST)

    POR, BOR,RESET Instruction,Stack Full,Stack Underflow (PWRT, OST

    Dtection de VDD faible programmable oui oui Instructions 75 75 Boitiers 28-pin DIP

    28-pin SOIC 40-pin DIP 44-pin PLCC, 44-pin TQFP

    - Architecture HARVARD - Horloge max de 40 MHz par multiplication interne avec PLL (avec quartz 10MHz) - PIC18F avec rom programme FLASH - Programmation et debug sur cible (In-Circuit Serial Programming, In-Circuit debug, perte de RB6, RB7) - Chaque instruction sur 2 octets - Mmoire EEPROM accs alatoire (sauvegarde de donnes) - TIMERS : Microchip appelle TIMER des compteurs - Capture : permet la mesure de temps - Compare : permet la production de signaux rectangulaires - SPI : communications sries synchrones sans protocole logiciel - I2C : standard Philips, communications sries synchrones avec protocole logiciel - USART : communication sries asynchrones (RS232 et RS485) - CAN : convertisseur analogique numrique 10 entres multiplexes Le PIC18 possde une multiplication 8x8 matrielle, extrmement rapide (100nS 1uS) ce qui lui confre des possiblits de DSP particulirement utiles pour le traitement numrique du signal

  • PIC18Fxxxx - ressources

    cours PICs 4 / 53

    Le principe du flux de donnes en pipeline permet un temps dexcution sur 1 cycle dhorloge Exemple : T CY0 TCY1 TCY2 TCY3 TCY4 TCY5 1. MOVLW 55h Fetch 1 Execute 1 2. MOVWF PORTB Fetch 2 Execute 2 3. BRA SUB_1 Fetch 3 Execute 3 4. BSF PORTA, BIT3 (force un NOP) Fetch 4 vide (NOP) 5. Instruction @ laddresse SUB_1 Fetch SUB_1 Execute SUB_1

  • PIC18Fxxxx - ressources

    cours PICs 5 / 53

    2. Choix de lhorloge 1. LP Quartz faible puissance 2. XT Quartz ou oscillateur externe 3. HS Quartz ou oscillateur externe rapide 4. HS + PLL (F x 4) Types Frquences C1 C2 LP 200kHz 15 pF 15 pF XT 200 kHz 47-68pF 47-68 pF

    1.0MHz 15 pF 15 pF 4.0MHz 15 pF 15 pF

    HS 4.0 MHz 15 pF 15 pF 8.0MHz 15-33 pF 15-33 pF 20.0MHz 15-33pF 15-33 pF

    5. RC Rsistance/capacit externe (Fosc/4 sortie sur OSC2) 6. RCIO Rsistance/capacit externe (RA6 est un port //) 7. EC Source dhorloge externe (Fosc/4 sortie sur OSC2) 8. ECIO Source dhorloge externe (RA6 est un port //) Remarque : le type doscillateur doit tre dclar dans la MPLAB dans le menu configure-> configuration bits

  • PIC18Fxxxx - ressources

    cours PICs 6 / 53

    Configuration de lhorloge interne Dans MPLAB :

    INT RC-CLOCKOUT on RA6, PORT on RA7 : lhorloge interne sort sur RA6, RA7 est un port // INT RC-Port on RA6, Port on RA7 : RA6 et RA7 sont des ports // Il est possible de ne pas utiliser MPLAB pour grer les bits de configuration mais une directive du C18 (dans ce cas cocher Configuration Bits set in code ) En C18 : #pragma config OSC = INTIO7 //pour INTRC-OSC2 as Clock Out, OSC1 as RA7 #pragma config OSC = INTIO67 //pour INTRC-OSC2 as RA6, OSC1 as RA7 #pragma config WDT = OFF //pour watch dog timer disable #pragma config LVP = OFF //pour low voltage program disable Pour plus dinformations consulter : PIC18 CONFIGURATION SETTINGS ADDENDUM.pdf

  • PIC18Fxxxx - ressources

    cours PICs 7 / 53

    Aprs dmarrage du programme il est possible de modifier la frquence et la source de lhorloge grce aux registres OSCCON et OSCTUNE.

    Configuration de lhorloge interne (DOC PIC18F4620) , on suppose que les bits de configuration active la base de temps de 8MHz :

    Les bits IRCF de OSCCON permettent de choisir la frquence de base (31KHz 8MHz). (1MHz par dfaut) Les bits TUN de OSCTUNE permettent dajuster la frquence interne (en cas de variation de temprature par exemple) Le bit PLLEN de OSCTUNE permet dactiver la PLL qui multipliera par quatre la frquence de base (donc max 32MHz), dsactive par dfaut) Les bits SCS de OSCCON permettre de choisir la source de lhorloge des priphriques et du CPU du PIC. (Interne par dfaut) Les bits OSTS et IOFC de OSCCON permettent de connatre ltat de lhorloge (active, stable )

  • PIC18Fxxxx - ressources

    cours PICs 8 / 53

    3. RESET Les diffrentes sources de linterruption RESET

    Aprs un RESET lorigine de celui-ci peut tre dtermine en lisant le REGISTRE RCON (0xFD0) 7 6 5 4 3 2 1 0 IPEN - - /RI /TO /PD /POR /BOR Condition Program

    Counter

    RCON Register

    RI TO PD POR BOR STKFUL STKUNF

    Power-on Reset 0000h 0--1 1100 1 1 1 0 0 u u MCLR Reset during normal operation

    0000h 0--u uuuu u u u u u u u

    Software Reset during normal operation

    0000h 0--0 uuuu 0 u u u u u u

    Stack Full Reset during normal operation

    0000h 0--u uu11 u u u u u u 1

    Stack Underflow Reset during normal operation

    0000h 0--u uu11 u u u u u 1 u

    MCLR Reset during SLEEP 0000h 0--u 10uu u 1 0 u u u u WDT Reset 0000h 0--u 01uu 1 0 1 u u u u WDT Wake-up PC + 2 u--u 00uu u 0 0 u u u u Brown-out Reset 0000h 0--1 11u0 1 1 1 1 0 u u Interrupt wake-up from SLEEP

    PC + 2 u--u 00uu u 1 0 u u u u

    IPEN =1 valide les niveaux de priorits des i