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

Микроконтроллеры Миландр К1986ВЕ92

К1986ВЕ92 — серия 32-разрядных микроконтроллеров АО «ПКК Миландр» на ядре ARM Cortex-M3. Производитель называет её ближайшим аналогом STM32F103x, но совместимости нет ни по выводам, ни по регистрам: это самостоятельная микросхема со своей периферией, загрузчиком и списком ошибок.

Обновлено Редакция GAW

К1986ВЕ92 — серия микроконтроллеров Миландра на ядре ARM Cortex-M3 ревизии 2.0 с частотой до 80 МГц, флеш-памятью 128 КБ и ОЗУ 32 КБ. В серии три 64-выводных исполнения с одинаковыми выводами и 144-выводный К1986ВЕ94GI:

ИсполнениеМаркировкаКорпусСтатус по данным Миландра
К1986ВЕ92QI—LQFP64снят с производства, замена — К1986ВЕ92Fxx
К1986ВЕ92FIMDR1211FIQFN64 9×9 ммсерийная поставка, корпус не совместим с QI
К1986ВЕ92F1IMDR1211F1IQFN64 12×12 ммсерийная поставка, совместим с посадочным местом LQFP64
К1986ВЕ94GIMDR1209GIBGA144та же спецификация, до 96 линий ввода-вывода

Характеристики

  • Ядро: Cortex-M3 с блоком защиты памяти MPU, умножение за один такт, аппаратное деление; 1,25 DMIPS/МГц.
  • Тактирование: RC-генераторы 8 МГц и 40 кГц, кварц 2–16 МГц и 32 кГц, PLL для ядра и отдельная PLL для USB.
  • Питание: 2,2–3,6 В, при работе USB — 3,0–3,6 В; ядро питает встроенный стабилизатор 1,8 В; есть батарейный домен с часами реального времени.
  • Аналоговая часть: два 12-разрядных АЦП (в 64-выводном корпусе — восемь входов на PD0–PD7), 12-разрядный ЦАП, компаратор, датчик температуры.
  • Интерфейсы: USB с режимами устройства и хоста, два CAN, два UART, два SSP (SPI), I²C, контроллер внешней шины, DMA, три 16-разрядных таймера.
  • Флеш-память: не меньше 10 000 циклов записи при 85 °C, хранение 25 лет при 25 °C.

Сравнение со STM32F103

Миландр указывает STM32F103x как ближайший аналог. Для сравнения взят STM32F103RB — тоже 64 вывода и 128 КБ флеш-памяти:

ПараметрК1986ВЕ92 (64 вывода)STM32F103RB (LQFP64)
Ядро и частотаCortex-M3, до 80 МГцCortex-M3, до 72 МГц
Флеш-память и ОЗУ128 и 32 КБ128 и 20 КБ
Питание2,2–3,6 В, с USB 3,0–3,6 В2,0–3,6 В
Линий ввода-вывода4351
АЦП2 × 12 бит, 8 входов2 × 12 бит, 16 входов
ЦАП и компараторестьнет
USBустройство и хостустройство
CAN21
UART и SPIпо 23 USART и 2 SPI
I²C12
Вывод 1UCCVBAT

Корпуса не совместимы по выводам, а периферия устроена иначе — порты MDR_PORTx, тактирование MDR_RST_CLK, SSP вместо SPI. Перенос проекта со STM32F1 — это новая плата и новые драйверы, общее у них только ядро Cortex-M3 и его система команд. Что совместимо со STM32 по выводам у других производителей, разбирает статья «Совместимые микроконтроллеры».

Выводы

Питание и служебные выводы 64-выводных исполнений: UCC — 1, 12, 38, 48; общий — 11, 39, 49, 64; батарейное питание BUCC — 13; аналоговое питание AUCC и AUCC1 — 28 и 24, аналоговый общий — 27 и 23; USB D+ и D− — 9 и 10; STANDBY — 14, WAKEUP — 17, RESET — 18; кварц HSE — 19 и 20; вывод 37 не подключают. У каждой из 43 линий портов — до четырёх функций, которые выбирают в настройках порта:

