|
Проблема с TWI |
|
|
|
Nov 4 2005, 17:14
|

Местный
  
Группа: Участник
Сообщений: 315
Регистрация: 10-10-05
Пользователь №: 9 466

|
Соединил 3 МК по TWI - Master передает данные на Slave 1, потом на Slave 2 (поочередно, друг за другом). Два из них общаются нормально (односторонняя передача от Master к Slave 1), а как только нужно передать от Master к Slave 2, один раз передача проходит и все зависает. Судя по всему, после этого не получается передать данные на Slave 1. В конце каждой передачи Master осуществляет условие STOP STOP: ldi temp,(1<<TWINT)|(1<<TWSTO)|(1<<TWEN) out TWCR,temp, а Slave 1/2, после приема переданных байт, просто переходят к дальнейшему выполнению основной программы, т.е. никаких стоповых функций нет. Должны ли они как-то обрабатывать функцию STOP?
Можно ли в режиме "slave приемник" узнать какой адрес передал "master передатчик", т.е. к кому в данный момент он обращается? Появляется ли этот адрес в TWDR?
Как правильно обратиться к конкретному "slave приемнику", чтобы второй "slave приемник" на вызов не реагировал?
|
|
|
|
|
 |
Ответов
|
Nov 10 2005, 18:41
|

Профессионал
    
Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380

