Главная » Микроконтроллеры
Призовой фонд
на декабрь 2017 г.
1. Спектроанализатор Arinst SSA-TG LC
Крокс
2. Термометр Relsib WT51
Рэлсиб
3. 1000 руб
PCBWay
4. 100 руб.
От пользователей

USB Device

В свободное время решил сделать USB – SPI переходник для управление OLED дисплеем через Terminal.

Под руки попалась отладочная плата с STM32F103C8 и USB разъемом.

Для управления дисплеем кроме SPI нужны были дополнительные пины настроенные на выход.

При реализации были добавлены еще некоторые возможности. В итоге получилось довольно интересное устройство.

Устройство использовалось с драйвером от ST VCP_V1.4.0_Setup.exe.

Для ускорения процесса написания софта под STM32 решил использовать программу STM32CubeMX.

В итоге устройство принимает следующие команды:

  1. COM[LED_SET.X]\n – Управление яркостью светодиода установленного на макетной плате (PC13). X = 0-255. 0 – минимальная яркость (светодиод выключен) 255 – максимальная яркость.
  2. COM[LED_GET]\n – Запрос текущей яркости. Ответ COM[LED_GET.X]\n X – текущая яркость.
  3. COM[PIN_SET.X.Y]\n – Установка выходного пина. X = 0-3 – номер пина 0 – PB12, 1 – PB11, 2 – PB10, 3 – PB2. Y = 0-1, 0 – логический ноль, 1-логическая единица.
  4. COM[PIN_GET.X]\n – Запрос текущего состояния пина. X = 0-5 – номер пина 0 – PB12, 1 – PB11, 2 – PB10, 3 – PB2, входные пины  (программно подтянуты к земле)  4 – PB1, 5 – PB0. Ответ COM[PIN_GET.X.Y]\n – X- номер пина, Y – состояние пина.
  5. COM[ADC_SET.X]\n – Запуск измерения ADC. X = 0-1 – номер пина ADC. 0 – PA0, 1 – PA1.
  6. COM[ADC_GET.X]\n – Запрос последнего измерения ADC. X = 0-1 – номер пина ADC. Ответ COM[ADC_GET.X.A]\n – A = 0-4095 – единицы ADC.
  7. COM[SPI_CONF.P.B.L.F] \n – Установка конфигурации SPI (SPI2 MOSI – PB15, MISO – PB14, SCK – PB12). P = 2,4,8,16,32,64 – предделитель 2 = 18 MBits/s, 4 = 9 MBits/s …. B = MSB, LSB – первый бит младший или старший. L = L,H – уровень SCK. F = 1,2 – захват по первому или второму фронту. Пример COM[SPI_CONF.4.MSB.L.1] \n.
  8. COM[SPI_WR.LEN.DATA] \n – Передача данных по SPI. LEN = 1-32 – Количество байт для отправки. DATA – непосредственно данные для отправки по SPI.
  9. COM[SPI_RD.LEN] \n – Прием данных по SPI. LEN = 1-32 – Количество байт для приема.
  10. COM[SPI_TR.LEN.DATA]\n – Передача/прием данных по SPI. . LEN = 1-20 – Количество байт для передачи/приема. DATA – непосредственно данные для отправки по SPI.
  11. COM[?]\n – Справка команд.

Устройство может управлять 4 – пинами. Считывать состояние 2-х входов. Считывать измерение ADC c двух входов. И передавать/принимать данные по SPI.

Исходники можно подправить под свои хотелки.

Проект под IAR Embedded 7.20.

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (1) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Pickit 2 - USB-программатор PIC-микроконтроллеров
Pickit 2 - USB-программатор PIC-микроконтроллеров
Набор 4WD Kit Bluetooth Конструктор: DDS генератор сигналов
вверх