Библиотека Компэла


Глава 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