|
Проблема с 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 20 2005, 18:49
|

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

|
Не знаю насколько код работающий, пока не разобрался, но вот две ошибки:
ldi tempA,t5000 rcall l
Да и сложный у вас код, запутанный (как на первый взгляд), я пользуюсь такими п/п: ;************************************ ;Подпрограмма чтения байта из EEPROM:
EEPROM_read: sbic EECR,EEWE rjmp EEPROM_read out EEARH,temp1 out EEARL,temp2 sbi EECR,EERE in data,EEDR ret ;************************************
;************************************ ;Подпрограмма записи байта в EEPROM:
EEPROM_write: sbic EECR,EEWE rjmp EEPROM_write out EEARH,temp1 out EEARL,temp2 out EEDR,data sbi EECR,EEMWE sbi EECR,EEWE ret
;*************************************
Сообщение отредактировал James D. - Nov 20 2005, 18:56
|
|
|
|
|
Nov 21 2005, 06:41
|
Местный
  
Группа: Свой
Сообщений: 242
Регистрация: 27-01-05
Пользователь №: 2 225

|
Цитата(James D. @ Nov 20 2005, 21:49)  Не знаю насколько код работающий, пока не разобрался, но вот две ошибки:
ldi tempA,t5000 rcall l
Да и сложный у вас код, запутанный (как на первый взгляд), я пользуюсь такими п/п: я же писал что пп для eeprom . это зажержка 5мс между записью блоков. и потом , зачем Вы приемник делаете ведущим?
|
|
|
|
Сообщений в этой теме
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 beer_warrior to artem:
• Bit 7 – TWINT: TWI Interrupt Flag
Thi... Nov 10 2005, 18:41 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. Кстати, приемник - слэйв м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
|
|
|