Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
22.10.2006, 08:05
|
|
Частый гость
Регистрация: 10.09.2006
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
ATmega168: TWI + WatchDog < > любовь
![Вопрос](images/smilies/icon_question.gif) ATmega168 в роли master`а периодически шлет slave`у данные.
1) WatchDog не трогаем. Все ОК: данные пересылаются, в ответ приходит Acknowledge.
2) Включаем WatchDog программно в режим «System Reset» или «Interrupt and System Reset», Fuse WDTON=1 (unprogrammed). Тоже все ОК.
3) Fuse WDTON=0 (programmed), те же режимы «System Reset» или «Interrupt and System Reset». Вот тут-то и начинается. Очень часто в ответ приходит Фиг_ Acknowledge и без конца сыплется Bus Error – Illegal START or STOP (TWSR=0x00).
(Само собой, slave один и тот же).
Может кто сталкивался?
|
|
|
|
22.10.2006, 18:09
|
|
Гражданин KAZUS.RU
Регистрация: 16.12.2004
Сообщений: 587
Сказал спасибо: 13
Сказали Спасибо 23 раз(а) в 9 сообщении(ях)
|
А как отлаживаешь. Среда, отладчик, кварц, slave?
|
|
|
|
23.10.2006, 05:59
|
|
Частый гость
Регистрация: 10.09.2006
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Работаю в дос-окне, компилятор - avrasm 1.21, кварц 8 МГц, слэйв - ATmega8535 (разве это имеет значение в данном ллучае?) (напоминаю, что во всех 3-х случаях все это одно и то же). При отладке посылаю данные по RS-232
|
|
|
|
25.10.2006, 19:18
|
|
Гражданин KAZUS.RU
Регистрация: 16.12.2004
Сообщений: 587
Сказал спасибо: 13
Сказали Спасибо 23 раз(а) в 9 сообщении(ях)
|
Просто моё подозрение (судя по тому, что только аппаратное включение WDT сбивает работу с TWI), что отладчик может не останавливать WDT - у Вас происходит сброс процессора ещё до инициализации WDT, а далее он может происходить в процессе выполнения программы, но Вы уже в отладчике это не заметите. А вот Slave, которого сначала проинициализировали, что-то передавали, а потом "кинули", вероятнее всего будет обижаться - присылать любимый NAK. Посмотрите сколько времени проходит от старта программы до перестройки WDT, т.к. по умолчанию стоит минимально возможная задержка по WDT до ресета, а запуск его ещё осуществляется до начала выполнения первой команды. Я делаю вообще так:
int main(void)
{
__watchdog_reset();
WDTCR = 0x1F; //WATCHDOG ENABLED - dont forget to issue WDRs
WDTCR = 0x0F; //WATCHDOG ENABLED - dont forget to issue WDRs
*****
// далее программа пользователя.
}
и не забывайте, что при WDTON=0 выключить WDT программно уже нельзя.
Желаю успеха!
|
|
|
|
26.10.2006, 07:39
|
|
Частый гость
Регистрация: 10.09.2006
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Инициализация проводится сразу, происходит правильно – проверено.
Проц не сбрасывается – проверено.
Отладчиками не пользуюсь, отлаживаю на реальном железе
|
|
|
|
26.10.2006, 18:38
|
|
Гражданин KAZUS.RU
Регистрация: 16.12.2004
Сообщений: 587
Сказал спасибо: 13
Сказали Спасибо 23 раз(а) в 9 сообщении(ях)
|
А может slave не успевает проинициализироваться? У меня в такой конфигурации и TWI работает и WDT я включаю WDTON=0, правда на старте сразу переинициализирую ватчдог. У меня Slave DS1310 таймер по I2C.
|
|
|
|
27.10.2006, 07:46
|
|
Частый гость
Регистрация: 10.09.2006
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Извините.
На несколько дней отвлекся на другое, а тем временем проблема самопочинилась (???!). Железяка та же, софтина та же. Непонятно.
Вопрос, видимо, снимается за отсутствием состава
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
ATMega 8 + TWI
|
_OXY_GEN_ |
Микроконтроллеры, АЦП, память и т.д |
4 |
03.06.2009 17:33 |
TWI в AVR
|
igor727 |
Микроконтроллеры, АЦП, память и т.д |
0 |
21.05.2008 19:15 |
Как включить Watchdog
|
a-l-e-x |
Микроконтроллеры, АЦП, память и т.д |
4 |
04.10.2007 16:48 |
TWI as master и USI as slave
|
duritskiy |
Микроконтроллеры, АЦП, память и т.д |
20 |
06.09.2007 19:18 |
TWI
|
LDZ |
Микроконтроллеры, АЦП, память и т.д |
18 |
31.12.2006 13:00 |
Часовой пояс GMT +4, время: 04:13.
|
|