|
STM32F429 и HAL. |
|
|
|
Jan 10 2016, 21:38
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 10-01-16
Пользователь №: 89 977

|
Всем привет. Пробую оживить плату с STM32F429 - на плате есть слот microSD, для начала хочу сделать простой картридер. Сгенерил проект с помощью CubeMX, но при подключении к USB ничего не происходит - ОС не видит подключения нового устройства. С STM32 и c ARM я дела почти не имел, поэтому знаний немного, читаю, разбираюсь.. Если правильно понял, HAL - это сравнительно сырой продукт, ошибки не редкость, в первую очередь надо смотреть настройки тактирования. Но файлов в проекте немало, кода много, что именно смотреть пока не понимаю.. Подскажите пожалуйста, с чего начать? З.Ы. Плата живая, демо-проекты от STM (мышь и виртуальный COM-порт) работают. Прикрепил скриншот настроек тактирования в проекте CubeMX. Сам проект - https://yadi.sk/d/VA__anyhmnjvL
|
|
|
|
|
 |
Ответов
(1 - 8)
|
Jan 11 2016, 10:17
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 10-01-16
Пользователь №: 89 977

|
Цитата(jcxz @ Jan 11 2016, 07:53)  С чтения даташитов на МК. Это понятно  Но хочется результат побыстрей получить, поэтому попросил помочь в направлении. Судя по схеме, МК тактируется кварцем на 25 МГц, проверил осциллографом - частота кварца такая же, то есть он работает. Значит ли это, что настройки тактирования заданы HAL'ом верно? Хотя наверно частично - что там приходит на USB непонятно, надо проверять?
|
|
|
|
|
Jan 11 2016, 12:37
|

Профессионал
    
Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877

|
Нет, вероятность ошибки с тактированием небольшая.
Вообще, операционка на ПК скажет "обнаружено устройство", даже если воткнуть обыкновенный резистор между D+ и питанием.
Отладчик есть? Пошагать, посмотреть, что инициализация USB нигде не вешается, ни в какие abort'ы не улетает. Пример под эту плату в исходниках - тоже полезное дело. Можно даже под другую (с аналогичным USB - все 4xx, 2xx, 105/107), но придётся чуть-чуть подумать и много почитать.
--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
|
|
|
|
|
Jan 11 2016, 16:14
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 10-01-16
Пользователь №: 89 977

|
Цитата(esaulenka @ Jan 11 2016, 15:37)  Отладчик есть? Пошагать, посмотреть, что инициализация USB нигде не вешается, ни в какие abort'ы не улетает. Пример под эту плату в исходниках - тоже полезное дело. Можно даже под другую (с аналогичным USB - все 4xx, 2xx, 105/107), но придётся чуть-чуть подумать и много почитать. Есть J-Link, прошел функции инициализации, в функции относящиеся к USB заходил, зависаний и ошибок нет, в итоге все приходит к бесконечному While(1) в main.c
|
|
|
|
|
Jan 11 2016, 19:12
|
Местный
  
Группа: Свой
Сообщений: 285
Регистрация: 5-11-05
Пользователь №: 10 491

|
Системную частоту можно вывести на специальный вывод (см. настройки клока в кубе). Но в целом куб - крайне глючная и ненадежная вещь. У меня были такие случаи, что он даже неправильно настраивал GPIO. Один раз после обновления куба перестал работать уже отлаженный код. В общем, я тоже хотел как побыстрее, но в результате пришлось таки читать доки (потеряв кучу времени на куб) Цитата(charkin @ Jan 11 2016, 19:14)  Есть J-Link, прошел функции инициализации, в функции относящиеся к USB заходил, зависаний и ошибок нет, в итоге все приходит к бесконечному While(1) в main.c Не исключено, что вы и сами должны что то написать  Например, в части контроллера ЖКИ куб сам делает только грубо говоря половину настроек (и ту криво  ), а вторую половину и исправления первой приходится писать самостоятельно.
|
|
|
|
|
Jan 11 2016, 19:27
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 10-01-16
Пользователь №: 89 977

|
Цитата(SpyBot @ Jan 11 2016, 22:12)  Системную частоту можно вывести на специальный вывод (см. настройки клока в кубе). Но в целом куб - крайне глючная и ненадежная вещь. У меня были такие случаи, что он даже неправильно настраивал GPIO. Один раз после обновления куба перестал работать уже отлаженный код. В общем, я тоже хотел как побыстрее, но в результате пришлось таки читать доки (потеряв кучу времени на куб) Не исключено, что вы и сами должны что то написать  Например, в части контроллера ЖКИ куб сам делает только грубо говоря половину настроек (и ту криво  ), а вторую половину и исправления первой приходится писать самостоятельно. До того, как получил эту плату, экспериментировал с отладочной платой STM32F4-Discovery, для нее тоже сгенерил код в Cube и все заработало сразу. Отличия в тактировании были только в том, что на Discovery стоит кварц на 8 МГц, а на этой плате - на 25 МГц. Сравниваю файлы в обоих проектах - разницы не вижу..
|
|
|
|
|
Jan 13 2016, 10:20
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 10-01-16
Пользователь №: 89 977

|
Когда генерил проект в Cube, частоту указал правильно - это видно и на скриншоте, в коде проверил, тоже ошибки нет.
Дело было в VBUS_Sense - перевел в Disable и Винда увидела устройство. Правда, кардридер так и не заработал, но это уже другая проблема..
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|