Миландр

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

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




Начать новую тему  Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ 252 сообщения ]  На страницу « 112 13 14 15 16 17 »
Автор Сообщение
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2018-ноя-02 14:49 
Не в сети

Зарегистрирован: 2014-мар-06 06:52
Сообщения: 5
Откуда: Арзамас, ОАО АНПП "Темп-Авиа"
BSA писал(а):
Vasiliy писал(а):
Несколько раз проверил соединения.
JLINK-1986
TDI-TDI
TDO-TDO
TCK-TCK
TMS-TMS
nTRST-TRST
RESET-RESET
GND-GND
VTref-VCC
Пины Ucc и BUcc соединены вместе.
Похоже на то, что JLINK не видит МК.
nTRST-TRST опциональная вещь, работает и без него, RESET к питанию подтянут?


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

Зарегистрирован: 2015-сен-04 13:47
Сообщения: 39
Возникла проблема с прошивкой 1986ВЕ92У. Контроллер прошивается по JTAGA и JTAGB, но только один раз, после чего при попытке стереть/прошить возникает ошибка "Cannot inter Debug Mode". Стереть удаётся только в режиме MODE[2:0] = 010. После чего контроллер снова шьётся один раз. Пробовал сменить программу на тестовую, всё заработало как положено. Вывод - косяк в программе. В коде есть ошибка, которая приводит к блокировке JTAGA и JTAGB. Где искать ошибку? Пробовал закомментировать инициализацию портов - не помогло.


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

Зарегистрирован: 2017-апр-26 14:51
Сообщения: 474
Организация: Milandr
Откуда: ПКК "Миландр"
Вставьте в начало main() задержку на пару секунд, это позволит подключиться отладчиком до возникновения сбоя. После этого идите по шагам. На которой функции отладчик отвалится, в той и искать проблему.

https://startmilandr.ru/doku.php/prog:debug:reanimation


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

Зарегистрирован: 2010-авг-30 19:12
Сообщения: 546
Чаще всего отваливается при прямой записи данных в порт с JTAG (в том числе и через битовое обращение).
рекомендуется либо накладывать маску либо через библиотеку.


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

Зарегистрирован: 2015-сен-04 13:47
Сообщения: 39
Победил. Косяк в настройках тактирования.


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

Зарегистрирован: 2010-апр-18 12:59
Сообщения: 76
Организация: АО "МНИИ" АГАТ"
Добрый день.
Пробую запустить RTC с внешним кварцевый и не получается инициализировать запуск генератора от внешнего кварца. Таймер с внутренним LSI генератором работает, а при попытке включения LSE не запускается. Дефект странный: при первом старте после включения питания генератор LSE не включается (бит LSE_RDY всегда низкий), а если сделать программный или аппаратный сброс то генератор включается. Может кто сталкивался с такой проблемой?


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

Зарегистрирован: 2009-май-22 09:01
Сообщения: 1318
Откуда: АО "ПКК Миландр"
ElectroAlex писал(а):
Добрый день.
Пробую запустить RTC с внешним кварцевый и не получается инициализировать запуск генератора от внешнего кварца. Таймер с внутренним LSI генератором работает, а при попытке включения LSE не запускается. Дефект странный: при первом старте после включения питания генератор LSE не включается (бит LSE_RDY всегда низкий), а если сделать программный или аппаратный сброс то генератор включается. Может кто сталкивался с такой проблемой?
Емкости на кварце какие ?


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

Зарегистрирован: 2010-апр-18 12:59
Сообщения: 76
Организация: АО "МНИИ" АГАТ"
Сначала были по 10пФ. Потом заменил на 33пФ, а затем ещё в параллель добавил 43пФ. Ничего не меняется.


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

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


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

Зарегистрирован: 2017-апр-26 14:51
Сообщения: 474
Организация: Milandr
Откуда: ПКК "Миландр"
Правильно ли я понимаю, что запуск от LSE все-таки происходит. Т.е. не срабатывает после включения питания, но срабатывает от рестарта?

Если это так, то:
1 - вставьте задержку в начало main на пару секунд, на тот случай если питание не успело вырасти до рабочего уровня.
2 - Ожидайте выставления бита LSE_RDY секунд 5, чтобы убедиться что LSE совсем никак не раскачивается.

Если от времени зависимости нет, то вышлите на support@milandr.ru
- Минимальный проекта с кодом, при котором LSE_RDY не выставляется. Проверим на отладочной.
- Схему включения МК (предварительно убедитесь что BUcc подключен к питанию)

На отладочной плате после включения на HSI переходил на LSE без каких-либо проблем.
Теоретически разница может быть лишь в уровне питания и значении регистров BKP, которые сохраняют свои значения при ресете, но имеют значения по умолчанию при включении питания.


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

Зарегистрирован: 2010-апр-18 12:59
Сообщения: 76
Организация: АО "МНИИ" АГАТ"
После программного или аппаратного рестарта бит LSE_RDY срабатывает сразу. От задержки при включении ничего не изменяется.


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

Зарегистрирован: 2010-апр-18 12:59
Сообщения: 76
Организация: АО "МНИИ" АГАТ"
Вот мой код запуска:

