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

Микроконтроллер MIK32 Амур

MIK32 Амур — 32-разрядный микроконтроллер Микрона на открытой архитектуре RISC-V с аппаратной криптографией по ГОСТ для устройств промышленного интернета вещей. Встроенной флеш-памяти у него нет: программа выполняется из EEPROM на 8 КБ, из внешней флеш-памяти через контроллер SPIFI или из ОЗУ.

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

MIK32 Амур (обозначения К1948ВК018 и К1948ВК015) построен на ядре SCR1 компании Syntacore — RISC-V в конфигурации RV32IMC с отладкой через JTAG и трёхстадийным конвейером. Частота — до 32 МГц, корпус QFN64 8×8 мм.

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

ПараметрMIK32 Амур
ЯдроRISC-V SCR1, RV32IMC, до 32 МГц
ПамятьОЗУ 16 КБ, EEPROM 8 КБ, OTP 256 бит, внешняя флеш через SPIFI — до 2 ГБ с кэшем 1 КБ
Питание2,97–3,63 В, аналоговое — 3,15–3,45 В, батарейный домен — 2,5–3,63 В
Интерфейсы2 USART, 2 SPI, 2 I²C
Аналоговая часть12-битный АЦП на 8 каналов до 800 кГц, два 12-битных ЦАП, датчик температуры
Таймерытри 32-битных и три 16-битных, сторожевые таймеры, RTC с будильником
Прочеекриптография «Кузнечик», «Магма», AES-128; CRC32; DMA на 4 канала; 40 линий ввода-вывода
Температура−45…+85 °C

Память и загрузка

Встроенной флеш-памяти нет. Откуда стартовать, решают выводы BOOT_0 и BOOT_1 при включении питания и внешнем сбросе:

BOOT_0BOOT_1Старт
00из EEPROM 8 КБ
01из внешней флеш-памяти через SPIFI
10из ОЗУ
11зарезервировано

Выбранная память отображается на загрузочную область с адреса 0x00000000 и остаётся доступной по своему адресу: EEPROM — 0x01000000, ОЗУ — 0x02000000, внешняя флеш-память — 0x80000000. EEPROM защищена кодом коррекции ошибок, а контроллер SPIFI работает с флеш-памятью в одно-, двух- и четырёхбитном режимах и кэширует код.

Выводы

Питание: VCC — 5, 20, 52; выходы встроенного регулятора VDD для конденсаторов — 6, 24, 41; общий VSS — 9, 29, 59; аналоговое питание AVCC — 62, AVSS — 63; батарейный домен — VBAT 8, VCC_BU 10, VDD_BU 11. Служебные: RST# — 14, EXT_WU — 15, RTC_ALARM — 16, BOOT_0 и BOOT_1 — 17 и 18, VPRG — 19 (8,0 В для записи OTP); кварц 32 кГц — 12 и 13, кварц до 32 МГц — 39 и 40. Остальные 40 выводов — линии портов 0, 1 и 2, их функцию выбирают регистры PADx_CFG:

ИнтерфейсСигнал — вывод
JTAGTDO — 42, TRSTn — 43, TMS — 44, TCK — 45, TDI — 46
SPIFISCLK — 38, CS — 37, DATA0 — 36, DATA1 — 35, DATA2 — 34, DATA3 — 33
UART0RXD — 53, TXD — 51, nCTS — 50, nRTS — 49
UART1RXD — 7, TXD — 4, nCTS — 3, nRTS — 2
I²C0 и I²C1SDA — 48 и 1, SCL — 47 и 64
SPI0MISO — 58, MOSI — 57, CLK — 56, вход выбора — 55, выбор ведомых — 54, 61, 60, 32
SPI1MISO — 30, MOSI — 28, CLK — 27, вход выбора — 26, выбор ведомых — 25, 23, 22, 21
АЦПADC_0 — 23, ADC_1 — 21, ADC_2 — 56, ADC_3 — 54, ADC_4 — 50, ADC_5 — 48, ADC_6 — 46, ADC_7 — 44
ЦАПDAC0 — 1, DAC1 — 64, опора REF_ADC_DAC — 2

Выводы 42–46 после сброса уже работают как JTAG: начальное значение регистра PAD0_CFG — 0x55400000. Таймеры выводятся на те же линии во втором режиме: каналы TIMER32_1 — на 58–55, TIMER32_2 — на 30, 28, 27, 26, входы и выходы TIMER16 — на 44–51 и 53.

АЦП и тактирование

АЦП измеряет напряжение от 0,015 В до опорного, а опора — 1,1–1,3 В, номинально 1,2 В: сигналы 3,3 В подают через делитель. Эффективное число разрядов — не меньше 10,5. Встроенные генераторы — 32 МГц и 32 кГц, кварцевые — до 32 МГц (Микрон рекомендует 32 МГц) и 32 768 Гц. Конденсаторы кварца считают по формуле C1 = C2 = 2(CL − (Ck + Cm)), принимая ёмкость выводов и дорожек около 3–7 пФ, — как в калькуляторе конденсаторов кварца.

Прошивка и errata

Микросхему прошивают через JTAG: утилита Микрона MIK32 Uploader подключается к OpenOCD и пишет hex-файл в ОЗУ, EEPROM или внешнюю флеш-память по адресам из файла. На линиях TCK, TMS и TDI Микрон рекомендует подтяжку 50–100 кОм к питанию, на TRSTn — к земле. В errata MIK32V2 стоит прочитать до начала разработки: поле SAH_TIME регистра ADC_CONFIG пишется и читается разными разрядами; чтение EEPROM после записи или стирания может вернуть ноль — обход двумя чтениями по разным адресам; у I²C флаг TXIS выставляется в конце байта; у SPI0 не работает автоматический выбор ведомого n_ss_out_3. Как устроена шина SPI, к которой подключают и внешнюю флеш-память, — в разделе интерфейсов; другие отечественные микроконтроллеры — К1986ВЕ92 и К1921ВК035.

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

Где хранится программа MIK32, если у него нет флеш-памяти?

В одном из трёх мест, которое выбирают выводы Boot0 и Boot1: во встроенной EEPROM на 8 КБ (00), во внешней SPI-флеш-памяти через контроллер SPIFI с кэшем 1 КБ (01) или в ОЗУ (10). Выбранная память отображается на адрес 0x00000000, а внешняя флеш-память может быть объёмом до 2 ГБ.

Какое напряжение измеряет АЦП MIK32?

Только до опорного напряжения: по техническому описанию входной диапазон — от 0,015 В до U_REF, а опора — от 1,1 до 1,3 В, номинально 1,2 В. Сигналы 3,3 В подают через делитель. Каналов восемь, частота преобразования — до 800 кГц.

Как прошить MIK32?

Через JTAG: выводы TDO, TRSTn, TMS, TCK и TDI — 42–46 — работают как JTAG сразу после сброса. Утилита Микрона MIK32 Uploader подключается к OpenOCD и записывает hex-файл в ОЗУ, EEPROM или внешнюю флеш-память — куда именно, определяет адрес в файле.

Что означают исполнения А, Б и В?

Урезанные варианты микросхемы: по техническому описанию у исполнения А не используется АЦП, у Б — ЦАП, у В — однократно программируемая память OTP. Остальные блоки те же.

Источники

  1. Микрон. Техническое описание К1948ВК018, К1948ВК015. RISC-V микроконтроллер MIK32 АМУР, версия 2.2.3 — разд. 2 — 32 МГц, ОЗУ 16 КиБ, EEPROM 8 КиБ, OTP 256 бит, питание 2,97–3,63 В, батарейное 2,5–3,63 В, аналоговое 3,15–3,45 В, ток до 50 мА, −45…+85 °C, 64 вывода; разд. 3 — ядро SCR1 (Syntacore) RV32IMC, JTAG, загрузка из SPI-флеш, ОЗУ или EEPROM, исполнения А, Б, В без АЦП, ЦАП и OTP; табл. 2 — карта памяти; табл. 3 — выводы Boot0 и Boot1; табл. 152 — АЦП: 8 каналов, до 800 кГц, опора 1,1–1,3 В, вход от 0,015 В до опоры, ENOB от 10,5; табл. 193 — назначение выводов; PAD0_CFG после сброса 0x55400000
  2. Микрон. Информационный лист MIK32 Амур (К1948ВК015/018) — внешняя флеш-память до 2 ГБ с кэшем 1 КБ; два I²C, два USART, два SPI; криптография «Кузнечик», «Магма», AES-128; два 12-битных ЦАП до 1 МГц; DMA на 4 канала; 40 линий ввода-вывода; три 32-битных и три 16-битных таймера; QFN64 8×8 мм; генераторы HSI32M 31,5–32 МГц и LSI32K 28–32 кГц
  3. Микрон. Errata MIK32V2 — АЦП — разные разряды поля SAH_TIME для записи и чтения; EEPROM — неверное чтение по AHB после записи, стирания или чтения через регистры; I²C — флаг TXIS в конце байта; SPI0 — не работает автоматический n_ss_out_3; TIMER16 — длительность первого счёта при делителе больше 1
  4. Микрон. MIK32: рекомендации по подключению и MIK32 Uploader — конденсаторы по питанию, подтяжки 50–100 кОм на TCK, TMS, TDI и IO2/IO3 флеш-памяти, TRSTn — к земле; кварц OSC32M 1–32 МГц, рекомендуется 32 МГц; C1 = C2 = 2(CL − (Ck + Cm)), Ck + Cm ≈ 3–7 пФ; MIK32 Uploader записывает hex-файл в ОЗУ, EEPROM или внешнюю флеш-память через OpenOCD

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