Здравствуйте. Поднимаю уже давнюю тему дабы не плодить много новых.
Сейчас приходится писать SPI slave на attiny (2313 или 4313), где, как я понимаю, SPI отсутствует. Режим работы третий. Т.е. вначале идёт выставление бита на шину, затем его чтение. Как я посмотрел в даташитах, в USI, в отличие от SPI, старший выставляемый бит уже отображён на линию (MISO). В SPI когда мы сдвигаем байт, его старший бит «уходит» на линию, а его место занимает следующий бит, как и полагается. В USI же старший бит уже отображён на линию. И когда мы работаем в режиме «сначала выставление(сдвиг), затем чтение» выставляется не старший а следующий за ним бит. Так вот я это понял.
И подскажите про просыпание в tiny2313. Правильно ли я понял, что в режиме power-down мы можем просыпаться по состоянию "старт" на шине USI? Но это состояние возможно только в two-wire режиме? В режиме эмуляции SPI можно ли сделать просыпание?
|