Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F429 и HAL.
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
charkin
Всем привет.
Пробую оживить плату с STM32F429 - на плате есть слот microSD, для начала хочу сделать простой картридер.
Сгенерил проект с помощью CubeMX, но при подключении к USB ничего не происходит - ОС не видит подключения нового устройства.
С STM32 и c ARM я дела почти не имел, поэтому знаний немного, читаю, разбираюсь.. Если правильно понял, HAL - это сравнительно сырой
продукт, ошибки не редкость, в первую очередь надо смотреть настройки тактирования. Но файлов в проекте немало, кода много, что именно
смотреть пока не понимаю..

Подскажите пожалуйста, с чего начать?

З.Ы. Плата живая, демо-проекты от STM (мышь и виртуальный COM-порт) работают.
Прикрепил скриншот настроек тактирования в проекте CubeMX.
Сам проект - https://yadi.sk/d/VA__anyhmnjvL


Нажмите для просмотра прикрепленного файла
jcxz
Цитата(charkin @ Jan 11 2016, 03:38) *
Подскажите пожалуйста, с чего начать?

С чтения даташитов на МК.
charkin
Цитата(jcxz @ Jan 11 2016, 07:53) *
С чтения даташитов на МК.


Это понятно sm.gif Но хочется результат побыстрей получить, поэтому попросил помочь в направлении.

Судя по схеме, МК тактируется кварцем на 25 МГц, проверил осциллографом - частота кварца такая же, то есть он работает.
Значит ли это, что настройки тактирования заданы HAL'ом верно? Хотя наверно частично - что там приходит на USB непонятно,
надо проверять?
esaulenka
Нет, вероятность ошибки с тактированием небольшая.

Вообще, операционка на ПК скажет "обнаружено устройство", даже если воткнуть обыкновенный резистор между D+ и питанием.

Отладчик есть? Пошагать, посмотреть, что инициализация USB нигде не вешается, ни в какие abort'ы не улетает.
Пример под эту плату в исходниках - тоже полезное дело. Можно даже под другую (с аналогичным USB - все 4xx, 2xx, 105/107), но придётся чуть-чуть подумать и много почитать.
charkin
Цитата(esaulenka @ Jan 11 2016, 15:37) *
Отладчик есть? Пошагать, посмотреть, что инициализация USB нигде не вешается, ни в какие abort'ы не улетает.
Пример под эту плату в исходниках - тоже полезное дело. Можно даже под другую (с аналогичным USB - все 4xx, 2xx, 105/107), но придётся чуть-чуть подумать и много почитать.


Есть J-Link, прошел функции инициализации, в функции относящиеся к USB заходил, зависаний и ошибок нет, в итоге все приходит к бесконечному While(1) в main.c
SpyBot
Системную частоту можно вывести на специальный вывод (см. настройки клока в кубе).
Но в целом куб - крайне глючная и ненадежная вещь. У меня были такие случаи, что он даже неправильно настраивал GPIO. Один раз после обновления куба перестал работать уже отлаженный код.
В общем, я тоже хотел как побыстрее, но в результате пришлось таки читать доки sm.gif
(потеряв кучу времени на куб)

Цитата(charkin @ Jan 11 2016, 19:14) *
Есть J-Link, прошел функции инициализации, в функции относящиеся к USB заходил, зависаний и ошибок нет, в итоге все приходит к бесконечному While(1) в main.c

Не исключено, что вы и сами должны что то написать sm.gif Например, в части контроллера ЖКИ куб сам делает только грубо говоря половину настроек (и ту криво sm.gif ), а вторую половину и исправления первой приходится писать самостоятельно.
charkin
Цитата(SpyBot @ Jan 11 2016, 22:12) *
Системную частоту можно вывести на специальный вывод (см. настройки клока в кубе).
Но в целом куб - крайне глючная и ненадежная вещь. У меня были такие случаи, что он даже неправильно настраивал GPIO. Один раз после обновления куба перестал работать уже отлаженный код.
В общем, я тоже хотел как побыстрее, но в результате пришлось таки читать доки sm.gif
(потеряв кучу времени на куб)


Не исключено, что вы и сами должны что то написать sm.gif Например, в части контроллера ЖКИ куб сам делает только грубо говоря половину настроек (и ту криво sm.gif ), а вторую половину и исправления первой приходится писать самостоятельно.



До того, как получил эту плату, экспериментировал с отладочной платой STM32F4-Discovery, для нее тоже сгенерил код в Cube и все заработало сразу. Отличия в тактировании были только в том, что на Discovery стоит кварц на 8 МГц, а на этой плате - на 25 МГц. Сравниваю файлы в обоих проектах - разницы не вижу..
dac
QUOTE (charkin @ Jan 12 2016, 01:27) *
До того, как получил эту плату, экспериментировал с отладочной платой STM32F4-Discovery, для нее тоже сгенерил код в Cube и все заработало сразу. Отличия в тактировании были только в том, что на Discovery стоит кварц на 8 МГц, а на этой плате - на 25 МГц. Сравниваю файлы в обоих проектах - разницы не вижу..

в этом и проблема. ему же надо сказать что кварц на 25мгц, а не на 8, это где то в дефайнах определено
charkin
Когда генерил проект в Cube, частоту указал правильно - это видно и на скриншоте, в коде проверил, тоже ошибки нет.

Дело было в VBUS_Sense - перевел в Disable и Винда увидела устройство. Правда, кардридер так и не заработал, но это уже другая проблема..
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.