ВыводЛинияАналоговаяОсновнаяАльтернативнаяПереопределённая
63PA0—DATA0EXT_INT1—
62PA1—DATA1TMR1_CH1TMR2_CH1
61PA2—DATA2TMR1_CH1NTMR2_CH1N
60PA3—DATA3TMR1_CH2TMR2_CH2
59PA4—DATA4TMR1_CH2NTMR2_CH2N
58PA5—DATA5TMR1_CH3TMR2_CH3
57PA6—DATA6CAN1_TXUART1_RXD
56PA7—DATA7CAN1_RXUART1_TXD
43PB0 (JA_TDO)—DATA16TMR3_CH1UART1_TXD
44PB1 (JA_TMS)—DATA17TMR3_CH1NUART2_RXD
45PB2 (JA_TCK)—DATA18TMR3_CH2CAN1_TX
46PB3 (JA_TDI)—DATA19TMR3_CH2NCAN1_RX
47PB4 (JA_TRST)—DATA20TMR3_BLKTMR3_ETR
50PB5—DATA21UART1_TXDTMR3_CH3
51PB6—DATA22UART1_RXDTMR3_CH3N
52PB7—DATA23nSIROUT1TMR3_CH4
53PB8—DATA24COMP_OUTTMR3_CH4N
54PB9—DATA25nSIRIN1EXT_INT4
55PB10—DATA26EXT_INT2nSIROUT1
42PC0——SCL1SSP2_FSS
41PC1—OESDA1SSP2_CLK
40PC2—WETMR3_CH1SSP2_RXD
31PD0 (JB_TMS)ADC0_REF+TMR1_CH1NUART2_RXDTMR3_CH1
32PD1 (JB_TCK)ADC1_REF-TMR1_CH1UART2_TXDTMR3_CH1N
33PD2 (JB_TRST)ADC2BUSY1SSP2_RXDTMR3_CH2
34PD3 (JB_TDI)ADC3—SSP2_FSSTMR3_CH2N
30PD4 (JB_TDO)ADC4TMR1_ETRnSIROUT2TMR3_BLK
35PD5ADC5CLESSP2_CLKTMR2_ETR
36PD6ADC6ALESSP2_TXDTMR2_BLK
29PD7ADC7TMR1_BLKnSIRIN2UART1_RXD
26PE0DAC2_OUTADDR16TMR2_CH1CAN1_RX
25PE1DAC2_REFADDR17TMR2_CH1NCAN1_TX
22PE2COMP_IN1ADDR18TMR2_CH3TMR3_CH1
21PE3COMP_IN2ADDR19TMR2_CH3NTMR3_CH1N
16PE6OSC_IN32ADDR22CAN2_RXTMR3_CH3
15PE7OSC_OUT32ADDR23CAN2_TXTMR3_CH3N
2PF0—ADDR0SSP1_TXDUART2_RXD
3PF1—ADDR1SSP1_CLKUART2_TXD
4PF2—ADDR2SSP1_FSSCAN2_RX
5PF3—ADDR3SSP1_RXDCAN2_TX
6PF4 (MODE[0])—ADDR4——
7PF5 (MODE[1])—ADDR5——
8PF6 (MODE[2])—ADDR6TMR1_CH1—

Порты A, B, C, F и выводы RESET и WAKEUP принимают единицу до 5,25 В, порты D и E — только до 3,6 В. Выходной ток линий — до 6 мА, у PE6, PE7 и STANDBY — до 3 мА.

Режимы запуска и прошивка

Режим после включения задают выводы MODE[2:0] — PF6, PF5, PF4: на время опроса загрузочная программа подтягивает их к общему примерно 50 кОм, так что неподключённые выводы дают режим 000.

MODE[2:0]РежимЧто происходит
000отладка, JTAG_Bзапуск из флеш-памяти, отладчик на PD0–PD4
001отладка, JTAG_Aзапуск из флеш-памяти, отладчик на PB0–PB4
101UART-загрузчикUART2 на PD1 (TX) и PD0 (RX), отладка запрещена
110UART-загрузчикUART2 на PF1 (TX) и PF0 (RX), отладка запрещена

Выводы выбранного отладочного интерфейса во время отладки нельзя использовать для своих сигналов. UART-загрузчик тактируется от RC-генератора HSI, поэтому стартует на 9600 бод и сам подстраивает делитель: ведущее устройство шлёт нули, пока не получит приглашение. Команды — B (скорость), L (загрузить в ОЗУ), Y (прочитать), R (запустить): загрузчик пишет программу в ОЗУ, а флеш-память программирует уже загруженная в ОЗУ программа.

Errata

Обе errata делят ошибки на три категории; категории 1 — неустранимых — нет ни у одного исполнения. Список для FI, F1I и 94GI короче:

ОшибкаК1986ВЕ92QIFI, F1I, 94GI
Программный сброс через AIRCR не работает (0006), обход — через WWDGестьнет в списке
Сбой частоты PLL при изменении питания быстрее 5 В/мс (0031)естьнет в списке
Высокий уровень на выводе при переключении с выхода на вход (0032)естьнет в списке
Подтяжки USB к питанию при отсутствии внутреннего DUCC (0033)естьесть
I²C не ждёт растяжения SCL при DIV = 1–2естьесть
LSE запускается на гармонике при конденсаторах меньше 51 пФестьесть

Для кварца 32,768 кГц Миландр рекомендует нагрузочные конденсаторы 51 пФ, а для I²C с ведомыми, растягивающими SCL, — делитель DIV не меньше 3. Как устроена шина, к которой подключаются оба контроллера CAN, — в разделе «CAN».

