Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 22.10.2006, 08:05  
Diusha
Частый гость
 
Регистрация: 10.09.2006
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Diusha на пути к лучшему
По умолчанию ATmega168: TWI + WatchDog < > любовь

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 один и тот же).
Может кто сталкивался?
Реклама:
Diusha вне форума  
Непрочитано 22.10.2006, 18:09  
NemoCut32
Гражданин KAZUS.RU
 
Регистрация: 16.12.2004
Сообщений: 587
Сказал спасибо: 13
Сказали Спасибо 23 раз(а) в 9 сообщении(ях)
NemoCut32 на пути к лучшему
По умолчанию

А как отлаживаешь. Среда, отладчик, кварц, slave?
NemoCut32 вне форума  
Непрочитано 23.10.2006, 05:59  
Diusha
Частый гость
 
Регистрация: 10.09.2006
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Diusha на пути к лучшему
По умолчанию

Работаю в дос-окне, компилятор - avrasm 1.21, кварц 8 МГц, слэйв - ATmega8535 (разве это имеет значение в данном ллучае?) (напоминаю, что во всех 3-х случаях все это одно и то же). При отладке посылаю данные по RS-232
Diusha вне форума  
Непрочитано 25.10.2006, 19:18  
NemoCut32
Гражданин KAZUS.RU
 
Регистрация: 16.12.2004
Сообщений: 587
Сказал спасибо: 13
Сказали Спасибо 23 раз(а) в 9 сообщении(ях)
NemoCut32 на пути к лучшему
По умолчанию

Просто моё подозрение (судя по тому, что только аппаратное включение 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 программно уже нельзя.
Желаю успеха!
NemoCut32 вне форума  
Непрочитано 26.10.2006, 07:39  
Diusha
Частый гость
 
Регистрация: 10.09.2006
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Diusha на пути к лучшему
По умолчанию

Инициализация проводится сразу, происходит правильно – проверено.
Проц не сбрасывается – проверено.
Отладчиками не пользуюсь, отлаживаю на реальном железе
Diusha вне форума  
Непрочитано 26.10.2006, 18:38  
NemoCut32
Гражданин KAZUS.RU
 
Регистрация: 16.12.2004
Сообщений: 587
Сказал спасибо: 13
Сказали Спасибо 23 раз(а) в 9 сообщении(ях)
NemoCut32 на пути к лучшему
По умолчанию

А может slave не успевает проинициализироваться? У меня в такой конфигурации и TWI работает и WDT я включаю WDTON=0, правда на старте сразу переинициализирую ватчдог. У меня Slave DS1310 таймер по I2C.
NemoCut32 вне форума  
Непрочитано 27.10.2006, 07:46  
Diusha
Частый гость
 
Регистрация: 10.09.2006
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Diusha на пути к лучшему
По умолчанию

Извините.
На несколько дней отвлекся на другое, а тем временем проблема самопочинилась (???!). Железяка та же, софтина та же. Непонятно.
Вопрос, видимо, снимается за отсутствием состава
Diusha вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
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.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot