Программный USB на микроконтроллерах STM8 (Часть 3)

За два года с момента публикации по данной теме обращались с вопросами только товарищи из Китая, похоже только им интересна эта разработка ;)

Мне самому USB не очень интересен, поэтому я ни чего не делал с момента публикации. Код как был сырой так и остался.

Последнее время количество писем с просьбой помочь “запустить” увеличилось, особенно от товарища по имени James.

Решил помочь ему, нашел платку, прошил подключил к USB хабу и устройство определилось без проблем.

Далее подключил напрямую к ПК и устройство не определилось, что меня удивило. Я ранее проверял работу с ПК.

Потом я вспомнил, что больше года назад я обновил ПК, поменял мать и процессор.

Достал осциллограф и стал смотреть чего там происходит на линиях данных.

Оказалось, что самый первый импульс синхропакета (SYNC) периодически имел длину меньше положенной. Уменьшение было до двух раз. Что и приводило к ошибкам приема.

Исправил эту ошибку изменив фронт захвата сигнала с нарастающего на спадающий (по линии D+).

Так же на новом ПК интервалы между запросами короче и нехватало времени для перехода в режим приема, исправил.

Исходный код доступен на GiHub: github.com/ZiB/STM8S-USB

Внимание!!! Код СЫРОЙ, без оформления и тщательной проверки.

Первые две заметки:
Часть 1
Часть 2

Тоже самое у меня в блоге:
Часть 1
Часть 2
  • +4
  • 27 июля 2016, 06:44
  • ZiB

Комментарии (2)

RSS свернуть / развернуть
За два года с момента публикации по данной теме обращались с вопросами только товарищи из Китая, похоже только им интересна эта разработка ;)
Просто их много и они трудолюбивые! ;)
0
  • avatar
  • Vga
  • 27 июля 2016, 23:05
Это точно ;)

Судя по присланной информации (схема, плата) James похоже собирается массово клепать платки.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.