Частые вопросы

Чем К1986ВЕ92FI отличается от К1986ВЕ92QI?

Корпусом и статусом: QI в LQFP64 снят с производства, FI выпускается в QFN64 9×9, а F1I — в QFN64 12×12, который Миландр называет совместимым с посадочным местом LQFP64. Номера и функции выводов у 64-выводных исполнений одинаковые. В errata QI есть ошибки, которых нет в списке для FI, — например, невозможность программного сброса через регистр AIRCR.

Можно ли поставить К1986ВЕ92 вместо STM32F103?

Без переделки платы и программы — нет. Миландр называет STM32F103x ближайшим аналогом, но выводы не совпадают: у К1986ВЕ92 вывод 1 — питание, у STM32F103 в LQFP64 — VBAT. Периферия тоже своя — блоки MDR_PORTx, MDR_RST_CLK, SSP вместо SPI, — так что код и драйверы пишутся заново.

Как прошить К1986ВЕ92 через UART?

Выводами MODE[2:0] выбрать режим UART-загрузчика: 101 — UART2 на PD1 (TX) и PD0 (RX), 110 — на PF1 и PF0. Загрузчик стартует на 9600 бод, подстраивается под поток нулей и отвечает приглашением «>». Команда L загружает программу в ОЗУ, Y читает, R запускает: так в ОЗУ кладут программатор, который уже записывает флеш-память.

Какие выводы К1986ВЕ92 выдерживают 5 В?

По спецификации единица до 5,25 В допустима на портах A, B, C, F и на выводах RESET и WAKEUP. Порты D и E — с аналоговыми функциями АЦП, ЦАП, компаратора и кварца LSE — рассчитаны только до 3,6 В.

Источники

  1. АО «ПКК Миландр». Спецификация К1986ВЕ92FI, К1986ВЕ92F1I, К1986ВЕ94GI, ТСКЯ.431296.040СП, версия 1.4.4 от 05.08.2026 — корпуса QFN64 9×9 (FI), QFN64 12×12 (F1I), BGA144 (94GI); Cortex-M3 r2.0 до 80 МГц, 128 КБ флеш, 32 КБ ОЗУ; табл. 2 и 3 — выводы и функции 64-выводных исполнений; табл. 13 — JTAG_A и JTAG_B; табл. 14 — выводы UART-загрузчика; предельные режимы: питание 2,2–3,6 В, с USB 3,0–3,6 В, аналоговое 2,4–3,6 В, батарейное 1,8–3,6 В; единица на PA, PB, PC, PF, RESET, WAKEUP — до 5,25 В, на PD и PE — до 3,6 В; выходной ток 6 мА, у PE6, PE7 и STANDBY — 3 мА; флеш — не меньше 10 000 циклов записи при 85 °C
  2. АО «ПКК Миландр». К1986ВЕ92FI, К1986ВЕ92F1I, К1986ВЕ94GI Errata Notice, 05.08.2026 — маркировка MDR1211FI, MDR1211F1I, MDR1209GI; одна ошибка категории 2 (0033 — подтяжки USB при отсутствии DUcc) и 16 категории 3, среди них 0039 (I²C не ждёт растяжения SCL при DIV = 1–2) и 0040 (LSE на гармонике при конденсаторах меньше 51 пФ); на странице F1I: серийная поставка, ближайший аналог STM32F103x, замена К1986ВЕ92QI с совместимым корпусом
  3. АО «ПКК Миландр». Спецификация К1986ВЕ92QI, ТСКЯ.431296.021СП, версия 2.5.2 от 18.08.2026 — корпус LQFP64; табл. 9 — режимы запуска по MODE[2:0] (PF6–PF4, подтяжка к общему ~50 кОм); разд. 8.4 — UART-загрузчик: UART2, 9600 бод, 8 бит без чётности, синхронизация нулями, приглашение 0x0D 0x0A '>', команды B, L, Y, R; на странице продукта: не производится, замена — К1986ВЕ92Fxx, ближайший аналог STM32F103x
  4. АО «ПКК Миландр». К1986ВЕ92QI Errata Notice, 19.08.2026 — три ошибки категории 2: 0031 (сбой PLL при изменении питания быстрее 5 В/мс), 0032 (высокий уровень на выводе при переключении с выхода на вход), 0033; 0006 — программный сброс через AIRCR не работает, обход через WWDG
  5. STMicroelectronics. STM32_open_pin_data: STM32F103R(8-B)Tx (коммит 7d1f151) — LQFP64: Cortex-M3 72 МГц, 64/128 КБ флеш, 20 КБ ОЗУ, 2,0–3,6 В, 51 линия ввода-вывода, ADC1 и ADC2 с 16 входами, CAN, два I²C, два SPI, три USART, TIM1–TIM4, USB; вывод 1 — VBAT

Нашли ошибку?