beautypg.com

4 i2c example 4: slave mode receive, C example 4: slave mode receive -9, Maxq family user’s guide: maxq8913 supplement – Maxim Integrated MAXQ Family Users Guide: MAXQ8913 Supplement User Manual

Page 95

background image

MAXQ Family User’s Guide:

MAXQ8913 Supplement

22-9

22.2.4 I

2

C Example 4: Slave Mode Receive

; I2C configured as slave with address 1ah

; Setup for Slave Mode Receive
move I2CSLA, #01ah

; I2C Slave Address = 01ah

move I2CCN, #0001h

; I2CEN = 1, I2CMST = 0, I2CMODE = 0, I2CSTART = 0

call wait_start

; Polling routine to wait for I2CSTART to be set,

; indicating a received START

;; Check for address match

move ACC, I2CST

and #0020h

; Check for Address Match flag set

cmp #0020h

jump ne, no_match

; Not an address match

move ACC, I2CCN

; Check transfer mode is set

and #004h

cmp #004h

jump ne, not_sl_xmit ; If transfer mode is low, not a slave transmit, else:

move I2CBUF, #0aah

; Data byte to be transmitted

call wait_xmit

; Poll for transmit done

;; Verify ACK received from master

move ACC, I2CST

and #080h

cmp #000h

jump ne, FAIL

; If NACK bit set, handle retransmission, else continue

Maxim Integrated