Bluetooth в VESC

В VESC Tool есть возможность использовать модуль Bluetooth для соединения с платой. Заложен чип NRF51822. Автор использует подобные платы. Также он сделал свою прошивку в репозитории:
https://github.com/vedderb/nrf51_vesc

Я купил платы nrf51822-02, которые являются клонами вот этих. В них заработала прошивка nrf51_vesc_ble_16k_16m_rx11_tx9_led3.bin из уже прекомпилированных прошивок.

Прошил отладчиком ST-Link через openocd командой:

openocd -f openocd.cfg -c "init" -c "halt" -c "nrf51 mass_erase" -c "program nrf51_vesc_ble_16k_16m_rx11_tx9_led3.bin verify reset exit"

Прошивка AVR через ISP

Для программирования микроконтроллеров AVR через программатор USB AVR-ISP XPII (AVRISP mkII) можно использовать консольную утилиту avrdude:

Linux:
avrdude -c avrisp2 -P usb -b 19200 -p m32u4 -U flash:w:firmware.hex
Windows:
.\avrdude.exe -c avrisp2 -P usb -b 19200 -p m32u4 -U flash:w:firmware.hex

Ссылки:
https://forum.arduino.cc/index.php?topic=374842.0
https://gist.github.com/avilleret/2307a48927d2eab249d73cb16dc9eac6
http://microsin.net/programming/avr/starting-out-with-avrdude.html

При возникновении проблем с правами на устройство в Linux нужно добавить правило udev в /etc/udev/rules.d/99-usbasp.rules:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2104", GROUP="uucp", MODE="0666"

Узнать VID/PID программатора можно через lsusb. После этого надо перезагрузить правила:

sudo udevadm control --reload-rules

CCS: мерцание GUI в Linux

В Code Composer Studio при установке на Manjaro возникла проблема с мерцанием интерфейса. Как описано в теме
CCS: GUI Flickers on mouse Movement after web content was shown
необходимо переменную окружения SWT_GTK3=0. Это можно сделать для текущей сессии:

> export SWT_GTK3=0

Я добавил в ярлык запуска студии команду env:

Exec=env SWT_GTK3=0 /home/user/ti/ccs920/ccs/eclipse/ccstudio

Сброс защиты от чтения в STM32

Чтобы сбросить защиту от чтения с помощью командной строк нужно выполнить следующую команду:

openocd -f interface/stlink-v2.cfg -f target/stm32f3x.cfg -c "init; reset halt; stm32f3x unlock 0; reset halt; exit"

После этого обязательно нужно сбросить питание!

Преобразователь TA1-USB-01-C фирмы Элкус в Linux

В комплекте к изделию TA1-USB-01-C поставляются драйвера как для Windows, так и для Linux. Но драйвера Linux только для версий ядра 2.х. Запуск на новых версиях 4.х сопряжен с некоторыми проблемами.

Читать далее Преобразователь TA1-USB-01-C фирмы Элкус в Linux

Отладка микроконтроллеров в Qt Creator

Для работы с микроконтроллерами есть ряд специализированных IDE, которые в основном платные. Здесь я рассмотрю вариант с использованием открытой среды Qt Creator.

Читать далее Отладка микроконтроллеров в Qt Creator

Структура каталогов проекта

Директорию проекта следует называть имя-проекта, а файлы проекта имя-проекта_rev1.0_тип-файла

  • electrical — схемы, топологии, перечни, гербера (altium)
    • CHANGELOG — файл изменений по версиям проекта
    • README — файл описания проекта
    • BUGS — файл описания ошибок в соответствии с версиями
    • _sch — проект altium или файл схемы p-cad
    • _bom — перечень элементов
    • _gbr — gerber файлы для производства
    • _gbr_readme — описание печатной платы для производства
    • _pnp — файл Pick’n’Place для автоматического монтажа
  • docs_desc — документы проекта, счета и т.д. (initial)
  • docs_info — даташиты, описания
  • mechanical — чертежи деталей, корпуса, 3D модели
  • models — моделирование электрических схем
  • soft — программы проекта, прошивки, утилиты
  • archive — pdf версии документов для архива при работе по ГОСТ

Ошибка с USB Blaster в Linux

Столкнулся с ошибкой при использовании отладчика Altera USB Blaster в Manjaro. Ошибка имеет следующий вид:

Linux : Unexpected error code 89

Такая проблема возникала у людей неоднократно. Обсуждение вопроса есть, например, на форуме.

Основная проблема связана с правилами для udev. У некоторых людей не создаются правила для USB Blaster, а мне помогло изменение свойства MODE.

Правила находятся в директории /etc/udev/rules.d. Имя файла имеет вид 40-usbblaster.rules, где цифры в начале могут отличаться. Если файла нет, то нужно его создать и добавить следующую строку:

SUBSYSTEM=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6001", GROUP="plugdev", MODE="0666", SYMLINK+="usbblaster"

После этого, при подключении отладчика, прошивка должна заработать.

Установка Quartus Prime в Ubuntu

Установка студии сводится к скачиванию архива с программой с сайта. Но при запуске в свежих версий Ubuntu возникнет проблема с отсутствием библиотеки libpng12. Ее можно установить, скачав с сайта packages.ubuntu.com:

libpng12-0_1.2.54-1ubuntu1.1_amd64.deb

Если при установке не создадутся ярлыки, запустить Quartus можно по следующим командам (если установка проводилась в директорию по умолчанию):

To launch quartus: ~/intelFPGA_lite/18.1/quartus/bin/quartus
To launch eclipse: ~/intelFPGA_lite/18.1/nios2eds/bin/eclipse_nios2/eclipse
To launch modelsim: ~/intelFPGA_lite/18.1/modelsim_ase/bin/vsim