Перейти к содержанию
    

Помогите разобраться. При замене на плате процессора LPC2368 на pin-to-pin LPC1768 не удается запустить RTC.

Проявляется следующий эффект:

При выключенном питании часы идут (во время начаньной инициализации считываются показания и они увеличиваются на время отключения питания)

Далее показания часов не изменяется до выключения питания.

В PCONP питание RTC включено.

Инициализация часов эффекта не производит.

На команду LPC_RTC -> CCR |= 0x1; не реагирует

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще-то регистры RTC немного изменились. Библиотеку надо корректировать относительно 2368.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема в том, что нет никакого эффекта в инициализации.

Просто при включении питания часы стоят!

 

NVIC_DisableIRQ(RTC_IRQn);

LPC_RTC -> CCR = 0x0; //Clear the clock control register

LPC_RTC -> CIIR = 0x00000001;

LPC_RTC -> ALSEC = 0x00000005;

LPC_RTC -> AMR = 0x000000FE;

LPC_RTC -> CCR |= 0x1; //Start the RTC

NVIC_SetPriority(RTC_IRQn,15);

NVIC_EnableIRQ(RTC_IRQn);

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дело может быть в регистре CALIBRATION.

Когда LPC_RTC -> CCR равен 0x01, то включена коррекция. Возможно CALIBRATION равен 0.

Нужно в конце инициализации присваивать LPC_RTC -> CCR = 0x11;

 

Ещё дело может быть в некорректных значениях некоторых регистров. Их нужно проверять и исправлять во время инициализации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почитайте Errata на данный кристалл.

RTC в LPC17xx по сути не работает! Исправить обещают в середине этого года!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

LPC_RTC -> CCR = 0x11; не помогло

в регистре LPC_RTC -> RTC_AUX бит RTC_OSCF установлен в 1

При записи в этот бит 1, он кратковременно сбрасывается, затем устанавливается повторно.

Возможно дело в кварце... Как можно это проверить? На LPC2368 все работало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Работает на LPC1769 и LPC2387:

void rtc_init( void )

{

/// Enable power for RTC

PCONP_bit.PCRTC = 1;

// CTC reset and select RTC clock from 32 Khz.oscillator

#if __CORE__ < 7

if(LPC_RTC->CCR != 0x11)

LPC_RTC->CCR = 0x12;

 

#else

// If RTC is stopped, clear STOP bit.

if ( LPC_RTC->RTC_AUX & (0x1<<4) )

{

LPC_RTC->RTC_AUX |= (0x1<<4);

LPC_RTC->CCR = 0x12;

}

#endif

// Clear RTC interrupt register

LPC_RTC->ILR = 0xFF;

// Dasable all the alrams.

LPC_RTC->AMR = 0xFF;

// Enable only second count interrupt.

LPC_RTC->CIIR = 0x01;

// Disable all subsecond interrupts.

#if __CORE__ < 7

// Enable RTC

LPC_RTC->CCR = 0x11;

#else

LPC_RTC->CALIBRATION = 0;

LPC_RTC->CCR = 0x11;

#endif

rtc_read(0);

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дело было в кварце!

Заменили на другой и все заработало.

Только что устранил проблему с RTC на LPC1765 аналогичным образом. Заменил кварц на другой такой же. Кварц KX-327NHT фирмы Geyer. Причем на выходе генератора что-то похожее на генерацию было, но модуль RTC не работал - часы не шли. Замена на LPC1768 ничего не дала, только замена кварца решила проблему. На второй плате RTC с точно таким же кварцем (из одной упаковки) заработал сразу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Граждане! Аккуратно прочитайте Errata!

Дело в том, что в кристалле есть ошибка! Сейчас при текущем кварце и в текущих условиях часы будут работать, но НЕТ никакой гарантии, что при другой температуре или с другим кварцем это все "заведется".

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Граждане! Аккуратно прочитайте Errata!

Дело в том, что в кристалле есть ошибка! Сейчас при текущем кварце и в текущих условиях часы будут работать, но НЕТ никакой гарантии, что при другой температуре или с другим кварцем это все "заведется".

Класс!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Класс!

 

NXP из-за этого "класса" задерживают старшие версии этой серии. Но к июлю обещают все залатать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

NXP из-за этого "класса" задерживают старшие версии этой серии. Но к июлю обещают все залатать...

а LPC1768 тоже обещали починить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Граждане! Аккуратно прочитайте Errata!

Дело в том, что в кристалле есть ошибка! Сейчас при текущем кварце и в текущих условиях часы будут работать, но НЕТ никакой гарантии, что при другой температуре или с другим кварцем это все "заведется".

В Errata написано что не работает в температурном диапазоне -40..+85. И все. А домыслить уже можно по-разному, мне деваться было некуда - поэтому домыслил в таком ключе что в коммерческом диапазоне оно таки работает :).

Дело в том, что в 17xxx очень экономичный и "низкоамплитудный" генератор. Конденсаторы на "часовой кварц" надо ставить обязательно. Емкость желательно побольше - от 33пФ, тогда (по моему опыту) генератор запускается достаточно стабильно даже на кварцах с высоким последовательным сопротивлением.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конденсаторы на "часовой кварц" надо ставить обязательно. Емкость желательно побольше - от 33пФ, тогда (по моему опыту) генератор запускается достаточно стабильно даже на кварцах с высоким последовательным сопротивлением.
А какая при этом получается погрешность частоты? Конденсаторы ведь не "от балды" ставятся, они выбираются в дополнение к емкостям выводов, монтажа, кварцедержателя так, чтобы суммарная емкость соответствовала нагрузочной емкости кварца (CL). Типовые значения CL для большинства часовых кварцев 12,5пФ и 6пФ. Я ставил 24пФ, но долговременной проверки точности хода RTC в LPC1768 и LPC1765 пока не проводил. У вас есть какой-то результат при использовании емкостей 33пФ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...