README.md

    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" и прочих прослоек.

    Конвейеры
    0 успешных
    0 с ошибкой