Программный USB на STM8 (Часть 3)

26 Июля 2016 К комментариям

Давненько ни чего не писал, собственно ни чего и не делал. Месяц назад родилась вторая дочка, теперь вообще времени нет для хобби, нянькаюсь :)

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

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

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

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

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

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

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

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

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

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

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

Будут вопросы пишите, форма обратной связи в меню сайта (см. выше).

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



comments powered by Disqus