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

STM32F429 и HAL.

Всем привет.

Пробую оживить плату с STM32F429 - на плате есть слот microSD, для начала хочу сделать простой картридер.

Сгенерил проект с помощью CubeMX, но при подключении к USB ничего не происходит - ОС не видит подключения нового устройства.

С STM32 и c ARM я дела почти не имел, поэтому знаний немного, читаю, разбираюсь.. Если правильно понял, HAL - это сравнительно сырой

продукт, ошибки не редкость, в первую очередь надо смотреть настройки тактирования. Но файлов в проекте немало, кода много, что именно

смотреть пока не понимаю..

 

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

 

З.Ы. Плата живая, демо-проекты от STM (мышь и виртуальный COM-порт) работают.

Прикрепил скриншот настроек тактирования в проекте CubeMX.

Сам проект - https://yadi.sk/d/VA__anyhmnjvL

 

 

post-89977-1452461708_thumb.png

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


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

С чтения даташитов на МК.

 

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

 

Судя по схеме, МК тактируется кварцем на 25 МГц, проверил осциллографом - частота кварца такая же, то есть он работает.

Значит ли это, что настройки тактирования заданы HAL'ом верно? Хотя наверно частично - что там приходит на USB непонятно,

надо проверять?

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


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

Нет, вероятность ошибки с тактированием небольшая.

 

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

 

Отладчик есть? Пошагать, посмотреть, что инициализация USB нигде не вешается, ни в какие abort'ы не улетает.

Пример под эту плату в исходниках - тоже полезное дело. Можно даже под другую (с аналогичным USB - все 4xx, 2xx, 105/107), но придётся чуть-чуть подумать и много почитать.

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


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

Отладчик есть? Пошагать, посмотреть, что инициализация USB нигде не вешается, ни в какие abort'ы не улетает.

Пример под эту плату в исходниках - тоже полезное дело. Можно даже под другую (с аналогичным USB - все 4xx, 2xx, 105/107), но придётся чуть-чуть подумать и много почитать.

 

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

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


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

Системную частоту можно вывести на специальный вывод (см. настройки клока в кубе).

Но в целом куб - крайне глючная и ненадежная вещь. У меня были такие случаи, что он даже неправильно настраивал GPIO. Один раз после обновления куба перестал работать уже отлаженный код.

В общем, я тоже хотел как побыстрее, но в результате пришлось таки читать доки :)

(потеряв кучу времени на куб)

 

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

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

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


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

Системную частоту можно вывести на специальный вывод (см. настройки клока в кубе).

Но в целом куб - крайне глючная и ненадежная вещь. У меня были такие случаи, что он даже неправильно настраивал GPIO. Один раз после обновления куба перестал работать уже отлаженный код.

В общем, я тоже хотел как побыстрее, но в результате пришлось таки читать доки :)

(потеряв кучу времени на куб)

 

 

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

 

 

До того, как получил эту плату, экспериментировал с отладочной платой STM32F4-Discovery, для нее тоже сгенерил код в Cube и все заработало сразу. Отличия в тактировании были только в том, что на Discovery стоит кварц на 8 МГц, а на этой плате - на 25 МГц. Сравниваю файлы в обоих проектах - разницы не вижу..

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


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

До того, как получил эту плату, экспериментировал с отладочной платой STM32F4-Discovery, для нее тоже сгенерил код в Cube и все заработало сразу. Отличия в тактировании были только в том, что на Discovery стоит кварц на 8 МГц, а на этой плате - на 25 МГц. Сравниваю файлы в обоих проектах - разницы не вижу..

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

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


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

Когда генерил проект в Cube, частоту указал правильно - это видно и на скриншоте, в коде проверил, тоже ошибки нет.

 

Дело было в VBUS_Sense - перевел в Disable и Винда увидела устройство. Правда, кардридер так и не заработал, но это уже другая проблема..

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


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

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

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

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

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

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

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

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

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

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