mik32_amur_simple
Для чего?
Написание программ для К1948ВК018 (MIK32 Amur) без использования лишних прослоек по типу “HAL”. Есть заголовочные файлы с описанием регистров оборудования, есть документация на микроконтроллер. Этого вполне достаточно. К тому же без HAL собранные программы получаются заметно компактней.
На чём тестируется?
На плате ELBEAR ACE-UNO (8 МиБ флэша) с зашитым в EEPROM загрузчиком от ELBEAR. (Два примера в конце списка - для платы BluePill-MIK32, которая также достаточна распространена).
Также можно воспользоваться загрузчиком из примера ex_loader_2 (как его залить в EEPROM см. README.md в директории ex_loader_2). Загрузчик ex_loader_2 “заточен” под плату ELBEAR ACE-UNO, для платы BluePill-MIK32 предназначен загрузчик ex_loader_3, по своему функционалу они идентичны.
Зачем нужен “самосборный” загрузчик? Работает сильно быстрее “штатного”.
Как загружается прошивка?
С загрузчиком от ELBEAR заливка HEX файла загрузочным скриптом elbear_uploader.py (из “официального” сборочного окружения) в последовательный порт. Сборка для работы из SPI Flash.
С загрузчиком ex_loader_2 (или ex_loader_3) для всех тестовых проектов добавлена цель сборки upload, которая приводит к сборке и загрузке и запуску примеров (кроме загрузчиков ex_loader, ex_loader_2 и ex_loader_3).
Для этого плата должна быть подключена по USB и последовательный порт при этом /dev/ttyUSB0, если у Вас порт другой, можно подправить Makefile.
Пример для загрузчика ELBEAR:
python3 ../tools/elbear_uploader.py ./out.hex --com /dev/ttyUSB0
Пример для загрузчиков ex_loader_2 и ex_loader_3:
make upload
Чем собирается?
Комплектом gcc-riscv64-unknown-elf.
Для сборки программы (исходники в ../tools/ex_uploader.c) для “заливки” бинарников через загрузчики ex_loader_2 и ex_loader_3 потребуется gcc для Вашей платформы.
Собственно список примеров
- ex_base - базовые настройки, GPIO, UART
- ex_adc - блок АЦП, работа с одним каналом
- ex_adc_2 - блок АЦП, работа с несколькими каналами
- ex_buttons - работа с кнопками
- ex_crc - блок CRC, вычисления по разным алгоритмам CRC32
- ex_crypto - блок CRYPTO, проверки тестовых примеров по разным алгоритмам блока
- ex_dac - блок ЦАП, DDS генератор на два канала
- ex_i2c - блок I2C, работа с датчиком BME280/BMP280
- ex_mfrc522 - блок SPI, работа с NFC чипом RC522, чтение памяти карт Mifare (проверялось на 1K и Ultralight, запись 1K тоже работает)
- ex_onewire - блок UART, работа с устройствами на шине 1-wire
- ex_1wire_copy_key - блок UART, работа с устройствами на шине 1-wire, “копирование” ключей DS1990 (проверена запись на RW1990.1, на RW1990.2 и TM2004 не проверено)
- ex_picolibc - пример сборки с picolibc ( сама picolibc для Mik32/Амур здесь )
- ex_radio_rc - блок SPI, работа с трансивером SI4432/B0, приём пакетов
- ex_radio_tr - блок SPI, работа с трансивером SI4432/B0, передача пакетов
- ex_spi_dma - блоки SPI и DMA, работа с экраном на контроллере ST7735
- ex_spi_dma_2 - блоки SPI и DMA, работа с экраном на контроллере ILI9341
- ex_touchscreen - блоки SPI и EEPROM, работа с контроллером 4-проводного резистивного тачскрина XPT2046
- ex_tsens - блок датчика температуры
- ex_timer - блоки SPI, ЦАП и EEPROM, проект кухонного таймера
- ex_loader - блок SPIFI, загрузчик прошивки в SPI FLASH через UART, в формате “XModem1K”
- ex_loader_2 - блок SPIFI, загрузчик прошивки в SPI FLASH через UART, кусками по 4 КиБ, быстрый
- ex_loader_3 - то же самое, что и ex_loader_2, только для платы BluePill-MIK32 с “флэшкой” PY25Q128HA.
- ex_base_3 - пример ex_base для платы BluePill-MIK32 с “флэшкой” PY25Q128HA.
Другие директории
- devices - “драйверы” различных устройств
- docs - дополнительная документация
- fonts - растровые шрифты со сглаживанием в упакованном формате с кодировкой utf-8 (см. fonts/README.md)
- images - “упакованные” изображения, для вывода на экран используются функции из devices/display.c
- ld_scripts - скрипты компоновщика для размещения программ в ОЗУ, ЭППЗУ и SPI Flash
- libbaremetal - минимальные исходники библиотек libc и libm
- mik32_hwlibs - заголовочные файлы с описание регистров оборудования микроконтроллера
- tools - различные загрузчики (загрузчик для ЭППЗУ можно найти в https://gitflic.ru/project/mikron-mik32/mik32-uploader)
- utils - утилита для преобразования TGA файлов в сжатые изображения для последующего вывода на экран
Полезные ссылки
Плата ELBEAR ACE-UNO
Микроконтроллер К1948ВК018/К1948ВК015
Описание
Базовый "слой" для К1948ВК018 без использования "HAL" и прочих прослоек.