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

 
 
> DS1307Z +AtMega128, Нет старта на TWI
MaksimYrievich
сообщение Jul 11 2011, 20:44
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 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 - часы. sad.gif

Сообщение отредактировал IgorKossak - Jul 12 2011, 07:29
Причина редактирования: Оформление кода
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MaksimYrievich
сообщение Jul 27 2011, 19:50
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 79
Регистрация: 10-08-09
Пользователь №: 51 828



Не знаю. Что за такие проблемы. Я в отчаянии. Вообще не могу даже вызвать прерывание от модуля TWI. Флаг TWINT не сбрасывается а если сбросился то не устанавливается вообще. Регистр TWCR ведёт себя как простой регистр общего назначения - после записи в него значение в нем не меняется вообще!!!! Могу в него записать что хочу могу стереть прочитать... Ни старта ни стопа ни флага TWINT. Ребята, а есть такие кто запускал вообще модуль TWI именно на AtMega64,128?
Что бы я ни записывал в TWCR ничего не происходит. Шина молчит, в регистре статуса TWSR код не меняется и постоянно равен 0x30. Может кто сталкивался с такой проблемой? Как его запустить? Как вызвать хотя бы прерывание? Перепробывал ВСЁ. Разные коды, заменил три микроконтроллера. Может быть надо где то что то прописать помимо TWI, может прерывания какие. Ведёт себя TWI просто как мёртвый. Думал старта нет - ВООБЩЕ глушняк!!! Даже прерывание по TWINT сформировать не могу!!! Что это значит wacko.gif help.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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
- - 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


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

 


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


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