VersaLogic VL-EBX-37 Reference Manual page 42

Intel core 2 duo sbc with video, ethernet, usb, serial, sata, audio, analog + digital i / o, pcie mini card, eusb, and spx
Table of Contents

Advertisement

MOV
MOV
OUT
MOV
MOV
OUT
MOV
MOV
OUT
MOV
MOV
OUT
MOV
MOV
OUT
BUSY: MOV
IN
AND
JNZ
MOV
MOV
OUT
MOV
MOV
OUT
MOV
MOV
OUT
MOV
MOV
OUT
MOV
MOV
OUT
Writing to a Digital I/O Port Using the SPI Interface
The following code example initiates a write of 55h to Digital I/O port bits DIO15-DIO8.
;Write 44h to configure MCP23S17 register IOCON
MOV
MOV
OUT
MOV
MOV
OUT
MOV
MOV
OUT
MOV
MOV
OUT
MOV
MOV
OUT
CALL
EBX-37 Reference Manual
DX, CA8h
AL, 26h
;SPICONTROL: SPI Mode 00, 24bit, auto SPI 6
DX, AL
DX, CA9h
AL, 30h
;SPISTATUS: 8MHz, no IRQ, left-shift
DX, AL
DX, CABh
AL, 44h
;SPIDATA1: Mirror & Open-Drain interrupts
DX, AL
DX, CACh
AL, 0Ah
;SPIDATA2: MCP23S17 address 0x0A
DX, AL
DX, CADh
AL, 40h
;SPIDATA3: MCP23S17 write command
DX, AL
DX, CA9h
AL, DX
;Get SPI status
AL, 01h
;Isolate the BUSY bit
BUSY
;Loop back if SPI transaction is not complete
DX, CA8h
AL, 27h
;SPICONTROL: SPI Mode 00, 24bit, auto SPI 6
DX, AL
DX, CA9h
AL, 30h
;SPISTATUS: 8MHz, no IRQ, left-shift
DX, AL
DX, CABh
AL, 44h
;SPIDATA1: Mirror & Open-Drain interrupts
DX, AL
DX, CACh
AL, 0Ah
;SPIDATA2: MCP23S17 address 0x0A
DX, AL
DX, CADh
AL, 40h
;SPIDATA3: MCP23S17 write command
DX, AL
DX, CA8h
AL, 26h
;SPICONTROL: SPI Mode 00, 24bit,
DX, AL
DX, CA9h
AL, 30h
;SPISTATUS: 8MHz, no IRQ, left-shift
DX, AL
DX, CABh
AL, 44h
;SPIDATA1: mirror and open-drain interrupts
DX, AL
DX, CACh
AL, 0Ah
;SPIDATA2: MCP23S17 IOCON register address 0Ah
DX, AL
DX, CADh
AL, 40h
;SPIDATA3: MCP23S17 write command
DX, AL
BUSY
;Poll busy flag to wait for SPI transaction
Interfaces and Connectors
SPI 6
36

Advertisement

Table of Contents
loading

Table of Contents