![VersaLogic VL-EBX-37 Reference Manual Download Page 43](http://html1.mh-extra.com/html/versalogic/vl-ebx-37/vl-ebx-37_reference-manual_1006785043.webp)
Interfaces and Connectors
EBX-37 Reference Manual
37
;Configure MCP23S17 register IODIRA for outputs
MOV
DX, CABh
MOV
AL, 00h
;SPIDATA1: 00h for outputs
OUT
DX, AL
MOV
DX, CACh
MOV
AL, 00h
;SPIDATA2: MCP23S17 register address 00h
OUT
DX, AL
MOV
DX, CADh
MOV
AL, 40h
;SPIDATA3: MCP23S17 write command
OUT
DX, AL
CALL
BUSY
;Poll busy flag to wait for SPI transaction
;Write 55h to MCP23S17 register GPIOA
MOV
DX, CABh
MOV
AL, 55h
;SPIDATA1: data to write
OUT
DX, AL
MOV
DX, CACh
MOV
AL, 14h
;SPIDATA2: MCP23S17 register address 14h
OUT
DX, AL
MOV
DX, CADh
MOV
AL, 40h
;SPIDATA3: MCP23S17 write command
OUT
DX, AL
CALL
BUSY
;Poll busy flag to wait for SPI transaction
BUSY: MOV
DX, CA9h
IN
AL, DX
;Get SPISTATUS
AND
AL, 01h
;Isolate the BUSY flag
JNZ
BUSY
;Loop if SPI transaction not complete