Глава 6.
Реализация шины SMBus на базе микроконтроллера MSP430
BIC.B #SDA, DIR ; выставить лог. «1» ; на линии SDA BIC.B #SCL, DIR ; выставить лог. «1» ; на линии SCL ; проверка удлинения тактового сигнала (clock low ; extending), чтобы не опережать ведомое устройство |
AND.В #SCL, R1C JZ clkex ; ожидание подтверждения (АСК) (SDA переходит в лог. ; «О») MOV #05F6h, Rll |
clkex
wack
;MOV #008h, Rll
MOV |
#02FFh, Rll
MOV.В IN, R1C DEC Rll JZ busy
MOV.В IN, R1C DEC Rll JZ sbusy
AND.В #SDA, R1C
JNZ wack
BIS.В #SCL, DIR
RET
счётчик на ?50 икс удлинённый счётчик для батареи PS100Z-20C проверка шины
арбитраж - время
истекло
проверка линии SCL
счетчик таимаута для NACK
проверка шины
таймаут NACK— отправить бит Р и повторить попытку
маскировать всё, кроме SDA
приём АСК или ожидание таимаута
выставить лог. «О» на линии SCL
; Отправка стоповой последовательности ******************************************************
pbit
BIS.В #SDA, DIR BIS.В #SCL, DIR
NOP
BIC.B #SCL, DIR
NOP
выставить лог. «О» на линии SDA выставить лог. «О» на линии SCL
выставить лог. «1» на линии SCL
Библиотека Компэла
f& Texas