Миландр

Ключевым подразделением нашей компании
является Центр Проектирования интегральных микросхем
Текущее время: 2020-июл-09 11:28

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 221 сообщение ]  На страницу « 111 12 13 14 15
Автор Сообщение
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2019-окт-03 13:16 
Не в сети

Зарегистрирован: 2018-дек-17 15:20
Сообщения: 112
Организация: частное лицо
Я такой код использую для запуска RTC.
Выводы PE6, PE7 не инициализирую как аналоговые, поскольку после включения питания и так уже.
typedef volatile unsigned int 		__io_reg;

typedef struct {
	__io_reg CLOCK_STATUS;
	__io_reg PLL_CONTROL;
	__io_reg HS_CONTROL;
	__io_reg CPU_CLOCK;
	__io_reg USB_CLOCK;
	__io_reg ADC_MCO_CLOCK;
	__io_reg RTC_CLOCK;
	__io_reg PER_CLOCK;
	__io_reg CAN_CLOCK;
	__io_reg TIM_CLOCK;
	__io_reg UART_CLOCK;
	__io_reg SSP_CLOCK;
} _rst_clk;


typedef struct {
	__io_reg REG_00;
	__io_reg REG_01;
	__io_reg REG_02;
	__io_reg REG_03;
	__io_reg REG_04;
	__io_reg REG_05;
	__io_reg REG_06;
	__io_reg REG_07;
	__io_reg REG_08;
	__io_reg REG_09;
	__io_reg REG_0A;
	__io_reg REG_0B;
	__io_reg REG_0C;
	__io_reg REG_0D;
	__io_reg REG_0E;
	__io_reg REG_0F;
	__io_reg RTC_CNT;
	__io_reg RTC_DIV;
	__io_reg RTC_PRL;
	__io_reg RTC_ALRM;
	__io_reg RTC_CS;
} _bkp;

#define BASE_RST_CLK		  (0x40020000)
#define BASE_BKP			  (0x400D8000)

#define BKP 				  ((_bkp    *) BASE_BKP)
#define RST_CLK 			  ((_rst_clk*) BASE_RST_CLK)

#define RTC_PRL					32768 //Same as LSE frequency
#define RTC_CALIBRATING			0

#define CLK_BKP 				27

//Wait while WEC[6] = 1
#define WaitRTCRegReady()       while(BKP->RTC_CS & (1 << 6)) __NOP();


void InitializeRTC()
{
	//1. Enable BKP clock
	RST_CLK->PER_CLOCK |= (1 << (u32)(CLK_BKP & 0x1F));

	//2. Turn RTC OFF
	BKP->REG_0F &= ~(1 << 4);

	//3. Reset bits: RTC_SEL[3..2], HSE_RTC_EN[8], HSI_RTC_EN[9]
	BKP->REG_0F &= ~(0x03 << 2);
	RST_CLK->RTC_CLOCK &= ~(0x03 << 8);

	//4.Set LSE_ON[0] = 1, wait LSE_RDY[13] = 1
	BKP->REG_0F |= (1 << 0);             
	while (!(BKP->REG_0F & (1 << 13))) __NOP();  

	//5. RTC_SEL[3..2] = 1 - select LSE
	BKP->REG_0F |= (0x01 << 2);

	//6. Set CAL[12..5] - mask count of ticks from 2^20
	BKP->REG_0F &= ~(0xFF << 5);
	BKP->REG_0F |= ((u8)CALIBRATING) << 5;

	//7. Set RTC_PRL[19..0]: speed = LSE_SPEED / prl = 1Hz
	WaitRTCRegReady();
	BKP->RTC_PRL = RTC_PRL;

	//8. Set SECF[1] = 1
	WaitRTCRegReady();
	BKP->RTC_CS |= (1 << 1);
	WaitRTCRegReady();


	//9. Turn RTC ON
	BKP->REG_0F |= (1 << 4);
}


Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2019-окт-03 15:45 
Не в сети

Зарегистрирован: 2017-апр-26 14:51
Сообщения: 472
Организация: Milandr
Откуда: ПКК "Миландр"
Sergey3141592 писал(а):
А у вас установлена на плате батарейка, которая поддерживает питание BKP домена?
Нет, батарейками не пользуемся. Программатор тоже отключал, чтобы через него батарейный домен не запитывался.

Но я RTC не включал. На сколько я понял, проблема проявляется раньше - не раскачивается сам генератор LSE, не выставляется LSE_RDY бит. В своем проекте я включаю LSE и перевожу на него тактирование ядра.


Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2019-окт-03 16:06 
Не в сети

