Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
08.02.2008, 14:31
|
|
Прохожий
Регистрация: 29.06.2006
Сообщений: 2
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Проблема с часами РB(RTC) - DS1338
Добрый день! Подскажите пожалуйста в чем может быть проблема когда не запускаются часы реального времени.
Я могу записывать и считывать с них, но содержимое регистров 0x00h - 0x07h не меняется
Стартовый бит CH инициализирую:
// write control registers --› disable SWQ output
sendbuf[0]=0x07;
sendbuf[1]=0x00;
I2C_transmit_block(result, (char*)&sendbuf, 2);
// enable oscillator
sendbuf[0]=0x07;
sendbuf[1]=0x00;
I2C_transmit_block(result, (char*)&sendbuf, 2;
Кварц вроде тоже живой, схема подключения типовая.
В общем "уперся в стену". Подскажите пожалуйста у кого какие соображения.
Может надо какие-нить контрольные сигналы осциллографировать?
|
|
|
|
17.04.2008, 22:35
|
|
Временная регистрация
Регистрация: 28.05.2007
Адрес: Москва
Сообщений: 66
Сказал спасибо: 23
Сказали Спасибо 54 раз(а) в 12 сообщении(ях)
|
Данные пишутся нормально? Может, с записью проблемы - тогда бит CH может не сбрасываться. А еще там есть флаг OSF (0х07, бит 5), который встает каждый раз, если был останов генератора по какой-либо причине, даже по внутренней. Стоит попробовать сбросить его и проверить снова.
P.S. прошу прощения за предыдущий пост - я невнимательно прочитал вопрос...
P.P.S. сам пишу в асме, в Сях ничерта не понимаю...
|
|
|
|
18.04.2008, 00:55
|
|
Прописка
Регистрация: 27.04.2005
Сообщений: 125
Сказал спасибо: 10
Сказали Спасибо 26 раз(а) в 17 сообщении(ях)
|
Я использую вот такую процедуру:
void init(void)
{ unsigned char clock_data[8];
unsigned char code init_clock_data[8]={0x00, 0x00, 0x00, 0x04, 0x17, 0x02, 0x05, 0x10};
unsigned char i, L=1;
if((clock_data[0]&0x80) || (clock_data[7]!=0x10)) // Нужна начальная инициализация ?
{ Write_clock_data(& init_clock_data, 0, ;
for(i=8; i!=0; i--)
clock_data[i]=init_clock_data[i];
}
}
удачи !
p.s. на месте мордочки цифра 8.
|
|
|
|
18.04.2008, 08:26
|
|
Временная регистрация
Регистрация: 28.05.2007
Адрес: Москва
Сообщений: 66
Сказал спасибо: 23
Сказали Спасибо 54 раз(а) в 12 сообщении(ях)
|
Можно попробовать тег Code
Код:
|
{ Write_clock_data(& init_clock_data, 0, 8);
for(i=8; i!=0; i--)
clock_data[i]=init_clock_data[i];
} |
что бы мордочки не вылазили
Админам: почему нет кнопки "Предварительный просмотр"? Юзеры сломали?
|
|
|
|
18.04.2008, 08:43
|
|
Прописка
Регистрация: 11.07.2006
Адрес: Ru, Nsk
Сообщений: 249
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
если читается и пишется...может с батарейкой что, или кварцем? Я вообще никак не инициализирую регистры...на новой плате пишу в них текущее время-и все, они начинают тикать...
Код:
|
void puttime(void){
GIE=0;
i2c_WriteTo2(208);
i2c_PutByte2(0);
//упаковка BCD
i2c_PutByte2(0); //sec
convertBCD(time.minute);
convertBCD(time.hour);
i2c_PutByte2(1); //dm
convertBCD(time.day);
convertBCD(time.month);
convertBCD(time.year);
i2c_PutByte2(0); //control
i2c_SendAcknowledge2(0);
i2c_Stop2();
GIE=1;
} |
|
|
|
|
18.04.2008, 09:45
|
|
Прописка
Регистрация: 27.04.2005
Сообщений: 125
Сказал спасибо: 10
Сказали Спасибо 26 раз(а) в 17 сообщении(ях)
|
Если читается и пишется то несомненно дело в кварце, можно попробовать выдернуть из какой нибудь старой компьютерной мышки, там он тоже 32768хз. А без батарейки микросхема работает, только время не запоминает...
|
|
|
|
18.04.2008, 09:46
|
|
Прописка
Регистрация: 09.06.2007
Сообщений: 96
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
|
Чтобы понять в чём проблема, напиши тестовую программу, которая при старте будет читать содержимое регистров и выводить полученные данные на дисплей или через компорт. Если получишьвсе единицы или все нули, то проблема скорее всего "железная".
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:55.
|
|