Часто задаваемые вопросы

По рекомендации "Миландра" программирование и верификация OTP должны проводиться на частоте ядра 20-22 Мгц.
Для работы с микроконтроллером (загрузка ПО и отладка) рекомендуется использовать отладчики ULINK2 и JLINK, и соответствующее фирменное ПО к ним.
В 1986ВЕ8Т одно ядро и одна память OTP. Контроллера OTP два и они работают в режиме LockStep, что позволяет выявлять ошибки при работе самого контроллера. Оба контроллера видны для пользователя как один. Все что в спецификации упоминается с CPU1 должно читаться как Resеrved.

Имеет ли данный микроконтроллер встроенную память программ типа FLASH?

Ответ: Flash-памяти в 1986ВЕ8Т нет, есть только встроенная однократно программируемая память OTP объёмом 128 КБ


Как отлаживать код превышающий 32 кбайт, помещающиеся в ОЗУ? Нужно обязательно загружать процессор из внешней памяти или можно просто перепрыгнуть во внешнюю память, но будет ли отладчик (Keil) показывать значение указанных переменных, позволять останов и так далее?

Ответ: Можно просто перепрыгнуть во внешнюю память. То есть часть программы размещаете во внешней памяти, и если у вас указаны два FLM для ОЗУ и внешней ОЗУ, то Кейл при загрузке загрузит весь код. Часть в ОЗУ часть во внешнюю ОЗУ. Отладка, просмотр и т.п. работать будут так же и из внешней ОЗУ, как и из внутренней.


На отладочной плате выходы встроенных LDO-регуляторов DUCC0,1,2 объединены, а выходы DUCC_PLL, и DUCC_B посажены через конденсаторы на землю раздельно. Будет ли ошибкой объединить все выходы встроенных LDO-регуляторов (DUCC0,1,2, DUCC_PLL и DUCC_B)?

(Пояснение: - планируется отключить встроенные LDO-регуляторы и подавать 1.8В напрямую от внешнего источника напряжения, но также сохранить совместимость платы с той ревизией процессора, на которой такой "финт" не проходит).

Необходимо и важно сделать следующим образом:

Также нужно устанавливать фильтрующие конденсаторы максимально близко к выводам микроконтроллера.


Возможно ли программировать OTP память программ с помощью USB JTAG адаптеров?

Ответ: Да, возможно, но при этом нужно обеспечить необходимое напряжение на выводах HV.


Есть ли способы увеличить максимальную частоту?

Ответ: Для увеличения DUcc нужно выключить LDO - SHDN = 1 и подать на DUcc питание с внешнего источника напряжения.


При отладке проекта в Keil5 через адаптер J-Link в System Viewer'е регистры периферийных блоков не обновляются.

Ответ: Функция System Viewer для 1986ВЕ8Т на данный момент не реализована.


Есть ли данные по температурному сопротивлению для корпуса 1986ВЕ8Т?

Внутреннее тепловое сопротивление корпуса для максимального размера источника тепла в нормальных условиях должно быть не более 5 °C/Вт .» надо полагать не имеет отношения к Rt(корпус-окр.среда) и оно учтено уже в измеренном «Тепловое сопротивление кристалл-корпус 2,8 C/Вт.


Герметична ли область под верхней частью корпуса ("крышки" над кристаллом), есть ли газ?

Между крышкой и кристаллом - газ Азот. Давление газа 1.1 атм.


Возможно ли установка на данный микроконтроллер операционной системы FreeRTOS? Если да, то какие минимальные параметры (ОЗУ, ПЗУ и т.д.) необходимо обеспечить для успешного функционирования данной ОС?

На микроконтроллер 1986ВЕ8Т можно установить FreeRTOS, так как 1986ВЕ8Т основан на ядре Cortex-M4F и под него предусмотрен порт.Параметры системы для работы с FreeRTOS следующие: ПЗУ - от 5 до 10 КБайт, ОЗУ - начальная: 236 байт,и далее, в зависимости от задачи добавляются еще требования по объему. Более подробно можно ознакомиться здесь.


На какие выводы микроконтроллера подача питания является обязательной? Если интерфейс Spacewire и Ethernet не используются, необходимо ли подавать на них питание?

Питание должно подаваться на все выводы питания Ucc. Если блок не используется, допускается подать на него общее питание.


На какой частоте преобразования может работать встроенный АЦП?

В поставляемых на данный момент микросхемах можете рассчитывать на частоту преобразования не более 100 квыб/сек.


Есть ли возможность использовать 1986ВЕТ8Т вместе с микросхемами 1645РТ3У/1636РР2У?

Внутренняя память 1986ВЕ8 может загружаться из микросхем 1636РР3 и РР4, 1636РР2 использоваться не может, т.к. загрузка происходит посредством интерфейса SPI. Так реализовано в нашей демонстрационной плате. Также можно запустить программу из внешней памяти с параллельным интерфейсом (типа 1636РР2 или 1645РТ3), для этого нужно указать соответствующий режим работы микроконтроллера. Так подключена на демонстрационной плате микросхема ОЗУ.


Почему для микросхемы 1986ВЕ8Т допускается не проводить ЭТТ?

В ТУ на 1986ВЕ8Т будет включена информация о отсутствии требования об обязательном проведении ЭТТ микросхем после программирования однократно программируемой памяти программ (ОППЗУ).

