Получается считать по очереди 3 регистра в которых есть информация отличная от нуля после подачи питания
Код
;-- 1.0 -----------------------------------------------------
rcall CSLow
ldi temp, 0x2c
ori temp, 0b11000000
rcall SPITransfer
ldi temp, 0x00
rcall SPITransfer
rcall CSHigh
;-- 1.1 -----------------------------------------------------
rcall CSLow
ldi temp, 0x00
ori temp, 0b11000000
rcall SPITransfer
ldi temp, 0x00
rcall SPITransfer
rcall CSHigh
;-- 1.2 -----------------------------------------------------
rcall CSLow
ldi temp, 0x30
ori temp, 0b11000000
rcall SPITransfer
ldi temp, 0x00
rcall SPITransfer
rcall CSHigh

сигналы МК
1 CLK
2 DataO
3 DataIn
4 CS
0x2C 00001010 Data rate and power mode control
0x00 11100101 Device ID
0x30 00000010 Source of interrupts
считывается корректно если я выставляю при чтении мультипл байт. Если выставлю МБ в нуль то достоверных данных нет.
Пытаюсь проделать чтение-запись-чтение
беру регистр: 0x2A 00000000 Axis control for tap/double tap.
по умолчанию в нём нуль.
Код
;-- 1.3 -----------------------------------------------------
rcall CSLow
ldi temp, 0x2a
ori temp, 0b11000000
rcall SPITransfer
ldi temp, 0x00
rcall SPITransfer
rcall CSHigh
;-- 1.4 ----------------------------------------------------- запись в 0x2a значения 0x01
rcall CSLow
ldi temp, 0x2a
ori temp, 0b01000000
rcall SPITransfer
ldi temp, 0x01
rcall SPITransfer
rcall CSHigh
;-- 1.5 -----------------------------------------------------
rcall CSLow
ldi temp, 0x2a
ori temp, 0b11000000
rcall SPITransfer
ldi temp, 0x00
rcall SPITransfer
rcall CSHigh
при такой процедуре на линии DataIn всегда нуль. Хотя пишу единичку в младшем разряде.
регистр доступен для чтения и записи.
руки опускаются )-:
Сообщение отредактировал Sanchello - Jul 23 2011, 13:08