charkin 0 10 января, 2016 Опубликовано 10 января, 2016 · Жалоба Всем привет. Пробую оживить плату с STM32F429 - на плате есть слот microSD, для начала хочу сделать простой картридер. Сгенерил проект с помощью CubeMX, но при подключении к USB ничего не происходит - ОС не видит подключения нового устройства. С STM32 и c ARM я дела почти не имел, поэтому знаний немного, читаю, разбираюсь.. Если правильно понял, HAL - это сравнительно сырой продукт, ошибки не редкость, в первую очередь надо смотреть настройки тактирования. Но файлов в проекте немало, кода много, что именно смотреть пока не понимаю.. Подскажите пожалуйста, с чего начать? З.Ы. Плата живая, демо-проекты от STM (мышь и виртуальный COM-порт) работают. Прикрепил скриншот настроек тактирования в проекте CubeMX. Сам проект - https://yadi.sk/d/VA__anyhmnjvL Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 11 января, 2016 Опубликовано 11 января, 2016 · Жалоба Подскажите пожалуйста, с чего начать? С чтения даташитов на МК. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
charkin 0 11 января, 2016 Опубликовано 11 января, 2016 · Жалоба С чтения даташитов на МК. Это понятно :) Но хочется результат побыстрей получить, поэтому попросил помочь в направлении. Судя по схеме, МК тактируется кварцем на 25 МГц, проверил осциллографом - частота кварца такая же, то есть он работает. Значит ли это, что настройки тактирования заданы HAL'ом верно? Хотя наверно частично - что там приходит на USB непонятно, надо проверять? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 11 января, 2016 Опубликовано 11 января, 2016 · Жалоба Нет, вероятность ошибки с тактированием небольшая. Вообще, операционка на ПК скажет "обнаружено устройство", даже если воткнуть обыкновенный резистор между D+ и питанием. Отладчик есть? Пошагать, посмотреть, что инициализация USB нигде не вешается, ни в какие abort'ы не улетает. Пример под эту плату в исходниках - тоже полезное дело. Можно даже под другую (с аналогичным USB - все 4xx, 2xx, 105/107), но придётся чуть-чуть подумать и много почитать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
charkin 0 11 января, 2016 Опубликовано 11 января, 2016 · Жалоба Отладчик есть? Пошагать, посмотреть, что инициализация USB нигде не вешается, ни в какие abort'ы не улетает. Пример под эту плату в исходниках - тоже полезное дело. Можно даже под другую (с аналогичным USB - все 4xx, 2xx, 105/107), но придётся чуть-чуть подумать и много почитать. Есть J-Link, прошел функции инициализации, в функции относящиеся к USB заходил, зависаний и ошибок нет, в итоге все приходит к бесконечному While(1) в main.c Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SpyBot 0 11 января, 2016 Опубликовано 11 января, 2016 · Жалоба Системную частоту можно вывести на специальный вывод (см. настройки клока в кубе). Но в целом куб - крайне глючная и ненадежная вещь. У меня были такие случаи, что он даже неправильно настраивал GPIO. Один раз после обновления куба перестал работать уже отлаженный код. В общем, я тоже хотел как побыстрее, но в результате пришлось таки читать доки :) (потеряв кучу времени на куб) Есть J-Link, прошел функции инициализации, в функции относящиеся к USB заходил, зависаний и ошибок нет, в итоге все приходит к бесконечному While(1) в main.c Не исключено, что вы и сами должны что то написать :) Например, в части контроллера ЖКИ куб сам делает только грубо говоря половину настроек (и ту криво :) ), а вторую половину и исправления первой приходится писать самостоятельно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
charkin 0 11 января, 2016 Опубликовано 11 января, 2016 · Жалоба Системную частоту можно вывести на специальный вывод (см. настройки клока в кубе). Но в целом куб - крайне глючная и ненадежная вещь. У меня были такие случаи, что он даже неправильно настраивал GPIO. Один раз после обновления куба перестал работать уже отлаженный код. В общем, я тоже хотел как побыстрее, но в результате пришлось таки читать доки :) (потеряв кучу времени на куб) Не исключено, что вы и сами должны что то написать :) Например, в части контроллера ЖКИ куб сам делает только грубо говоря половину настроек (и ту криво :) ), а вторую половину и исправления первой приходится писать самостоятельно. До того, как получил эту плату, экспериментировал с отладочной платой STM32F4-Discovery, для нее тоже сгенерил код в Cube и все заработало сразу. Отличия в тактировании были только в том, что на Discovery стоит кварц на 8 МГц, а на этой плате - на 25 МГц. Сравниваю файлы в обоих проектах - разницы не вижу.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dac 0 12 января, 2016 Опубликовано 12 января, 2016 · Жалоба До того, как получил эту плату, экспериментировал с отладочной платой STM32F4-Discovery, для нее тоже сгенерил код в Cube и все заработало сразу. Отличия в тактировании были только в том, что на Discovery стоит кварц на 8 МГц, а на этой плате - на 25 МГц. Сравниваю файлы в обоих проектах - разницы не вижу.. в этом и проблема. ему же надо сказать что кварц на 25мгц, а не на 8, это где то в дефайнах определено Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
charkin 0 13 января, 2016 Опубликовано 13 января, 2016 · Жалоба Когда генерил проект в Cube, частоту указал правильно - это видно и на скриншоте, в коде проверил, тоже ошибки нет. Дело было в VBUS_Sense - перевел в Disable и Винда увидела устройство. Правда, кардридер так и не заработал, но это уже другая проблема.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться