240 likes | 403 Views
Mikroprotsessorid. PIC SERIAL PORDID. USART. Universal Syncronous Asynchronous Receiver Transmitter SünkroonMaster, SünkroonSlave ja Asünkroon Asynchronous modes on Full Duplex – Transmit ja Receive Shift registrid on eraldi ja võivad käia samal ajal
E N D
Mikroprotsessorid PIC SERIAL PORDID
USART Universal Syncronous Asynchronous Receiver Transmitter SünkroonMaster, SünkroonSlave ja Asünkroon Asynchronous modes on Full Duplex – Transmit ja Receive Shift registrid on eraldi ja võivad käia samal ajal Mõlemad kasutavad sama Baud Rate generaatorit Sama andmeformaat Transmit ja Receive katkestused on eraldi
USART Transmit Shift Register.Ei ole otseselt adresseeritav parity
USART Baud Rate BRGH – TXSTA:2 BRGH=1: FOSC/(64*(SPBRG+1))BRGH=0: FOSC/(16*(SPBRG+1))
USART Receive Overrun Error Continous Receive Framing Error Shift Register.Ei ole otseselt adresseeritav
USART näide 01 ; Tx ja Rx algseadistamine02 BCF STATUS,RP0 03 MOVLW B'10010000' ; Async, Port is on, 8-bit, 04 MOVWF RCSTA ; continous receiving 05 BSF STATUS,RP0 06 MOVLW B'00100100' ; Async, Transmit enabled, 8-bit, 07 MOVWF TXSTA 08 MOVLW 04 ; baud rate 09 MOVWF SPBRG ; RCIF Katkestus - on saadud bait 10 BCF PIR1,RCIF ; Receive Interrupt Flag nulliks! 11 MOVF RCREG,0 ; Loe saadud bait 12 MOVWF TXREG ; ja saada Transmitiga tagasi
SPI Puhver Register.On otseselt adresseeritav Shift Register.Ei ole otseselt adresseeritav Data In Data Out SlaveSelect
SPI Master Timer2
SPI Slave
SPI SSP Buffer
SSP Control SSP Status
SPI register SSPCON SSPEN (SSP Enable): 1 – Enable; 0 – Disable SSPM3:SSPM0 (SSP Mode)0101: Slave mode, SS disabled0100: Slave mode, SS enabled0011: Master mode, CLK=Timer20010: Master mode, CLK=OSC/640001: Master mode, CLK=OSC/160000: Master mode, CLK=OSC/4 CKP (Clock Polarity) CKP=0 CKP=1
SPI register SSPCON SSPEN (SSP Enable): 1 – Enable; 0 – Disable SSPM3:SSPM0 (SSP Mode)0101: Slave mode, SS disabled0100: Slave mode, SS enabled0011: Master mode, CLK=Timer20010: Master mode, CLK=OSC/640001: Master mode, CLK=OSC/160000: Master mode, CLK=OSC/4 CKP (Clock Polarity) SSPOV (Receive Overflow) 1 – Slave modes on SSPBUF üle kirjutatud WCOL (Write Collision) 1 - Transmit modes on SSPBUF üle kirjutatud TRISC bitid tuleb seada õigeks:
SPI register SSPSTAT BF (Buffer Full) :1: Receive Complete, SSPBUF is full0: Receive Not Complete CKE (SPI Clock Select)Millal andmete edastamine toimub SMP (Sample bit)Millal sisendandmed on saadud CKP=0 CKP=1
SSPBUF on mõlemaks – saatmiseks ja vastuvõtmiseks Kui Master mode: Kirjutamine SSPBUF-i algatab kohe baidi saatmise bitthaaval Sisenevast pordist loetakse 8 bitti, tekitatakse katkestus SSPIFja tõstetakse bait registrisse SSPBUF
SPI näide BSF STATUS, RP0 ; Select Bank 1 MOVLW B'10010000' ; PORTC bitid CLRF SSPSTAT ; SMP=0, CKE=0, teised bitid ei loe MOVLW B'00110001 ; Enable, Master mode, CLK/16 MOVWF SSPCON CLRF PORTC ; Igaks juhuks MOVLW 0xD5 ; saadetavad andmed MOVWF SSPBUF ; Saada minema
I2C Puhver Register.On otseselt adresseeritav Shift Register.Ei ole otseselt adresseeritav Data In Data Out
I2C Slave mode:Slave Address.Master Mode: CLK generator CLK=OSC/(4*(SSPADD+1))
I2C register SSPCON SSPEN (SSP Enable): 1 – Enable; 0 – Disable SSPM3:SSPM0 (SSP Mode)0101: Slave mode, SS disabled0100: Slave mode, SS enabled0011: Master mode, CLK=Timer20010: Master mode, CLK=OSC/640001: Master mode, CLK=OSC/160000: Master mode, CLK=OSC/4 SSPM3:SSPM0 (I2C Mode)0111: Slave mode, 10-bit address 0110: Slave mode, 7-bit address 1000: Master Modejne.... CKP (Clock Polarity) SSPOV (Receive Overflow) 1 – Slave modes on SSPBUF üle kirjutatud WCOL (Write Collision) 1 - Transmit modes on SSPBUF üle kirjutatud
I2C register SSPSTAT BF (Buffer Full) :1: Receive Complete, SSPBUF is full0: Receive Not Complete CKE (SPI Clock Select)Millal andmete edastamine toimub SMP (Sample bit)Millal sisendandmed on saadud D/A (Data/Address) Slave modes kas viimane saadud bait oli address või data P – viimati saadud bitt oli STOP bitt S – viimati saadud bitt oli START bitt R/W – Slave mode: kas viimati saadud käsk oli Read või Write