Регистры. Понятно, так я ж не пустой чип подключаю а якобы с рабочей програмой (используя CDC клас), и якобы у меня есть приложение на комп и т.д.... P.S. со светодиодами вже давно покончено, все варианты работают, вся проблема была связана с неправильно собранным аппаратнам обеспечением...
Сообщение отредактировал mustelus - Dec 16 2009, 17:16
Регистры. Понятно, так я ж не пустой чип подключаю а якобы с рабочей програмой (используя CDC клас), и якобы у меня есть приложение на комп и т.д.... P.S. со светодиодами вже давно покончено, все варианты работают, вся проблема была связана с неправильно собранным аппаратнам обеспечением...
регистры тем не менее не проинициализированы, в частности тот, где пуллапы задаются.
Вот не задача, в програме все инициализировано но похоже что аппаратно не инициализируеться (макрос InitializeSystem() в main.c файле), регистр UCFG инициализируеться как 00010100. Подтялул внешним резистором ногу D+ к Vusb, заработало... Так что ж за фигня... Вот исходник... Cdc.rar ( 148.37 килобайт )
Кол-во скачиваний: 144
PIC18F2450/4450 Data Sheet .... 21.0 ELECTRICAL CHARACTERISTICS Absolute Maximum Ratings .... Maximum current out of VSS pin ........ 300 mA Maximum current into VDD pin .......... 250 mA ....
Группа: Участник
Сообщений: 17
Регистрация: 23-12-09
Пользователь №: 54 428
Что касается usb, так это действительно непростая штука. Даже используя готовое firmware, скачанное с сайта микрочип, не факт что все пойдет так, как надо. Например, готовое по на сайте может использовать метод "polling"(последовательная обработка запросов) при работе с юсб, и при увеличении полезного кода устройство не проходит процедуру инициализации. Это очень хорошо заметно если использовать программу мониторинга юсб трафиика (bus hound например). Эта проблема была решена переходом на работу с юсб по прерываниям. Также стоит посмотреть на выбранный метод тактирования мк. При работе с юсб через поллинг у меня все было ок с осциллятором "usb = hs +pll enabled, primary clock=internal". Но, не знаю почему, эта схема работать перестала и я настроил "usb = hs +pll enabled, primary clock=hs+prescaler". И это далеко не все "подводные камни"