Перейти к содержанию
    

Аппаратная платформа своя...собственно сам контроллер подключенный к usb и стабилизатор питания, больше ничего нет.
А кварц на 8 Мгц есть? С конденсаторами 27 pf и резистором 1М, как в схеме на Olimex-овскую борду. В примере-то наверняка настройки PLL приведены для кварца из отладочной платы. А если кварц другой - то дела не будет.
Попутно еще вопрос...сопротивление на DP 1,5к сигнализирует о том, что устройство готово принимать данные от хоста. Похоже, что у меня устройство не готово принимать данные? или как?
Не. Резистор только сигнализирует о наличии устройства на шине USB. А готовность/неготовность к приёму данных устройство сообщает по шине (пакетами ACK или NACK).

Обнаружив резистор на шине, Хост выдаёт состояние RESET, потом состояние SUSPEND, потом снова RESET, и только после этого присылает первый SETUP-дескриптор. Если Хост не получит подтверждения приёма дескриптора (пакет ACK) - то повторит RESET и SETUP-пакет ещё два раза и отключится от шины несмотря на резистор. Чтоб снова активизировать Хост - нужно резистор отключить и снова подключить (типа вынули флешку и снова вставили).

 

В некоторых USB-девайсах резистор 1,5к наглухо впаян между 3,3в и DP, но это требует от устройства быть готовым к запросам Хоста немедленно сразу-же после установки в разъём.

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

 

Просто Хост обнаружив резистор, делает только три попытки связаться с девайсом, и если девайс не успел ответить - Хост отключается от шины.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А кварц на 8 Мгц есть? С конденсаторами 27 pf и резистором 1М, как в схеме на Olimex-овскую борду...

Да....кварц именно 8 MHz,а вот обвязки не было... (вот это я совсем уже :01:). Повесил 1М и 2х20пФ - все стало работать,как часы. До этого, когда девайсы на AVR-ках лепил на скорую руку и так катило 16МГц ставил просто на пины и работало... Спасибо за помощь, всем участникам!

Кстати, уже не первый раз встречаю схемное решение с 1М между ногами кварца, но ни как не могу понять тайного смысла этого резюка.Может кто объяснит? С кондерами-то все понятно, но 1М зачем? :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Повесил 1М и 2х20пФ - все стало работать,как часы. До этого, когда девайсы на AVR-ках лепил на скорую руку и так катило 16МГц ставил просто на пины и работало...
Оно может и в данном случае работать без обвязки, но тогда настройки PLL пришлось бы подобрать индивидуально, под уникальные параметры такой схемы включения кварца.

А раз настройки PLL берутся в готовом виде - то и обвязку кварца (и сам кварц), лучше всего повторить один-к-одному с проектом-исходником.

А также и напряжение питания процессора - именно 3.3v, а не, допустим, 3.0v или 2.8v.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дисконнект нормальный. У меня работает, только 100к вместо 36к. Вы его принудительно включите или проверьте в программе какой точно пин используется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попутно еще вопрос...сопротивление на DP 1,5к сигнализирует о том, что устройство готово принимать данные от хоста.

 

В хосте DP и DМ притянуты к земле резисторами 15К.

Присоединение к DP/DМ резистора 1,5К говорит о том, что на шине появилось устройство FULL/LOW Speed готовое работать.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чтобы не плодить тем: контроллер STM32F207, пытаюсь запустить USB FS (сигналы DM, DP, VBUS), VCP. USB инициализацию типа проходит, но USART1 не инициализирован, на DP и DM 4,5В. Попытка найти причину привела к открытию, что файл инициализации СОМ-порта usbd_cdc_vcp.c в проекте есть, но нигде нет ссылок на его функции. В доке CD00289278.pdf на библиотеку STM32_USB-Host-Device_Lib_V2.1.0, вообще описаны usbd_cdc_xxx_if (.c, .h): (i.e. usbd_cdc_vcp_if (.c, .h)) которых нет.

 

 

Если есть рабочий проект или опыт, пните меня в нужном направлении.

Изменено пользователем A.Lex

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если есть рабочий проект или опыт, пните меня в нужном направлении.

Лично использовал проект Mass-Storage для этого МК, взятый с сайта ST. Все работает. Только прошлось подправить GPIO, ибо их проект был рассчитан на МК в корпусе "X", а у меня был МК в корпусе "Y".

 

Вообще, подозревать выкладываемые на сайтах разработчиков примеры в неработоспособности надо в самую последнюю очередь. Если с готовым проектом что-то не так, то почти наверняка дело не в проекте, а в том, что вы упустили из виду какую-то мелкую особенность ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чтобы не плодить тем: контроллер STM32F207, пытаюсь запустить USB FS (сигналы DM, DP, VBUS), VCP. USB инициализацию типа проходит, но USART1 не инициализирован, на DP и DM 4,5В. Попытка найти причину привела к открытию, что файл инициализации СОМ-порта usbd_cdc_vcp.c в проекте есть, но нигде нет ссылок на его функции. В доке CD00289278.pdf на библиотеку STM32_USB-Host-Device_Lib_V2.1.0, вообще описаны usbd_cdc_xxx_if (.c, .h): (i.e. usbd_cdc_vcp_if (.c, .h)) которых нет.

 

 

Если есть рабочий проект или опыт, пните меня в нужном направлении.

Есть там ссылки. Непрямые. Там несколько структур с каллбэками, заполняются в USB_Init() в app.c в примере.

 

Как раз сейчас его усиленно копаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Примеры и документация кривые.... или это я тупой?

Документация - барахло. А примеры просто заумно-сложные, как впрочем и сам USB - движок на STM. Ну и сам стиль программирования мне не понравился ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Документация - барахло. А примеры просто заумно-сложные, как впрочем и сам USB - движок на STM. Ну и сам стиль программирования мне не понравился ...

 

А у кого простой движок?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А у кого простой движок?

Проще чем у AT89C5131 я еще нигде не видел.

Очень понравилось семейство LPC214x, а также АТМЕЛовские ARM7 и ARM9 с USB. Кроме того, и LPC и ATMEL предоставляют гораздо более и простые и понятные, чем у ST, примеры ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я запускал USB na stm32f103 за основу взят Кеил HIDUSB примеp. Для дебага я использовал Линух хост и hidtool утилиту из V-USB проэкта. Я переделал утилиту под свои задачи. Все работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...