Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
08.12.2010, 11:13
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Зависание TWI в atmega48
Сообщение от winso
|
Виснет сам аппаратный TWI. В нем где задержку то поставить? Только и остается похоже ресетится.
|
Ну я же и говорю - Перед командой Старт включите таймаут, если за это время передача не завершена - выкл/вкл ТВИ (это ресетит его). Аналогично на слэйвах - если по ТВИ в норме гуляет допустим 10 посылок в секунду, а тут вдруг за секунду ни одной - ресетим ТВИ в слэйвах
Почему-то у всех работает...
|
|
|
|
08.12.2010, 11:28
|
|
Частый гость
Регистрация: 29.07.2010
Сообщений: 23
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Re: Зависание TWI в atmega48
Сообщение от niXto
|
Почему-то у всех работает...
|
У меня тоже работает. Сутками. Месяцами. Но несколько раз подходишь к изделию - мастер бедный вопит - а нет у меня никого не шине. нет - и все. И блоки тоже - а нет мастера, чего делать не знаем. Вот после того и начал гонять на восстановление обмена после любых ошибок. Пока добился того, что подвесить шину стало достаточно сложно. Но удается. то есть если минуты 2 тупо тыкать перемычку туда-сюда в scl-sda - вдруг вешается.
А для меня это клиника.
Но я все это из дома пишу, пока со вчерашнего до макетки еще не доехал... Доеду - посмотрим...
|
|
|
|
08.12.2010, 14:48
|
|
Вид на жительство
Регистрация: 21.08.2007
Сообщений: 318
Сказал спасибо: 12
Сказали Спасибо 67 раз(а) в 61 сообщении(ях)
|
Re: Зависание TWI в atmega48
Сообщение от winso
|
У меня тоже работает. Сутками. Месяцами. Но несколько раз подходишь к изделию - мастер бедный вопит - а нет у меня никого не шине. нет - и все. И блоки тоже - а нет мастера, чего делать не знаем. Вот после того и начал гонять на восстановление обмена после любых ошибок. Пока добился того, что подвесить шину стало достаточно сложно. Но удается. то есть если минуты 2 тупо тыкать перемычку туда-сюда в scl-sda - вдруг вешается.
А для меня это клиника.
Но я все это из дома пишу, пока со вчерашнего до макетки еще не доехал... Доеду - посмотрим...
|
Дык беда ваша оттого, что слэйв питание получает позже чем подключается к шине. Вот через защитные диоды мега и кормится с неё Соответсвенно просаживает шину создавая фальшивый старт.
Вы либо дата пины покороче сделайте, чтобы они позже питания подключались, либо подводите питание и плюс и минус дважды - с разных сторон интерфейса. Ошибки с 15% это уменьшит, но не до нуля
Да, кстати, всё вышеописанное - защита от перекоса при установке модуля
Последний раз редактировалось Cybermaker; 08.12.2010 в 14:57.
|
|
|
|
08.12.2010, 15:29
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 583
Сказал спасибо: 76
Сказали Спасибо 90 раз(а) в 66 сообщении(ях)
|
Re: Зависание TWI в atmega48
Мне кажется, проблема у вас с софтом. Ясное дело, что у хардварного тви есть моменты, при которых он виснет, но правильным софтом это (100%) можно вылечить.
По поводу уарт, посмотрите в дш, в разделе уарт вещь MPCM (на мегу48 стр.193 дш), на ведущем поставите софтовый, на ведомых аппартный. Плюс преобразователи уарт/485.
По поводу 1вайр, есть преобразователи и2с/1 вайр, DS2482, к примеру - снимает с процессора все заботы о таймингах, рамсирчах и проч 1вайровой чепухе.
Вот.
__________________
Sex, Druggs, Rock&Roll
|
|
|
|
09.12.2010, 14:59
|
|
Прохожий
Регистрация: 27.04.2010
Адрес: Kiev
Сообщений: 7
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Зависание TWI в atmega48
А поставить подтяжки с двух концов линии слабо?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
ATMega & TWI в режиме прерываний
|
nerozero |
Микроконтроллеры, АЦП, память и т.д |
13 |
07.12.2010 17:24 |
USART на Atmega48
|
vgtmaster |
Микроконтроллеры, АЦП, память и т.д |
4 |
23.10.2010 12:04 |
AVR (ATmega16) - TWI (аппаратный) - DS1302
|
igor-k |
Микроконтроллеры, АЦП, память и т.д |
9 |
06.07.2010 15:26 |
Обмен м/у AVR по шине TWI
|
Fan79 |
Микроконтроллеры, АЦП, память и т.д |
15 |
22.06.2010 09:58 |
Затруднение с TWI интерфейсом
|
toxxinus |
Микроконтроллеры, АЦП, память и т.д |
11 |
21.12.2009 06:30 |
Часовой пояс GMT +4, время: 10:35.
|
|