MDR_RST_CLK->PER_CLOCK |= MDR_RST_CLK_PER_CLOCK_PORTE;
MDR_PORTE->ANALOG &= ~(1<<6);
MDR_PORTE->ANALOG &= ~(1<<7);
MDR_RST_CLK->PER_CLOCK |= MDR_RST_CLK_PER_CLOCK_BKP;
while( ( MDR_BKP->RTC_CS & BKP_RTC_CS_WEC ) != 0 );
MDR_BKP->REG_0F &= ~BKP_REG_0F_RTC_RESET;
while( ( MDR_BKP->RTC_CS & BKP_RTC_CS_WEC ) != 0 );
MDR_BKP->REG_0F &= ~( 3 << 2 );// 0-LSI 1-LSE 2-HSIRTC 3-HSERTC
while( ( MDR_BKP->RTC_CS & BKP_RTC_CS_WEC ) != 0 );
MDR_BKP->REG_0F &= ~BKP_REG_0F_CAL_Msk;
while( ( MDR_BKP->RTC_CS & BKP_RTC_CS_WEC ) != 0 );
MDR_BKP->REG_0F &= ~BKP_REG_0F_LSE_BYP;
while( ( MDR_BKP->RTC_CS & BKP_RTC_CS_WEC ) != 0 );
MDR_BKP->REG_0F |= BKP_REG_0F_LSE_ON;
while( ( MDR_BKP->RTC_CS & BKP_RTC_CS_WEC ) != 0 );
MDR_BKP->RTC_PRL = 32768;
while( ( MDR_BKP->RTC_CS & BKP_RTC_CS_WEC ) != 0 );
MDR_BKP->RTC_DIV = 0x00000001;
while( ( MDR_BKP->RTC_CS & BKP_RTC_CS_WEC ) != 0 );
MDR_BKP->REG_0F |= BKP_REG_0F_RTC_EN;
while( ( MDR_BKP->RTC_CS & BKP_RTC_CS_WEC ) != 0 );
MDR_BKP->RTC_CNT = 0x00000000;
while( ( MDR_BKP->RTC_CS & BKP_RTC_CS_WEC ) != 0 );
MDR_BKP->REG_0F &= ~BKP_REG_0F_RTC_RESET;
while( ( MDR_BKP->RTC_CS & BKP_RTC_CS_WEC ) != 0 );
while( ( MDR_BKP->REG_0F & BKP_REG_0F_LSE_RDY ) == 0 );
MDR_BKP->REG_0F |= ( 1 << 2 ); // 0-LSI 1-LSE 2-HSIRTC 3-HSERTC

Раньше работал только с LSI, с ним проблем не было. Сейчас нужно точно считать время для точных вычислений, т.к. на разных микроконтроллерах довольно сильно разняться частоты LSI-генераторов. Да еще на климате гуляют.


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

Зарегистрирован: 2014-июн-25 09:29
Сообщения: 148
Предложу кусочек рабочего кода для настройки RTC на внешнем кварце. Правда, он использует SPL.
// Предделитель частоты для RTC
// При внешнем кварце 32768Гц дискретность RTC - 1c. 
#define RTC_PRESCALER 32768 

// Константа корректировки скорости хода 0..255
// Задает, сколько тактов RTC будет замаскировано через каждые 2^20 тактов RTC (через каждые 12 суток)
#define RTC_CALIBRATION 0

// Начальные дата и время
#define RTC_INIT_TIMESTAMP 1325376000  // 01.01.2012 00:00:00

// Инициализация RTC
void U_RTC_Init(void)
{
  // Структура для инициализации портов
  PORT_InitTypeDef PortInitStructure;	
	
  // Разрешить тактирование батарейного домена и порта PORTE
  RST_CLK_PCLKcmd (RST_CLK_PCLK_BKP | RST_CLK_PCLK_PORTE, ENABLE);
	
  // Сделать аналоговым входом линии (PE6, PE7), к которым подключен часовой кварц
  PORT_StructInit (&PortInitStructure);	
  PortInitStructure.PORT_Pin   = PORT_Pin_6 | PORT_Pin_7;
  PortInitStructure.PORT_MODE =  PORT_MODE_ANALOG;
  PORT_Init (MDR_PORTE, &PortInitStructure);		
	
  // Включить часовой генератор на внешнем кварце
  RST_CLK_LSEconfig (RST_CLK_LSE_ON); 
  while (RST_CLK_LSEstatus() != SUCCESS);	// Дождаться включения генератора
	
	
  // Выбрать LSE в качестве источника тактирования RTC 
  BKP_RTC_WaitForUpdate ();          // Подождать, пока обновятся регистры RTC
  BKP_RTCclkSource (BKP_RTC_LSEclk);

  // Задать предделитель RTC
  BKP_RTC_WaitForUpdate ();          
  BKP_RTC_SetPrescaler (RTC_PRESCALER);

  // Корректировка скорости хода
  BKP_RTC_WaitForUpdate ();          
  BKP_RTC_Calibration (RTC_CALIBRATION);

  // Разрешить работу RTC
  BKP_RTC_WaitForUpdate ();          
  BKP_RTC_Enable (ENABLE);

  // Установить начальные дату и время
  BKP_RTC_WaitForUpdate ();          
  U_Alarm_Set_DateTime_Stamp (RTC_INIT_TIMESTAMP);
  BKP_RTC_WaitForUpdate ();          
	
}


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

Зарегистрирован: 2017-апр-26 14:51
Сообщения: 474
Организация: Milandr
Откуда: ПКК "Миландр"
Проверил на отладочной, старт на HSI, потом переход на LSE по кнопке. Проблемы не наблюдаю.


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

Зарегистрирован: 2018-дек-17 15:20
Сообщения: 172
Организация: частное лицо
А у вас установлена на плате батарейка, которая поддерживает питание BKP домена?


Вернуться к началу
 
Показать сообщения за:  Поле сортировки  
Начать новую тему  Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ 252 сообщения ]  На страницу « 112 13 14 15 16 17 »

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


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

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


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

Перейти: 

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