реклама на сайте
подробности

 
 
> вопрос по работе TWI
zoddy
сообщение Feb 18 2009, 04:53
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 4-12-05
Из: Екатеринбург
Пользователь №: 11 773



Всем доброго времени суток! Суть темы такая. Имеется небольшая отладочная макетная плата, на которой установлено два контроллера. Есть необходимость связать их по TWI. Линии TWI подтянуты к питанию через 10К резисторы. Для пробы для обоих контроллеров написаны простенькие программки ведущего и ведомого, с помощью которых происходит пересылка данных по 2-3 байта от ведущего к ведомому и обратно. Суть проблемы: наблюдается неустойчивая работа связи по TWI на больших скоростях, а на более низких скоростях обмен происходит нормально. Подскажите пожалуйста, как решить эту проблему?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DS
сообщение Feb 28 2009, 16:19
Сообщение #2


Гуру
******

Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250



Господа знатоки ATMeg !

Есть ли способ вывести из зависа slave TWI atmega48 ?

Симптом такой - вдруг на SLA+W выдает NACK, потом SDA (или оба сигнала) залипает в 0. Импульсы по SCL не помогают - SDA переходит в 1, но после включения мастера SCL снова сваливается в 0 - сразу. Мастер не виноват - если slave сбросить, работа восстанавливается.

Cама 48 продолжает работать во время зависа, просто не видит аварии на порту - нет прерывания.

Причина повисания - spike на шине. Установлено почти достоверно.

Есть ли возможность изнутри 48 выяснить факт аварии на шине, и что-нибудь сделать ? Снаружи, как я понимаю, ничего ее не проймет.


--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 28 2009, 17:16
Сообщение #3


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(DS @ Feb 28 2009, 18:19) *
Есть ли способ вывести из зависа slave TWI atmega48 ?

Сбросить TWI модуль:
TWCR = (1 << TWINT);

и заново инициализировать через некоторое время (сам инициализирую через 1ms после сброса).

Цитата
Есть ли возможность изнутри 48 выяснить факт аварии на шине, и что-нибудь сделать ?

Должно было быть прерывание со статусом 0.
Но если его действительно нет, можно привязаться к таймауту.
Go to the top of the page
 
+Quote Post
DS
сообщение Feb 28 2009, 17:26
Сообщение #4


Гуру
******

Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250



Цитата(defunct @ Feb 28 2009, 20:16) *
Сбросить TWI модуль:

TWCR = (1 << TWINT);


Должно было быть прерывание со статусом 0.
Но если его действительно нет, можно привязаться к таймауту.


Чтобы сбросить, надо узнать, что есть проблема. А прерывание не вырабатывается, я так и этак проверял, похоже статус остается F8. Таймаут не от чего отсчитывать - он же не реагирует на SLA+W, соответственно, не знает, что к нему обратились.
Разве что мониторить состояния пинов, но тут тоже возникает сложность - а если мастер просто шину для себя придержал ?


--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 28 2009, 17:30
Сообщение #5


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(DS @ Feb 28 2009, 19:26) *
Таймаут не от чего отсчитывать - он же не реагирует на SLA+W, соответственно, не знает, что к нему обратились.

Таймаут можно считать от последнего прерывания, и от инициализации TWI.

Цитата
а если мастер просто шину для себя придержал ?