|
to artem:
• Bit 7 – TWINT: TWI Interrupt Flag This bit is set by hardware when the TWI has finished its current job and expects application software response. If the I-bit in SREG and TWIE in TWCR are set, the MCU will jump to the TWI Interrupt Vector. While the TWINT Flag is set, the SCL low period is stretched. The TWINT Flag must be cleared by software by writing a logic one to it.
Страница 179 описание TWCR
to James: Не хочеться раздувать топик, на выходных склепаю заметочку с подробным разбором этой темы и выложу у себя на страничке. Я тоже очень долго воевал c TWI, в моем случае был multimaster да еще на очень кривом железе, поэтому опыта поднабрался немало <_<
--------------------
Вони шукають те, чого нема, Щоб довести, що його не існує.
|
|
|
|
Сообщений в этой теме
James D. Проблема с TWI Nov 4 2005, 17:14 James D. Попробовал отключать от линии приемник, к которому... Nov 5 2005, 15:37 haker_fox Была у меня такая ситуация. Но я забыл поставить н... Nov 6 2005, 08:18 James D. Резисторы по 4.7кОм стоят на каждой линии (соединя... Nov 6 2005, 08:43 haker_fox ЦитатаSLA_Wr: ldi temp,$04 ;Загрузка адреса S... Nov 6 2005, 10:41 James D. Да примеры-то эти я уже давно все скачал и просмот... Nov 6 2005, 12:44 haker_fox ЦитатаPusk_Sr: ldi temp,(1<<TWINT)|(1<... Nov 6 2005, 14:16 James D. Так в даташите как раз есть такая фраза:
"Дл... Nov 6 2005, 15:11 James D. Выяснил... Nov 6 2005, 16:29 haker_fox ЦитатаSTOP_r: ldi temp,(1<<TWINT)|(0<... Nov 7 2005, 00:12 rmo В VMLAB в папке AVR_demo есть рабочий проект TWI ... Nov 7 2005, 03:24 James D. Вы понимаете, я обнуление (например, 0<<TWST... Nov 7 2005, 05:32 rmo VMLAB http://www.amctools.com/download.htm Nov 7 2005, 07:59 James D. М-да, выглядит как игрушка. Сомневаюсь я насчет ре... Nov 7 2005, 10:41 beer_warrior Ну я думаю во-первых, если не работает на разных к... Nov 7 2005, 12:30 James D. У меня временная индикация сделана на светодиодах.... Nov 7 2005, 12:53 beer_warrior Ну и все проходит нормально?
Нигде не не вылетает... Nov 7 2005, 13:25 James D. Прога полностью работает при пересылке от m32 (мас... Nov 7 2005, 14:12 beer_warrior Ну и на каком этапе вылетает обмен между м32 и м16... Nov 7 2005, 15:24 _artem_ Ne znayu rabotaet ili net - no yesli da mozet i pr... Nov 7 2005, 16:22 James D. To beer_warrior:
а как проверить инициализацию м16... Nov 7 2005, 21:08 beer_warrior Цитата(James D. @ Nov 7 2005, 23:08) To b... Nov 8 2005, 08:57 _artem_ Po moemu v code priemnika ty dlzen zapisat v TWAR ... Nov 7 2005, 23:28 James D. Попробовал $08 - не то.
Понимаете, artem, с m... Nov 8 2005, 06:49 _artem_ Soglasen s beer_warrior, nado snachala soblyusti c... Nov 8 2005, 10:04 James D. Различи... Nov 8 2005, 10:51 beer_warrior USART это точка-точка в общем случае.
Вам какое ра... Nov 8 2005, 11:39 James D. Еще кое-... Nov 8 2005, 11:42 beer_warrior Батенька, с арбитражем у вас проблемы. И с отраб... Nov 8 2005, 12:42 beer_warrior Батенька, с арбитражем у вас проблемы. И с отраб... Nov 8 2005, 12:56 James D. Спасибо,... Nov 8 2005, 13:39 beer_warrior Ну тогда и говорим о первоначальном варианте.
м32 ... Nov 8 2005, 15:48 James D. Правиль... Nov 8 2005, 16:16 beer_warrior ОК, значит щелкнул таймер, обмен с м32 прошел, на... Nov 8 2005, 20:54 James D. Для чистоты эксперимента сделал следующее.
Общение... Nov 9 2005, 07:08 beer_warrior ОК, первая посылка мастера SLAW?
Тогда проверяем к... Nov 9 2005, 09:40 James D. Слэйв м32 отключил, пишу сразу в м16.
Кусок кода в... Nov 9 2005, 11:30 beer_warrior Ну во-первых, адрес надо сдвигать на 1 бит и накл... Nov 9 2005, 12:32 James D. Вынул из панельки слейв м16, и поставил туда слэйв... Nov 9 2005, 12:52 beer_warrior Так может просто кристалл битый? Nov 9 2005, 13:00 James D. Сдвинул ... Nov 9 2005, 13:09 James D. Да, и еще. Раньше у меня в системе (громко звучит,... Nov 9 2005, 13:22 beer_warrior ОК делаем вот такой финт - сразу после инициализац... Nov 9 2005, 13:24 James D. Значит ... Nov 9 2005, 14:20 James D. Вы еще мне объясните: зачем это левое прерывание-т... Nov 9 2005, 14:38 beer_warrior Неа, я имел в виду прерывание по TWI т.е. гарантир... Nov 9 2005, 16:32 James D. Я так и подумал, что надо задействовать прерывание... Nov 9 2005, 17:03 _artem_ James , voobse to etot Atmel nado povesit ).
Vot ... Nov 10 2005, 03:14 James D. По прерыванию TWI что-то не работает... Прошу не б... Nov 10 2005, 08:38 James D. artem, насчет повесить - за мной будешь, сначала о... Nov 10 2005, 09:01 James D. Тихо шифером шурша ...
Ситуация такая. Слэйв м16 ... Nov 10 2005, 11:34 beer_warrior Артем, запись 1 в TWINT сбрасывает триггер, а пре... Nov 10 2005, 12:35 James D. Хорошо, если можно запустить программу обработки о... Nov 10 2005, 16:34 _artem_ 2 beer_warrior, ya s samogo nachala zametil chto p... Nov 10 2005, 18:17 James D. Я очень благодарен вам за помощь. Буду ждать подро... Nov 10 2005, 20:41 James D. Маленьк... Nov 11 2005, 07:37 beer_warrior http://www.nongnu.org/avr-libc/user-manual/index.h... Nov 11 2005, 08:16 James D. Нашел на диске обучение языку С. Что-то типа книги... Nov 11 2005, 09:46 bbg Цитата(James D. @ Nov 11 2005, 12:46) Поп... Nov 11 2005, 17:23 James D. Дело пр... Nov 11 2005, 19:24 James D. Вопрос.
... Nov 14 2005, 13:10 James D. Получае... Nov 14 2005, 14:11 IgorKossak Цитата(James D. @ Nov 14 2005, 16:11) ...... Nov 16 2005, 08:17 James D. При передаче с мастера м32 на слэйв м32 я поубирал... Nov 16 2005, 15:40 IgorKossak Цитата(James D. @ Nov 16 2005, 17:40) При... Nov 16 2005, 16:51 James D. Я хочу, очень хочу, чтобы все работало ПРАВИЛЬНО и... Nov 16 2005, 19:32 IgorKossak Цитата(James D. @ Nov 16 2005, 21:32) ...... Nov 17 2005, 07:51 _artem_ Может вам интересно будет - послал мeйл Атмелу нас... Nov 17 2005, 10:30 bbg Цитата(_artem_ @ Nov 17 2005, 13:30) Може... Nov 20 2005, 09:56 James D. IgorKossak, я был бы вам безмерно благодарен, если... Nov 17 2005, 21:33 IgorKossak Уважаемый James D., с ассемблером я сталкиваюсь то... Nov 18 2005, 09:00 James D. У меня на всех трех МК (м16 и два м32) стоят кварц... Nov 18 2005, 19:41 James D. Сделал простейший случай, когда больше ничего друг... Nov 20 2005, 13:32 m16 James D.
ну за что ж Вы так шиты не любите. Я де... Nov 20 2005, 14:24 James D. Да есть у меня полный перевод м128 с этого сайта. ... Nov 20 2005, 15:25 m16 Цитата(James D. @ Nov 20 2005, 18:25) Доп... Nov 20 2005, 16:28 James D. Но там вот что написано:
1. Пepeдaeтcя бaйт дaнны... Nov 20 2005, 16:42 m16 Цитата(James D. @ Nov 20 2005, 19:42) Но ... Nov 20 2005, 17:06 James D. SLA_W: ldi temp,$04 ;Загрузка адреса слэйв ... Nov 20 2005, 17:15 m16 а где старт и опрос состояния после оного? Nov 20 2005, 17:25 James D. Не, ну я кусок привел - где ошибка. А полностью во... Nov 20 2005, 17:33 m16 пора уходить. приложил рабающий код для работы с ... Nov 20 2005, 17:40 James D. Не знаю насколько код работающий, пока не разобрал... Nov 20 2005, 18:49 m16 Цитата(James D. @ Nov 20 2005, 21:49) Не ... Nov 21 2005, 06:41 James D. Кстати, приемник - слэйв м16 зацикливается здесь (... Nov 20 2005, 19:13 James D. Если линии SDA и SCL в "0" состоянии, зн... Nov 20 2005, 19:49 James D. Почему ведущим? Приемник у меня подчиненный.
Бит T... Nov 21 2005, 10:31 m16 именно
(1<<TWEA)|(1<<TWEN) - ведомый п... Nov 21 2005, 11:06 James D. Понял, вечерком попробую с такой комбинацией.
Пос... Nov 21 2005, 11:24 m16 Цитата(James D. @ Nov 21 2005, 14:24) Пон... Nov 21 2005, 11:40 James D. В приемнике убрал (1<<TWINT), оставил везде ... Nov 21 2005, 16:03 m16 вообще то если на шине нет ошибки (код F8) по... Nov 21 2005, 16:41 James D. Дык я так и делаю (прога передатчика целиком):
ld... Nov 21 2005, 17:10 m16 Цитата(James D. @ Nov 21 2005, 20:10) Дык... Nov 21 2005, 17:42 James D. Приемник:
ldi temp,$04 ;Инициализация режи... Nov 21 2005, 18:04 m16 Цитата(James D. @ Nov 21 2005, 21:04) При... Nov 21 2005, 18:18 James D. Урра!!! Заработало!!!
З... Nov 21 2005, 20:18 James D. М-да... Работать-то оно работает, но появились про... Nov 22 2005, 12:58 Moks Добрый вечер!
Вот нужна какая помощь: Я переда... Dec 1 2005, 20:10
3 страниц
1 2 3 >
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|