Вопрос:В ходе производства микросхем 1986ВЕ8Т для каждой партии пластин делается выборка для подтверждения коэффициента программируемости ОППЗУ без проведения последующей ЭТТ. После проведения программирования для данной выборки проводится полный цикл ПСИ. Кроме того в соответствии с графиком проведения периодических испытаний (в настоящее время 2 раза в год) данная выборка ставится на длительные испытания на надежность (1000 часов в предельно допустимых режимах при 125С). На настоящее время случаев отказа микросхем в ходе проведения периодических испытаний не зафиксировано. Таким образом, считаем что проведения ЭТТ после программирования ОППЗУ не обязательно, и решение о целесообразности его проведения могут принимать разработчики аппаратуры самостоятельно.


Обнаружил, что независимо от региона (ОТР или SRAM) выполнения кода записи в OTP→CNTR необходимо после команды записи (STR) перед BX LR выполнить либо Nop, либо DSB, либо какой-то линейный код. Иначе HARDFAULT. ЭТО действительно так?

 
 void Write_Otp_Cntr()
 {
 OTPControl* otp = OTP_CNTR;\\
 		otp->KEY = _KEY_;\\
 		otp->CNTR = (2<<0)|(31<<9);\\
 		__DSB(); \\
 	        __asm{nop}\\

__DSB() гарантирует, что операция записи в регистр будет совершена до выхода из процедуры. NOP может привести к таким-же результатам, но не гарантировано. Будет не лишним и ISB добавить т.к у CortexM4 есть префетч.


Ошибка 0065 в errata на микроконтроллеры 1986ВЕ8Т и 1986ВЕ81Т: Переключение источника синхросигнала может привести к сбоям если частота на которую происходит переключение больше исходной в 4-ре раза

Рассчитать для конкретного экземпляра можно следующим образом:
Для этого надо знать (измерить) период начальной частоты и уложить на этот период >2 периодов частоты, на которую осуществляется переключение. Минимальная ширина 0 пульса для клока для текущей ревизии (4 ревизия) 342ps. Для вышедших ревизий можно это тоже установить. Если при наложении периодов двух частот получается глитч меньшей длительности - то проблемы возможны, если ширина импульса больше, то проблем не будет при любом соотношении частот.


1986ВЕ8 vs 1986ВЕ1

1986ВЕ8:
1. записать можно только 1 раз 2. писать можно бесконечное число раз, но при выкл. питания все пропадает. 3. 10 КОм

ВЕ1 может работать на более высоких частотах (144 против 64 МГц) и при частых обращениях к озу данных (в т.ч. вход - выход в/из прерываний) ВЕ1 на одной частоте с ВЕ8 существенно быстрее(память данных ВЕ1 быстрее в 2 раза). ВЕ1 потребляет в 1,5 -2 раза меньше.

Все перечисленные недостатки ВЕ8 вызваны повышенной стойкостью к спецфакторам (за все надо платить).


Если не подключать резонатор LSE, то выводы OSC_IN32 и OSC_OUT32 нужно оставлять неподключенными или есть какие-то рекомендации на этот случай?

По словам разработчиков блока, если генератор LSE не используется, то выводы OSC_IN32 и OSC_OUT32 можно никуда не подключать (в программе LSE не должен включаться).


Какие блоки в микроконтроллерах 1986ВЕ8(81)Т тактируются всегда (по умолчанию), а какие необходимо включать с помощью регистров PER0_CLK или PER1_CLK.

Регистры PER0_CLK, PER1_CLK отвечают за тактирование блоков, расположенных в пространстве периферии, находящейся за AHB-APB мостом (0x4008_0000 -0x400F_FFFF, см. таблицу "Распределение адресного пространства периферии" в разделе "Распределение областей памяти для регистров периферии"). Остальные блоки (EBC, OTP, RAM, …) тактируются всегда.


Как получить максимальную заявленную частоту (MAX_CLK = 100 MHz, CPU_CLK = 64MHz) если еррата 0051 запрещает формирование частот с помощью PLL более 40МГц.

Действительно PLL имеет большой джиттер и отклонение частоты может превысить максимальную рабочую частоту, что приведет к сбою. Поэтому PLL следует использовать для получения частот в 40МГц. Для получения большей частоты необходимо использовать внешний генератор (100МГц), который подается на вход HSE и в режиме ByPass пропускается сквозь генератор на MAX_CLK.


Какие есть варианты загрузки внутренней памяти микроконтроллера 1986ВЕ8Т?

Внутренняя память 1986ВЕ8Т может загружаться из микросхем 1636РР3 и 1636РР4. Так как на демоплате реализована загрузка по SPI, то 1636РР2 использоваться не может.

Также можно загрузить программу из внешней памяти с параллельным интерфейсом (типа 1636РР2 или 1645РТ3), для этого нужно указать соответствующий режим работы микроконтроллера (на демоплате подключена микросхема ОЗУ).


Из Диаграммы чтения на внешней шине не понятно, в какой момент процессор "защелкивает" данные - по переднему, заднему фронту nOE или в какой-то другой момент?

При выполнении операции чтения по внешней шине фиксация данных в микроконтроллере 1986ВЕ8Т происходит в конце активной фазы по фронту сигнала nOE.


Где прерывание по одиночной ошибке ECC на внешней шине? В регистрах EVENTs есть только флаг от двойной ошибки.

Двойная ошибка вызывает прерывание FT_IF1_IRQn, флаг события выставляется в регистре EVENT2 флаг ECC_EXTBUS_DE[2]. Чтобы выйти из этого прерывания необходимо этот флаг стереть записью "1".

Одиночная ошибка вызывает прерывание того окна памяти в котором она фиксируется. Т.е. если "общение" по внешней шине идет через REGION[0], то обе ошибки ЕСС вызовут прерывание EXT_INTERROR0_IRQn.