то сброс TWI модуля этого slave никак не повлияет на текущую транзакцию к другому slave'у.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- zoddy   вопрос по работе TWI   Feb 18 2009, 04:53
- - ARV   Цитата(zoddy @ Feb 18 2009, 07:53) Всем д...   Feb 18 2009, 06:19
|- - zoddy   Цитата(ARV @ Feb 18 2009, 11:19) а разве ...   Feb 18 2009, 06:54
|- - Maik-vs   Цитата(zoddy @ Feb 18 2009, 09:54) ... В...   Feb 18 2009, 10:18
|- - zoddy   Цитата(Maik-vs @ Feb 18 2009, 15:18)...   Feb 18 2009, 11:29
|- - Maik-vs   Цитата(zoddy @ Feb 18 2009, 14:29) Гм... ...   Feb 19 2009, 10:20
|- - zoddy   Цитата(Maik-vs @ Feb 19 2009, 15:20)...   Feb 19 2009, 11:04
|- - haker_fox   Цитата(zoddy @ Feb 19 2009, 19:04) Все ко...   Feb 19 2009, 12:41
|- - defunct   Цитата(haker_fox @ Feb 19 2009, 14:41) По...   Feb 19 2009, 23:18
|- - VladimirYU   Цитата(defunct @ Feb 20 2009, 02:18) .......   Feb 20 2009, 06:27
||- - zoddy   Цитата(VladimirYU @ Feb 20 2009, 11:27) М...   Feb 20 2009, 07:43
||- - haker_fox   Цитата(zoddy @ Feb 20 2009, 15:43) Огромн...   Feb 20 2009, 09:38
||- - Maik-vs   Рад, что мой пост так оживил тему! Собственно,...   Feb 20 2009, 13:38
||- - VladimirYU   Цитата(Maik-vs @ Feb 20 2009, 16:38)...   Feb 21 2009, 07:05
|- - ReAl   Цитата(defunct @ Feb 20 2009, 01:18) Авто...   Feb 26 2009, 21:07
|- - defunct   Цитата(ReAl @ Feb 26 2009, 23:07) Я, как ...   Feb 27 2009, 00:34
|- - ReAl   Цитата(defunct @ Feb 27 2009, 02:34) Рези...   Feb 27 2009, 10:26
|- - defunct   Цитата(ReAl @ Feb 27 2009, 12:26) Что тож...   Feb 27 2009, 12:02
|- - ReAl   Цитата(defunct @ Feb 27 2009, 14:02) Согл...   Feb 27 2009, 13:43
- - demiurg_spb   Чем выше скорость тем резче должны быть фронты. На...   Feb 18 2009, 09:06
- - IgorKossak   zoddy, Вам уже напоминали о резисторах подтяжки. 1...   Feb 18 2009, 17:44
|- - zoddy   Цитата(IgorKossak @ Feb 18 2009, 22:44) z...   Feb 19 2009, 08:01
||- - DS   Цитата(defunct @ Feb 28 2009, 20:30) Тайм...   Feb 28 2009, 17:32
||- - defunct   Цитата(DS @ Feb 28 2009, 19:32) А как узн...   Feb 28 2009, 17:45
||- - DS   Цитата(defunct @ Feb 28 2009, 20:45) В сл...   Feb 28 2009, 18:01
|- - singlskv   Цитата(DS @ Feb 28 2009, 19:19) Господа з...   Feb 28 2009, 18:08
|- - DS   Цитата(singlskv @ Feb 28 2009, 21:08) Пок...   Feb 28 2009, 19:02
|- - singlskv   Цитата(DS @ Feb 28 2009, 22:02) Вот так п...   Feb 28 2009, 19:59
|- - DS   Цитата(singlskv @ Feb 28 2009, 22:59) Кар...   Feb 28 2009, 20:07
|- - singlskv   Цитата(DS @ Feb 28 2009, 23:07) Слэйв дер...   Feb 28 2009, 20:35
- - DS   А не может ли вызывать завис изменение режима SPI ...   Mar 1 2009, 00:13
- - defunct   ЦитатаА не может ли вызывать завис изменение режим...   Mar 1 2009, 01:06
|- - DS   Цитата(defunct @ Mar 1 2009, 04:06) Не до...   Mar 1 2009, 09:43
- - DS   Вот код, который вызывает неадекватное поведение 4...   Mar 1 2009, 11:46
- - DS   Блин, классическое "сам дурак" - Наводки...   Mar 1 2009, 13:00
- - SasaVitebsk   Цитата(DS @ Mar 1 2009, 17:00) Так и рожд...   Mar 1 2009, 16:34


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 08:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.0143 секунд с 7
ELECTRONIX ©2004-2016