Зарегистрирован: 2018-дек-17 15:20
Сообщения: 112
Организация: частное лицо
ElectroAlex писал(а):
Добрый день.
Пробую запустить RTC с внешним кварцевый и не получается инициализировать запуск генератора от внешнего кварца. Таймер с внутренним LSI генератором работает, а при попытке включения LSE не запускается. Дефект странный: при первом старте после включения питания генератор LSE не включается (бит LSE_RDY всегда низкий), а если сделать программный или аппаратный сброс то генератор включается. Может кто сталкивался с такой проблемой?
Я полагал речь идет про запуск RTC с использованием LSE генератора, поэтому спросил про батарейку - может ли ее отсутствие влиять на значения, которые записываются в BKP регистры при старте контроллера.


Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2019-окт-09 13:35 
Не в сети

Зарегистрирован: 2010-апр-18 12:59
Сообщения: 67
Организация: АО "МНИИ" АГАТ"
Решил проблему радикальные способом, т.к. Данный экземпляр микроконтроллера не хотел запускать генератор никак. Заменил микросхему и с теме кодом генератор запустился сразу во всех условиях. Мистика прям таки...


Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2020-июн-05 12:19 
Не в сети

Зарегистрирован: 2020-июн-02 00:17
Сообщения: 3
Организация: Частное лицо
Здравствуйте!
UART у данного контроллера толерантен к 5В?


Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2020-июн-05 15:59 
Не в сети

Зарегистрирован: 2018-янв-05 23:41
Сообщения: 217
Организация: ФГУП "РФЯЦ-ВНИИЭФ"
Millyvolt писал(а): *
Здравствуйте!
UART у данного контроллера толерантен к 5В?
Вопрос задан некорректно. Толерантным или нет может быть вывод микросхемы, а не функциональный блок или периферийное устройство. Так что определитесь, какие выводы вы хотите использовать, а затем читайте раздел 34 спецификации. Ищите в таблице параметр "Входное напряжение высокого уровня" и смотрите, какое оно для нужных вам выводов. Если верхнее значение диапазона более 5 В (например, от 2,0 до 5,25 В) - значит эти выводы толерантны к 5 В.


Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2020-июн-08 17:48 
Не в сети

Зарегистрирован: 2020-июн-02 00:17
Сообщения: 3
Организация: Частное лицо
Professor Chaos писал(а): *
Вопрос задан некорректно. Толерантным или нет может быть вывод микросхемы, а не функциональный блок или периферийное устройство. Так что определитесь, какие выводы вы хотите использовать, а затем читайте раздел 34 спецификации. Ищите в таблице параметр "Входное напряжение высокого уровня" и смотрите, какое оно для нужных вам выводов. Если верхнее значение диапазона более 5 В (например, от 2,0 до 5,25 В) - значит эти выводы толерантны к 5 В.
ок, но меня то интересует именно работа UART'a, если выводы на которые можно вывести UART, извиняюсь за тавтологию, толерантны к 5В, это не гарантирует работу UART'a на данных выводах с уровнями 5В.


Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2020-июн-08 19:29 
Не в сети

Зарегистрирован: 2018-янв-05 23:41
Сообщения: 217
Организация: ФГУП "РФЯЦ-ВНИИЭФ"
Millyvolt писал(а): *
это не гарантирует работу UART'a на данных выводах с уровнями 5В.
Это гарантирует, что на ВХОД RX UART можно подавать напряжение до 5,25 В с выхода какой-то другой микросхемы в вашей схеме. При этом с микроконтроллером ничего не случится, он будет работать в штатном режиме. Все его блоки. И UART в том числе.
А ВЫХОД TX UART как выдавал, так и будет выдавать логическую 1 с уровнем текущего напряжения питания МК. Выше питания не прыгнешь.


Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2020-июн-09 08:58 
Не в сети

Зарегистрирован: 2010-авг-30 19:12
Сообщения: 494
Цитата:
ВЫХОД TX UART как выдавал, так и будет выдавать логическую 1 с уровнем текущего напряжения питания МК. Выше питания не прыгнешь.
Не обязательно с уровнем питания МК. Можно ведь открытый сток сделать и снаружи притянуть резистором к +5В.

_________________
О сколько нам открытий чудных
Готовит просвященья дух,
И опыт - сын ошибок трудных ... (Пушкин)

Пергаменты не утоляют жажду ("Фауст",Гете)


Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2020-июн-09 11:24 
Не в сети

Зарегистрирован: 2020-июн-02 00:17
Сообщения: 3
Организация: Частное лицо
понятно, спасибо.


Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2020-июн-09 18:21 
Не в сети

Зарегистрирован: 2018-янв-05 23:41
Сообщения: 217
Организация: ФГУП "РФЯЦ-ВНИИЭФ"
редактор писал(а): *
Можно ведь открытый сток сделать и снаружи притянуть резистором к +5В.
Да, действительно, так можно. Забыл про режим работы выходного драйвера с открытым стоком.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 221 сообщение ]  На страницу « 111 12 13 14 15

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти: 

Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB