Микроконтроллер 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_0 | BOOT_1 | Старт |
|---|---|---|
| 0 | 0 | из EEPROM 8 КБ |
| 0 | 1 | из внешней флеш-памяти через SPIFI |
| 1 | 0 | из ОЗУ |
| 1 | 1 | зарезервировано |
Выбранная память отображается на загрузочную область с адреса 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:
| Интерфейс | Сигнал — вывод |
|---|---|
| JTAG | TDO — 42, TRSTn — 43, TMS — 44, TCK — 45, TDI — 46 |
| SPIFI | SCLK — 38, CS — 37, DATA0 — 36, DATA1 — 35, DATA2 — 34, DATA3 — 33 |
| UART0 | RXD — 53, TXD — 51, nCTS — 50, nRTS — 49 |
| UART1 | RXD — 7, TXD — 4, nCTS — 3, nRTS — 2 |
| I²C0 и I²C1 | SDA — 48 и 1, SCL — 47 и 64 |
| SPI0 | MISO — 58, MOSI — 57, CLK — 56, вход выбора — 55, выбор ведомых — 54, 61, 60, 32 |
| SPI1 | MISO — 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. Остальные блоки те же.
Источники
- Микрон. Техническое описание К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
- Микрон. Информационный лист 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 кГц
- Микрон. Errata MIK32V2 — АЦП — разные разряды поля SAH_TIME для записи и чтения; EEPROM — неверное чтение по AHB после записи, стирания или чтения через регистры; I²C — флаг TXIS в конце байта; SPI0 — не работает автоматический n_ss_out_3; TIMER16 — длительность первого счёта при делителе больше 1
- Микрон. 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
Нашли ошибку?
Смотрите также
- Отечественные МКК1986ВЕ92, К1921ВК035, MIK32 Амур: исполнения, аналоги, документация
- Миландр К1986ВЕ92Cortex-M3 80 МГц: исполнения, выводы, загрузчик, errata, сравнение со STM32F103
- НИИЭТ К1921ВК035100 МГц с FPU для электропривода: выводы, тактирование, загрузка, errata
- Конденсаторы для кварцаC1 и C2 по CL, запас генерации, уход частоты
- SPISCLK, MOSI, MISO, CS, режимы 0–3, daisy chain, частота, SPI в AVR