Емельянов Эдуард Владимирович (eddy_em) wrote,
Емельянов Эдуард Владимирович
eddy_em

Category:

Первые успехи с USB

Итак, поскребя по сусекам посмотрев примеры с easyelectronics.ru, я таки собрал все воедино и у меня получился рабочий эмулятор USB→COM (его, кстати, можно и как реальный использовать при небольшой доработке).
Вот — исходники. Пока что в них полным-полно мусора, но наконец-то после выполнения
make && make load

и переподключении USB (почему-то сразу после заливки железяка не определяется, наверное, нужно при запуске сначала отключить USB, подержать его немного так, а потом уже включать - ХЗ, будет моим домашним заданием) появляется устройство /dev/ttyACM0!!!

Я установил простенький пакетик tinyserial (сильно облегченная версия minicom'а, близкая к мастдайкотерминалу) и попробовал повзаимодействовать с железякой.
Какой же была моя радость, когда сразу же после запуска я получил:
com /dev/ttyACM0 1500000
C-a exit, C-x modem lines status
[STATUS]: RTS CTS DTR 
 !"#$%&'()
Fad
*
Fad
+
Fad
,
Fad
-
Fad
.
Shn
/
Shn
0
Shn
1
Shn
23
Off
45
On 
6
Blk
78
Unk
9
Shn
:;
Shn

Fad
<
Fad

Fad
=>?@A
Unk

Интересно то, что т.к. реального последовательного порта "с той" стороны пока нет, скорость можно установить совершенно любую. Мы пока не проверяем, что там за настройки порта компьютер прислал.

Ну и напоследок расскажу, что же делает этот пример.
Здесь при запуске активируется подключение к USB и запускается в режиме мерцания светодиод. Скважность мерцания изменяется командами '+' и '-', команда '0' отключает светодиод, команда '1' включает постоянное свечение, команда 'b' активирует режим мерцания.
Кроме того, я попробовал возможности EXTI: на кнопочку WAKEUP повесил прерывание. При нажатии кнопки светодиод либо горит постоянно (если до этого мигал или был потушен), либо мигает.
Таймер запущен с интервалом в 10мс, поэтому мерцания светодиода почти не заметно: команды '+' и '-' как бы изменяют его яркость.
Сама макетка один раз в секунду отправляет поочередно символы с кодами от 33 до 127 включительно, а также сигнализирует о принятии команды от пользователя.
Понятное дело, из-за того, что tinyserial отправляет команды посимвольно, сделать более длинный командный пакет в нем нельзя. Но это уже просто — для дальнейших испытаний напишу простенькую программку-коммутатор.


Tags: stm32, usb, железяки
Subscribe

  • Чем бы таким заменить STM32F072C8T6?

    Полез сейчас на али цены посмотреть, а там… В среднем уже по 600-700 рублей за штучку просят! Вообще охамели. И это - гарантированно БУшные ведь!.. А…

  • Понаблюдал, блин!

    Опять у нас что-то с сетью поломали. Хотел было протестировать, как наша подвесная часть оптоволоконного спектрографа работает, а из дома связь с…

  • Липовые STM32F303CBT6

    Купили недавно на али на работу десяток вышеупомянутых МК (причем, недешево: около 600р за штучку при красной цене в 200р!). И вот, сижу, на своей…

promo eddy_em august 17, 2019 12:33 3
Buy for 10 tokens
Юра намедни напечатал корпус для хронометра. Для первого блина получилось неплохо: И еще немного фотографий:
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 2 comments