|
|
  |
USI в качестве SPI Slave (ATtiny2313), не принимает данные |
|
|
|
May 10 2006, 09:00
|

Участник

Группа: Новичок
Сообщений: 24
Регистрация: 10-05-06
Из: Russia, Tomsk
Пользователь №: 16 936

|
Цитата(WHALE @ May 10 2006, 11:24)  в студии usi не эмулируется,пробуй в железе. пробовал - тоже не работает ( Счетчик также не инкрементируется
|
|
|
|
|
May 10 2006, 21:18
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(Alexey V. @ May 10 2006, 09:28)  USICR = (1 << USICS1) | (1 << USIWM0); USIDR = 0x55; USISR = (1 << USIOIF); while((USISR & (1 << USIOIF)) == 0); bTmp = USIDR; Main.Ch1RxData = bTmp; USICR = (0 << USICS1) | (0 << USIWM0); А как насчет того чтобы открыть нужные порты на тип DDRB.5=1 DDRB.6=1 DDRB.7=1 Вот код инициализации на прием по SPI,я задейсвовал для прерывания USI Overflov USISR=$40 USICR=$5C Ну и... DDRB.5=1 DDRB.6=1 DDRB.7=1
|
|
|
|
|
May 11 2006, 02:22
|

Участник

Группа: Новичок
Сообщений: 24
Регистрация: 10-05-06
Из: Russia, Tomsk
Пользователь №: 16 936

|
Цитата(bodja74 @ May 11 2006, 00:18)  Ну и... DDRB.5=1 DDRB.6=1 DDRB.7=1 не совсем понятно, зачем все линии на выход настраивать - у меня устройство будет в качестве слэйва работать, да и линия DI все равно должна быть входом...
|
|
|
|
|
May 11 2006, 08:36
|

Участник

Группа: Новичок
Сообщений: 24
Регистрация: 10-05-06
Из: Russia, Tomsk
Пользователь №: 16 936

|
Цитата(WHALE @ May 11 2006, 09:43)  сходи на [url=http://www.gaw.ru/html.cgi/txt/app/micros/avr/] avr 312 usi-slave i2c.я месяца 2 назад тоже разбирался c usi,может я тупой но разобрался с его работой только по исходнику,ds атмеловский в этой части,по моему,как-то криво написан. спасибо, заработало - надо было подключить pull-up резисторы у линий настроенных на вход
|
|
|
|
|
Dec 6 2013, 04:35
|
Частый гость
 
Группа: Участник
Сообщений: 191
Регистрация: 18-09-12
Из: Орёл
Пользователь №: 73 591

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