В свободное время решил сделать USB – SPI переходник для управление OLED дисплеем через Terminal.
Под руки попалась отладочная плата с STM32F103C8 и USB разъемом.
Для управления дисплеем кроме SPI нужны были дополнительные пины настроенные на выход.
При реализации были добавлены еще некоторые возможности. В итоге получилось довольно интересное устройство.
Устройство использовалось с драйвером от ST VCP_V1.4.0_Setup.exe.
Для ускорения процесса написания софта под STM32 решил использовать программу STM32CubeMX.
В итоге устройство принимает следующие команды:
- COM[LED_SET.X]\n – Управление яркостью светодиода установленного на макетной плате (PC13). X = 0-255. 0 – минимальная яркость (светодиод выключен) 255 – максимальная яркость.
- COM[LED_GET]\n – Запрос текущей яркости. Ответ COM[LED_GET.X]\n X – текущая яркость.
- COM[PIN_SET.X.Y]\n – Установка выходного пина. X = 0-3 – номер пина 0 – PB12, 1 – PB11, 2 – PB10, 3 – PB2. Y = 0-1, 0 – логический ноль, 1-логическая единица.
- 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 – состояние пина.
- COM[ADC_SET.X]\n – Запуск измерения ADC. X = 0-1 – номер пина ADC. 0 – PA0, 1 – PA1.
- COM[ADC_GET.X]\n – Запрос последнего измерения ADC. X = 0-1 – номер пина ADC. Ответ COM[ADC_GET.X.A]\n – A = 0-4095 – единицы ADC.
- 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.
- COM[SPI_WR.LEN.DATA] \n – Передача данных по SPI. LEN = 1-32 – Количество байт для отправки. DATA – непосредственно данные для отправки по SPI.
- COM[SPI_RD.LEN] \n – Прием данных по SPI. LEN = 1-32 – Количество байт для приема.
- COM[SPI_TR.LEN.DATA]\n – Передача/прием данных по SPI. . LEN = 1-20 – Количество байт для передачи/приема. DATA – непосредственно данные для отправки по SPI.
- COM[?]\n – Справка команд.
Устройство может управлять 4 – пинами. Считывать состояние 2-х входов. Считывать измерение ADC c двух входов. И передавать/принимать данные по SPI.
Исходники можно подправить под свои хотелки.
Проект под IAR Embedded 7.20.
Прикрепленные файлы:
- en_stsw-stm32102.zip (2204 Кб)
- USB_UART_LED_V1_0.hex (60 Кб)
- USB_UART_LED.zip (3814 Кб)
Комментарии (1) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация