Leaf Maple: введение в STM32

разделы: STM32 , STM32duino , дата: 17 сентября 2015г.

Проект Leaf Maple призван стать аналогом Arduino для микроконтроллеров STM32. Пока нельзя сказать, что проект "выстрелил", но на мой взгляд достоин внимания. Заказать китайский клон Maple Mini можно всего за 4USD.

 

    На борту чип STM32F103CBT6, содержащий множество интересных штук:
  1. ядро ARM CortexM3;
  2. 32-разрядность;
  3. частота 72 МГц;
  4. 128 кБайт встроенной флеш памяти;
  5. 20 кБайт оперативки;
  6. 12-битный АЦП;
  7. семь DMA каналов;
  8. аппаратные USB2.0, CAN, USART, I2C, SPI интерфейсы.

Полную спецификацию можно посмотреть на официальном сайте фирмы STMicroelectronics: STM32F103x8 STM32F103xB datasheet

подключив микроконтроллер к USB порту в dmesg имеем такой лог:

usb 5-2: new full-speed USB device number 11 using ohci-pci
usb 5-2: New USB device found, idVendor=1eaf, idProduct=0003
usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 5-2: Product: Maple 003
usb 5-2: Manufacturer: LeafLabs
usb 5-2: SerialNumber: LLM 003

Документация на Leaf Maple здесь: LeafLabs Documentation Index. Нам пока будет интересен только Quick Start. Следуя по ссылке в документации: "Установка и запуск IDE", попадаем на страницу загрузки Maple IDE:

Как видно, из Виндоус систем поддреживается только XP, но меня интересует конечно же версия для linux 64-bit. Cкачав и распаковав архив, следует заглянуть в папку tools, там лежат правила для udev.

Запустив maple-ide видим еще один клон среды разработки Processing

Найдя в примерах Blink и выбрав в Tools плату: LeafLabs Maple Mini Rev2 to Flash можно нажать на компиляцию, а если микроконтроллер подключен, то можно и на Upload. В отличие от Arduino IDE не нужно выбирать порт и программатор. Последовательный порт здесь нужен только для Serial Monitor, и у меня порт ACM0 в системе появился только после первой прошивки Blink'ом

При прошивке, в консоль выкинет такой лог:

Going to build using 'armcompiler' (ARM)
    Compiling core...
    No libraries to compile.
    Compiling the sketch...
    Linking...
    Computing sketch size...

/tmp/build4053041559428951272.tmp/Blink.cpp.bin  :
section    size   addr
.data   12632      0
Total   12632


Binary sketch size is reported above. Check it against a 108000 byte maximum.
Loading via dfu-util
Resetting to bootloader via DTR pulse
Searching for DFU device [1EAF:0003]...
Found it!

Opening USB Device 0x1eaf:0x0003...
Found Runtime: [0x1eaf:0x0003] devnum=21, cfg=0, intf=0, alt=1, name="DFU Program FLASH 0x08005000"
Claiming USB DFU Interface...
Setting Alternate Setting ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
Transfer Size = 0x0400
bytes_per_hash=252
Starting download: [##################################################] finished!
error resetting after download: No such file or directory
state(8) = dfuMANIFEST-WAIT-RESET, status(0) = No error condition is present
Done!
Resetting USB to switch back to runtime mode
поделиться: