реклама на сайте
подробности

 
 
> STM32F429 и HAL.
charkin
сообщение Jan 10 2016, 21:38
Сообщение #1


Участник
*

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



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

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

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


Прикрепленное изображение
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 8)
jcxz
сообщение Jan 11 2016, 04:53
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



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

С чтения даташитов на МК.
Go to the top of the page
 
+Quote Post
charkin
сообщение Jan 11 2016, 10:17
Сообщение #3


Участник
*

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



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


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

Судя по схеме, МК тактируется кварцем на 25 МГц, проверил осциллографом - частота кварца такая же, то есть он работает.
Значит ли это, что настройки тактирования заданы HAL'ом верно? Хотя наверно частично - что там приходит на USB непонятно,
надо проверять?
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Jan 11 2016, 12:37
Сообщение #4


Профессионал
*****

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



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

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

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


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
charkin
сообщение Jan 11 2016, 16:14
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
SpyBot
сообщение Jan 11 2016, 19:12
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 285
Регистрация: 5-11-05
Пользователь №: 10 491



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

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

Не исключено, что вы и сами должны что то написать sm.gif Например, в части контроллера ЖКИ куб сам делает только грубо говоря половину настроек (и ту криво sm.gif ), а вторую половину и исправления первой приходится писать самостоятельно.
Go to the top of the page
 
+Quote Post
charkin
сообщение Jan 11 2016, 19:27
Сообщение #7


Участник
*

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



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


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



До того, как получил эту плату, экспериментировал с отладочной платой STM32F4-Discovery, для нее тоже сгенерил код в Cube и все заработало сразу. Отличия в тактировании были только в том, что на Discovery стоит кварц на 8 МГц, а на этой плате - на 25 МГц. Сравниваю файлы в обоих проектах - разницы не вижу..
Go to the top of the page
 
+Quote Post
dac
сообщение Jan 12 2016, 18:24
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 600
Регистрация: 27-05-05
Пользователь №: 5 482



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

в этом и проблема. ему же надо сказать что кварц на 25мгц, а не на 8, это где то в дефайнах определено
Go to the top of the page
 
+Quote Post
charkin
сообщение Jan 13 2016, 10:20
Сообщение #9


Участник
*

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



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

Дело было в VBUS_Sense - перевел в Disable и Винда увидела устройство. Правда, кардридер так и не заработал, но это уже другая проблема..
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 16:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01412 секунд с 7
ELECTRONIX ©2004-2016