2. I2C - 860 2 -, , EEPROM, , - .
I2C - , ( SDA SCL), master-slave multimaster. I2COM (. 5.56). M/S = 0, slave-, M/S = 1, - master.
SCL SDA . , (open drain), multimaster. Ι2- , SCL SDA 1 .
2 - I2MOD (. 5.57).
EN:= 1. ( EN = 0) .
PC- . slave, SCL. master- BRG. BRGCLK BRG- . PDIV (. 5.36).
BRG- 2 - . I2BRG 2 (I2BRG+3). BRG- . 25 520 (BRGCLK/(4x2x(0+3)= BRGCLK/48),
2 - , , . FLT:= 1 , - .
REVD . REVD = 0, SLB. REVD = 1, MSB, Motorola.
GCD I2MOD , master-. GCD = 1, . GCD = 0, (general call address).
860 2 - 1 - (parameter RAM) + 0x1 80 . 2 - - (. . 5.30). , I2C base+28 I2C base+2C.
|
|
2 - , TxBD () RxBD (). SCC- /. RBASE TBASE 2 -. , W:= 1 . , R:= 1, .
2 -. master 2 slave-. slave- , ( ). , SDA , slave-.
master- TxBD, R:= 1 , RxBD. STR:= 1 I2COM. , FIFO SDMA- , , 2 - . FIFO . MSB .
2 - start- ( slave-) SDA , , SCL. SDA (), (collision) master-. Ȼ , , 1, 0. slave .
master slave-. , master-. stop- start- .
slave- master- n+1 , slave- , /. n - , slave-. R/W = 1, slave.
2 - slave, I2ADD (. 5.58) 7 , , 128 slave-. slave- , RxBD, , , SDA master- start/stop-. , slave- start-. Slave- , overrun FIFO.
|
|
master- , , ( L = 1 ), STR = 1 . STR .
slave, SCL master-. master- , , .
slave- (TxBD) (RxBD), STR:= 1 I2COM. STR slave- , . master-.
start- slave- ( 7- 1-), 0 - R/W. R/W = 0, master-, RxBD-, start- stop-. R/W = 1, FIFO slave- master-. , . , , , .
master-. , . , underrun FIFO . (underrun), slave- 1 , stop- master-.
2 -, RISC- INITTX PARAMETERS, CLOSE RX, INIT RX PARAMETERS, INITTX and RX PARAMETERS.
. 5.59. SPIMODE SPI-
. 860 SPI (Serial Peripheral Interface). SPI -, , - , 4- ( SPIMISO, SPIMOSI, SPICLK slave- SPISEL), , ISDN- . SPIMODE (. 5.59).
, SPI-, master ( M/S = 1) slave ( M/S = 0). multimaster SPI- , (open-drain).
master SPI- slave-, ( back-to-back). .
|
|
. master, BRG-. master ( ) SPISEL slave- SPICLK, , slave-. slave, .
master, BGR-. BRG (SynCLK). DIV16 1, BRGCLK 16 (BRGCLK = SynCLK/16). DIV16 = 0, .
, , . BRGCLK 4([-])+1), , 4 64. .
master SynCLK/ 4, slave - SynCLK/2. SynCLK/50.
. SPI- , . . . (MSB) , REV = 1, , LSB-, REV = 0.
4 16 . LEN 1 ( 0000) 16 ( 1111), , 4 , .
/, SPI- , , . SPI- 1 EN SPIMODE, . 5.59. .
( L00P = 0) ( L00P = 1). , , .
SPIMOSI SPIMISO (. 5.37). multimaster.
5.37
SPISEL master- slave-. multimaster, SPISEL , master- . , master- slave- SPISEL master, .
slave-, / slave-.
|
|
SPI- CI. CI = 0, TXD , RXD - (. 5.60). SPI- , 0. CI = 1, , . SPI- , 1.
. = 0, SPICLK . = 1, .
SPI- INIT PARAMETERS, CLOSE RX BD INIT RX PARAMETERS.
. 860 SPI- 2- (parameter RAM) + 0x1 D80 . SPI- - (. . 5.30). , SPI base+28 SPI base+2C.
SPI- , () RxBD (). SCC- /. RBASE TBASE SPI-. , W:= 1 . , RBASE TBASE, 8.
, , SCC-.
, R:= 1, .
STR SPICOM (. 5.61). SPICOM 0. SPI- master, STR:= 1 . , SDMA- FIFO . slave, SPISEL . STR λ .
FIFO .
Master- SPICLK SPIMOSI SPIMISO. , , R:= 0 := 0 .
, STR. L = 1, . , .
7 6 5 4 3 2 1 0
STR |
. 5.61. SPICOM
slave SPI- SPI master- . slave- , TxBD R:= 1. , RxBD. , STR:= 1 SPICOM, SPI- . , SPISEL = 0 SPICLK. SPIMISO SPIMOSI. . SPI- RxBD, SPISEL.
|
|
SPISEL , , , TxBD . SPISEL SPICLK . , SPISEL , 1.
multimaster SPIMOSI, SPIMISO, SPICLK SPI- , SPISEL . SPI- master-, - slave. SPI- master-, SPISEL = 0 master-, multimaster-, MIME . SPI- , EN SPIMODE.
USB. USB- 823. USB- 823 : , (protocol state machines). , , function, - host. , USB- 823 function, host, ( loop-back ).
USB- 823 (USB reference clock), , . . 12 / 48 , 1,5 / - 6 .
function CRC16/CRC5, NRZI-/ / - (bit stuffing). 12 1,5 / .
host CRC16, NRZI-/ / - (bit stuffing). master 12 / (local loopback). , 823 host- .
1,5 /, .
USB- 823 (root hub).
: CRC5 (token); ; 1 SOF tokens.
, , USB- FIFO. USB- - 16- FIFO, . . (endpoint) . USB- 16- - FIFO .
USB- USMOD (. 5.62), (IMMR&0xFFFF000)+0xA00.
EN USB-. EN = 1, , EN = 0, . - .
LSS USB-. LSS = 0, 12 /, LSS = 1, 1,5 /.
HOST USB-. HOST = 0. , HOST = 1 - (host).
RESUME = 1 - (suspend mode).
TEST = 1 . 3 1,5 /, , HOST = 1, Endpoint 0 , a Endpoint 1-Endpoint 3 - .
(endpoints), (control, interrupt, bulk, sochronous). , Endpoint 0 control-. - USEPx (. 5.63), (IMMR&0xFFFF000)+0xA04 - USEP0, [IMMR&0xFFFF000)+0xA06 - USEP1, (IMMR& 0xFFFF0OO)+0xA08 - USEP2, (IMMR&0xFFFF000)+0xA0A - USEP3. .
, USEPx, EPN (Endpoint Number). (Transfer Mode) , (00 - Control, 01 - Interrupt, 10 - Bulk, 11 - Isochronous).
, MF (MultiFrame). MF = 0, FIFO . MF = 1, FIFO .
, - , USB-, RTE = 1, .
, (isochronous) MF RTE .
USB- slave, THS RHS , - OUT IN (. 5.38). , NAK STALL Control.
USB- 823. Motorola OSI, D+ D- USB- . 823 (. 5.64): USBOE - ( - ),
USB- ; USBRXD - ; USBRXP, USBRXN - (USBRXP=1, USBRXN = 0 - 12 /, USBRXP = 0, USBRXN = 1-1,5 /) (singled ended) 0 ( USBRXP = USBRXN = 0);
USBTXP, USBTXN- (USBTXP = USBTXN = = 0 - singled ended 0, USBTXP = 0 USBTXN = 1, 0, USBTXP = 1 USBTXN = 0, - 1.
. 5.64. USB- 623
(sleep, suspend), /
USB. USB - . USB . . USB- - (token), , USB- . USB , , . .
USB . , . .
(data packet) , . , (handshake packet), , .
USB- 0x00 USB-.
USB- (token). . , 3 , CRC ( ), PID . :
1) Setup token -
;
2)IN tokenm -
USB- host-;
3)OUT token - USB- ;
4)SOF token.
USB- SETUP token, , Control Endpoint. SETUP , USB-. SETUP- , USB- , OUT. SETUP- , USB- , IN.
SETUP- , . Set Address, Slave, , USB- SAD USAOR (. 5.65), (IMMR & 0xFFFF0000) + 0xA0l
. 5.65. Slave USB-
USB- . USB USB- - USB-. , . , . , . , , USB-. USB-, (Default Address = 0), , 0. Get_Descriptor/Device 0 0.
, , , .
, USB , Set_Address, , . - USB-, , USB-. - , .
, . , , , .
USB-. USB- , . USB--, . USB- . USB- - , USB-, .
. USB- OUT token, . , , , , , . , := 0 (Empty) , I = 1 (Interrupt), .
, , , , = 1. , . L = 1 (Last) .
(DATAO/DATA1 packet ID (PID)), , PID PID .
USB- - . , . CRC , OUT- . RHS USEPx.
. . - , .
, USB- 823 , . , .
FIFO (Overrun). , USB- (endpoints) FIFO , , FIFO- . , OV:= 1 RXB USB-. , USB- NAK.
(Busy). ,
, RISC- .
USB- BSY.
(Non Octet Aligned). ,
, 8 .
, ,
NO:= 1
RXB USB-.
(CRC Error). - , CR:= 1 RXB USB-.
/ -.
, , -
AB(Frame Aborted):= 1
. FIFO . , STR:= 1 USB-. USB- FIFO- (endpoint) IN,
IN- FIFO Endpoint USEPx THS = 10, IN NAK. THS , IN.
L = 1 (Last), .
USB- . , := 1 (Time Out).
, DATAO/ DATA1 PID .
, , .
FIFO (underrun).
-, -
, , UN:= 1 -
USB--
.
- (Timeout). RTE = 1
, USB-
, . RTE = 0
,
, := 1 -
USB-.
(TxData not Ready). ,
IN-, FIFO
,
NAK STALL. -
USB-.
. SOF (Start of Frame) USB-- SOF FRAME_N (. 5.66), SOF. SOF- , FRAME_N V:= 1.
PRE USB- (. . ) host ( PRE- host ). .
USB- 823. USB-. USB- : USB- (. 5.39) (. 5.40). - 82- , USBBase = (IMMR & 0xFFFF0000)+0x3C.
EPxPTR (. 5.67) -. (, 32).
USB- (. 5.40) - SCC- SMC-.
5.40
TBCNT , SDMA-.
RBCNT USB-koh- , FIFO , , MRBLR SDMA-.
USB-. USB-koh-, CPCR (. 5.68), (IMMR & 0xFFFF0000)+0x9C0. USBCMD (. 5.41). , ENDPOINT (00-Endpoint0, 01 Endpointi, 10-Endpoint2, 11-Endpoint3). USB- , FLG = 1. .
RST = 1 , , RISC- RISC- . RISC- 60 . RST 0.
USB-, USB- (. 5.69), (IMMR & 0xFFFF0000)+0xA02. STR:= 1, FIFO , . IN.
, , FIFO . STOP ENDPOINT FLUSH:= 1. RESTART TX ENDPOINT.
USB-. USB- , , 16 ( - (. 5.70, 5.71), - , 3- 4- ).
,
.
(Empty) - (0 - , 1 - ). R (Ready) - (0 , 1 - ). W (Wrap) - (0 - , 1 - ). I (Interrupt)- (0 - , 1 - RXB ). F (First) L (Last) , () (0 - , 1 - () ).
= 1 (Transmit CRC), ( L = 1) . = 0, (End of Packet).
( L = 1), CNF = 1, . CNF = 0, , , FIFO .
NO (Non Octet) , . (Frame Aborted) -. CR (CRC Error). FIFO OV (Overrun), FIFO - UN (Underrun).
PID (Packed ID) . PID ( F = 1). ( F = 1) . PID = 00, DATA0. PID = 01, DATA1.
, , NAK ( ) STALL ( STALL). .
, := 1 (Time Out).
. USBER (. 5.72) (IMMR&0xFFFF0000)+0xA10. . USB- , 1 USBMR, . (IMMR&0xFFFFOO00)+0xA14 , .
USB- , 1 RESET .
IDLE , .
1, : , Underrun.
SOF (Start of Frame) SOF:= 1 FRAME_N .
USB- , RISC- , BSY .
, ( ) FIFO , , , .
RXB , .