|
DS1307Z +AtMega128, Нет старта на TWI |
|
|
|
Jul 11 2011, 20:44
|
Частый гость
 
Группа: Участник
Сообщений: 79
Регистрация: 10-08-09
Пользователь №: 51 828

|
Здравствуйте! Столкнулся с проблемой. Модуль TWI отказывается инициировать на шине состояние START. Точнее я не знаю, может оно и создается, но только после установки флага TWINT в TWCR в регистр TWSR почему то загружается значение (0xEC) вместо обещанного (0x08). Я в шоке. Чего я только не пробовал. Сразу приведу функцию установки состояния START. Если кто сталкивался с подобной проблемой подскажите в чём тут дело? Код //Инициализация i2c шины. TWBR |= 1<<TWBR6|1<<TWBR5|1<<TWBR1|1<<TWBR0; //Резонатор 14.7456МГц. TWSR &= (~((1<<TWPS1)|(1<<TWPS0))); TWAR |= 1<<TWA0|1<<TWA1|1<<TWA3|1<<TWA5; //задано произвольно просто чтоб было. МК - мастер. TWAR &= (~((1<<TWGCE))); //запрещаю всякие там общие вызовы моего МК. DDRD |= 1<<PD0|1<<PD1; //SDA и SCL делаю как выходы + PullAp. PORTD |= 1<<PD0|1<<PD1;
//************************************************* //А это сама функция старт i2c соединения //************************************************* static unsigned char i2c_start(void) { TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN); //Устанавливается состояние START while (!(TWCR & (1<<TWINT))); //Задержка до установки флага TWINT. Он означает что //состояние START было передано if ((TWSR & 0xF8) == START) //Проверяем значение в TWI Status Register {WriteDisplay(0x30); return(0);} else {WriteDisplay(0x31); WriteIndLed(TWSR); return(1);} } Почему то после прогона МК этой функции светодиоды зажигаются так, что это соответствует коду (0xEC). Значение "0" на дисплее не видел ни разу хоть умри. Кстати для чистоты эксперимента выпаял с шины все девайсы кроме DS1307Z - часы.
Сообщение отредактировал IgorKossak - Jul 12 2011, 07:29
Причина редактирования: Оформление кода
|
|
|
|
Сообщений в этой теме
MaksimYrievich DS1307Z +AtMega128 Jul 11 2011, 20:44 alexeyv 1. Инициализировать регистры надо полностью, избав... Jul 12 2011, 04:59 MaksimYrievich Нет осциллографа. Сейчас попробую переписать код и... Jul 12 2011, 08:12 alexeyv погоняй в цикле старт-condition и стоп-condition с... Jul 12 2011, 08:17 ILYAUL Не знаю , конечно , но вот эти строчки мне абсолют... Jul 12 2011, 10:44 MaksimYrievich Цитата(ILYAUL @ Jul 12 2011, 14:44) Не зн... Jul 12 2011, 21:30  ILYAUL Цитата(MaksimYrievich @ Jul 13 2011, 01:3... Jul 13 2011, 06:06   MaksimYrievich Цитата(ILYAUL @ Jul 13 2011, 10:06) Шина ... Jul 13 2011, 09:27 ILYAUL Вы прескалер убрали? Jul 13 2011, 09:45 MaksimYrievich Цитата(ILYAUL @ Jul 13 2011, 13:45) Вы пр... Jul 13 2011, 09:48  ILYAUL Цитата(MaksimYrievich @ Jul 13 2011, 13:4... Jul 13 2011, 10:28   MaksimYrievich Цитата(ILYAUL @ Jul 13 2011, 14:28) Вы , ... Jul 13 2011, 10:38    ILYAUL Цитата(MaksimYrievich @ Jul 13 2011, 14:3... Jul 13 2011, 10:44     MaksimYrievich Цитата(ILYAUL @ Jul 13 2011, 14:44) SCL S... Jul 13 2011, 10:46      ILYAUL Цитата(MaksimYrievich @ Jul 13 2011, 14:4... Jul 13 2011, 11:04       MaksimYrievich Цитата(ILYAUL @ Jul 13 2011, 15:04) 1. Да... Jul 15 2011, 19:54 ILYAUL http://depositfiles.com/ru/files/i9jk81xui
1. Скач... Jul 15 2011, 22:38 MaksimYrievich Цитата(ILYAUL @ Jul 16 2011, 02:38) http:... Jul 15 2011, 22:56 alexeyv Попытайтесь зациклить функцию старта и функцию сто... Jul 18 2011, 03:53 MaksimYrievich Сегодня ещё раз поменял микроконтроллер. Всё остал... Jul 18 2011, 17:01 ILYAUL Цитата(MaksimYrievich @ Jul 18 2011, 21:0... Jul 18 2011, 17:21  MaksimYrievich Цитата(ILYAUL @ Jul 18 2011, 21:21) У Вас... Jul 18 2011, 17:36   ILYAUL Цитата(MaksimYrievich @ Jul 18 2011, 21:3... Jul 18 2011, 18:59 MaksimYrievich Не знаю. Что за такие проблемы. Я в отчаянии. Вооб... Jul 27 2011, 19:50 ILYAUL Если Вы смотрите в симмуляторе , то коды и флаги... Jul 27 2011, 20:47 MaksimYrievich Цитата(ILYAUL @ Jul 28 2011, 00:47) И кст... Jul 27 2011, 21:16  ILYAUL Цитата(MaksimYrievich @ Jul 28 2011, 01:1... Jul 27 2011, 21:23   MaksimYrievich Цитата(ILYAUL @ Jul 28 2011, 01:23) Интер... Jul 27 2011, 21:32 ILYAUL 1. Запаять микросхему DS1307!!!!... Jul 28 2011, 08:15 MaksimYrievich Цитата(ILYAUL @ Jul 28 2011, 12:15) какой... Jul 28 2011, 09:24  ILYAUL Цитата(MaksimYrievich @ Jul 28 2011, 13:2... Jul 28 2011, 09:47 MaksimYrievich Попробовал ваш код, ILYAUL. То же самое высвечивае... Jul 28 2011, 11:20 ILYAUL Цитата(MaksimYrievich @ Jul 28 2011, 15:2... Jul 28 2011, 13:09  MaksimYrievich Цитата(ILYAUL @ Jul 28 2011, 17:09) Я так... Jul 28 2011, 13:48   ILYAUL Цитата(MaksimYrievich @ Jul 28 2011, 17:4... Jul 28 2011, 13:54    MaksimYrievich Цитата(ILYAUL @ Jul 28 2011, 17:54) А сэт... Jul 28 2011, 17:51 ILYAUL Цитата(MaksimYrievich @ Jul 28 2011, 15:2... Jul 28 2011, 19:01  MaksimYrievich Цитата(ILYAUL @ Jul 28 2011, 23:01) C отл... Jul 28 2011, 19:44   ILYAUL Цитата(MaksimYrievich @ Jul 28 2011, 23:4... Jul 28 2011, 19:47    MaksimYrievich Цитата(ILYAUL @ Jul 28 2011, 23:47) А про... Jul 28 2011, 19:53     ILYAUL Цитата(MaksimYrievich @ Jul 28 2011, 23:5... Jul 28 2011, 19:59      MaksimYrievich Цитата(ILYAUL @ Jul 28 2011, 23:59) Прогр... Jul 28 2011, 20:06       ILYAUL Цитата(MaksimYrievich @ Jul 29 2011, 00:0... Jul 28 2011, 20:55        MaksimYrievich Цитата(ILYAUL @ Jul 29 2011, 00:55) Надо ... Jul 29 2011, 21:10         ILYAUL Цитата(MaksimYrievich @ Jul 30 2011, 01:1... Jul 29 2011, 22:12          MaksimYrievich Цитата(ILYAUL @ Jul 30 2011, 02:12) 1. Чт... Jul 30 2011, 05:36           ILYAUL Цитата(MaksimYrievich @ Jul 30 2011, 09:3... Jul 30 2011, 19:29            MaksimYrievich Цитата(ILYAUL @ Jul 30 2011, 23:29) Сообщ... Jul 31 2011, 09:13             ILYAUL Цитата(MaksimYrievich @ Jul 31 2011, 13:1... Jul 31 2011, 16:19              MaksimYrievich Цитата(ILYAUL @ Jul 31 2011, 20:19) Хрень... Jul 31 2011, 17:20               ILYAUL Цитата(MaksimYrievich @ Jul 31 2011, 21:2... Jul 31 2011, 18:26 MaksimYrievich Заменил ещё раз микросхему код стал равен $38... Jul 28 2011, 13:33 ILYAUL Цитата(MaksimYrievich @ Jul 28 2011, 17:3... Jul 28 2011, 13:45 MaksimYrievich Я даже просто включить автомат TWI не могу. В дата... Jul 31 2011, 18:54 ILYAUL Цитата(MaksimYrievich @ Jul 31 2011, 22:5... Jul 31 2011, 19:18 MaksimYrievich Да это здоровская штука. У меня такой нет. Пока н... Jul 31 2011, 19:28 ILYAUL В младшем byte Fuses давайте выставим в 4 и 5 бите... Jul 31 2011, 19:45 MaksimYrievich Цитата(ILYAUL @ Jul 31 2011, 23:45) Похож... Aug 1 2011, 17:36 MaksimYrievich Усовершенствовал программатор. Перепаял AtMega64 н... Aug 2 2011, 17:12 ILYAUL Я так понял , что наконец-то всё заработало. Тогда... Aug 2 2011, 17:36 MaksimYrievich Далее установил бит M103C как на рисунке, прошил и... Aug 2 2011, 17:42 ILYAUL Цитата(MaksimYrievich @ Aug 2 2011, 21:42... Aug 2 2011, 17:46
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|