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

 
 
 
Reply to this topicStart new topic
> Часы реального времени в MSP430FR57хх, инициализация аппаратного RTC
Med-IK
сообщение Oct 16 2013, 08:37
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 16-10-13
Пользователь №: 78 757



Добрый день. Изучаю отдалочную плату MSP-EXP430FR5739 с одноименным контроллером на борту. В этой серии в отличие от 1хх и 2хх имеется аппаратный RTC, коим и хотелось воспользоваться. Но беда, никакой поддержки по этой теме ни в TI ни в других источниках не нашел. Предлагают только программные часы на таймерах. Сам по даташит не разберусь, уже запутался в настройках и регистрах. Поделитесь кто что знает по этому поводу. Не хочется вводить лишнюю DS1307 в устройство.

Сообщение отредактировал Med-IK - Oct 16 2013, 08:38
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 16 2013, 09:49
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Med-IK @ Oct 16 2013, 13:37) *
Сам по даташит не разберусь, уже запутался в настройках и регистрах.

Читать описание работы модуля RTC_B нужно не в datasheet, а в User's Manual.
Цитата(Med-IK @ Oct 16 2013, 13:37) *
Поделитесь кто что знает по этому поводу.

Задавайте более конкретные вопросы. Не устраивать же тут вольный пересказ 13-й главы руководства пользователя biggrin.gif
Go to the top of the page
 
+Quote Post
Med-IK
сообщение Oct 16 2013, 10:05
Сообщение #3





Группа: Новичок
Сообщений: 4
Регистрация: 16-10-13
Пользователь №: 78 757



Цитата(rezident @ Oct 16 2013, 13:49) *
Задавайте более конкретные вопросы. Не устраивать же тут вольный пересказ 13-й главы руководства пользователя biggrin.gif

Хочу понять как синициализировать его, чтобы он тикал независимо от ядра и из каких регистров показания считывать. Все. Нужен минимальный функционал, без прерываний, без изощренных настроек. Дальше сам разберусь.
Go to the top of the page
 
+Quote Post
controller_m30
сообщение Oct 16 2013, 11:10
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309



Цитата(Med-IK @ Oct 16 2013, 13:05) *
Хочу понять как синициализировать его, чтобы он тикал независимо от ядра и из каких регистров показания считывать. Все. Нужен минимальный функционал, без прерываний, без изощренных настроек. Дальше сам разберусь.
Очень просто.
1. Инициализировать ножки GPIO подключенные к кварцу 32768 Гц как альтернативные - в регистрах PxSEL0,1 установить соответствующие биты в 1. Если кварца на плате нет - припаять. Точнее вот такие настройки GPIO.

2. Включить генератор XT1 - в регистре CSCTL4: бит XT1OFF=0; XTS=0; XT1BYPASS=0.
3. В регистр RTCCTL1 (тот что по смещению 01 от базы), записать значение 0x80 для счёта в BCD-формате, и 0х00 для счёта в бинарном формате. В общем надо сбросить бит RTCHOLD, и счёт начнётся.
4. Данные считывать из соответствующих регистров: секунды (смещ.0х10), минуты (смещ.0х11), часы (смещ.0х12) и т.д.

Сообщение отредактировал controller_m30 - Oct 16 2013, 11:28
Go to the top of the page
 
+Quote Post
Med-IK
сообщение Oct 16 2013, 11:52
Сообщение #5





Группа: Новичок
Сообщений: 4
Регистрация: 16-10-13
Пользователь №: 78 757



Цитата(controller_m30 @ Oct 16 2013, 15:10) *
Очень просто.
1. Инициализировать ножки GPIO подключенные к кварцу 32768 Гц как альтернативные - в регистрах PxSEL0,1 установить соответствующие биты в 1. Если кварца на плате нет - припаять. Точнее вот такие настройки GPIO.
2. Включить генератор XT1 - в регистре CSCTL4: бит XT1OFF=0; XTS=0; XT1BYPASS=0.
3. В регистр RTCCTL1 (тот что по смещению 01 от базы), записать значение 0x80 для счёта в BCD-формате, и 0х00 для счёта в бинарном формате. В общем надо сбросить бит RTCHOLD, и счёт начнётся.
4. Данные считывать из соответствующих регистров: секунды (смещ.0х10), минуты (смещ.0х11), часы (смещ.0х12) и т.д.

Ура, заработало! Спасибо большое! Ты это сам из мануала нарыл или примеры есть где-то?

Сообщение отредактировал Med-IK - Oct 16 2013, 11:54
Go to the top of the page
 
+Quote Post
controller_m30
сообщение Oct 16 2013, 12:37
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309



Med-IK, это из мануала. Модуль RTC_B совпадает с таким же модулем в MSP430F5xxx/6xxx, поэтому можно искать по нему данные в документах и к другим семействам MSP430 (я правда не искал, т.к. сам разобрался).
Go to the top of the page
 
+Quote Post
Med-IK
сообщение Oct 16 2013, 13:23
Сообщение #7





Группа: Новичок
Сообщений: 4
Регистрация: 16-10-13
Пользователь №: 78 757



Цитата(controller_m30 @ Oct 16 2013, 16:37) *
Med-IK, это из мануала. Модуль RTC_B совпадает с таким же модулем в MSP430F5xxx/6xxx, поэтому можно искать по нему данные в документах и к другим семействам MSP430 (я правда не искал, т.к. сам разобрался).

OK. Тогда для будущих поколений размещаю минимальный код инициализации RTC, после которого можно читать данные о текущем времени из регистров RTCSEC,RTCMIN и т.п.

#include "msp430fr5739.h"

void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT


CSCTL0_H = 0xA5;


PJSEL0 |= BIT4 + BIT5;
CSCTL4 &= ~(XT1OFF+XTS+XT1BYPASS);
RTCCTL1=0;

}
Go to the top of the page
 
+Quote Post

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

 


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


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