Технический форум по робототехнике.
Radist_3W » 31 янв 2014, 23:22
Всем привет!
Прошу помощи у знатоков электронщиков-программистов!
Есть отладочная плата STM32F4 и отладочная платка с драйвером шаговика от того же STMicro - L6470. На сайте производителя есть библиотеки для работы, но они под STM32F100... К сожалению у меня нет достаточных знаний (точнее вообще нет:( ) в программировании. Подскажите пожалуйста, как переписать библиотеку с одного контроллера на другой? Работаю в IAR'e. Пытался хедарах проекта прописывать f4, вместо f1, изменял настройки препроцессора и линкера... Как следствие - куча ошибок, решить которые у меня не хватает знаний... Может быть у кого-то есть опыт работы с такими драйверами? Заранее благодарю!
Последний раз редактировалось
Radist_3W 01 фев 2014, 09:39, всего редактировалось 1 раз.
dccharacter » 01 фев 2014, 01:24
Если речь вот об этом "STM32F1xx motor control firmware library for the L6470 dSPIN IC", то это будет достаточно сложно, особенно без опыта. Вообще за что ненавижу СТМ-щиков, так это за их документацию и "библиотеки". Нифига толком не сделаешь без месяца траханья с их кодом.
Radist_3W » 01 фев 2014, 09:38
Да, об этой библиотеке. Не думал что так заморочено будет... Неужели эти семейства так сильно отличаются и не поддерживают друг друга,что столько маяты при переходе с одного на другое? Есть какие другие пути решения проблемы?
dccharacter » 01 фев 2014, 10:05
Либо изучай сам, либо нанимай кого-нить, либо ищи добрых людей
Мороки там много учитывая что твоего железа ни у кого нет
Если сам начнешь - ставь IAR Embedded ARM Workbench, открывай библиотеку, переназначай все дефайныс F1 на F4 и пытайся скомпилировать. Там куча ошибок посыпется, отлавливай по одной (меняй хедеры, приводи несоответствующие функции и т.д.
А, есть еще "более хороший" путь - забей на библиотеку и фигачь сам все без нее.
elmot » 01 фев 2014, 10:49
Семейства СТщных контроллеров отличаются друг от друга именно периферией, причем иногда весьма сильно. Пытаться просто заменять F1 на F4 - безблагодатное дело. Имеющиеся варианты:
- купить дешевую плату на F1xx (
В России или в
Китае), взять библиотеку как есть, а Discovеry использовать как программатор к ней.
- взять дискавери, ее стандартный пример для использования SPI и перетащить туда код из библиотеки.
- взять дискавери, ее стандартный пример для использования SPI, далее по даташиту драйвера сделать все, что надо.
dccharacter » 01 фев 2014, 20:28
Третий день сижу пытаюсь отпортировать пример для _того же самого микроконтроллера_ с одной платы (STM32F4_EVAL) на другую (STM32F4_DISCOVERY). Я бы этим СТМ-щикам ноги бы поотрывал...
Добавлено спустя 1 час 36 минут 24 секунды:
Уф, фсе, сделал. Сорри за оффтоп, но если кто будет заниматься портированием с EVAL на DISCOVERY, хитрость там в следующем - на ЕВАЛЕ стоит кварц 25 МГц, а на Дискавери - 8. Соответственно надо поменять значение HSE_VALUE (можно в настройках препроцессора сделать HSE_VALUE=8000000) и поменять значение мультипликатора PLL_M с 25 на 8.
Добавлено спустя 4 минуты 2 секунды:
Вот за что не люблю СТМ-щиков. Должна быть с экземплами всегда процедура накатывания на другие борды. типа "Пункт первый - откройте файл stm32f4xx_system.c и выставите значения, соответвуюшие вашей борде. Необходимо поменять: HSE_VALUE и PLL_M. Пункт второй - ..."
и т.д.
А они пишут библиотеки под одну конкретную конфигурацию. Т.е. стараются как бы под мног, но получается хреново.
Radist_3W » 02 фев 2014, 22:24
Спасибо ребят!
Буду пробовать предложенные вами варианты. Для начала попробую перетащить код из библиотеки в рабочий проект с SPI'ем для stm32f4. Достал платку с f1 контроллером... Но там какая-то бадяга=) Подключил к компу, прошил проект аля помигай диодами... Всё бы ничего, но решил передвинуть на столе чтоб поудобственней наблюдать за миганием... и чуть руку не обжог

Контроллер раскалился как кипятильник! Осмотрел плату, нигде видимой козы не видно... Включил, опять греется, мягко говоря... При этом прошивается, работает. Померил ток потребления, чуть не упал со стула - 850мА!!! Думал, прибор китайский глючит. Померил другим, более точным прибором - 830 мА! Зажал "резет", включил - то же самое... Что там может так есть??? Это ж в 3,5 раза больше чем по даташиту! В общем хрен знает что с этой платой... Завтра на работе под микроскопом посмотрю и буду пытаться в своей дыре найти этот камень, чтоб перепаять...
elmot » 02 фев 2014, 22:30
проверь стабилизатор на плате и напряжение питания МК. Питать такой мк можно напряжением не более 3.6В. Обычно ставят стаб 3.3. Если стаб закорочен(пробит), то на МК идет 5В и поведение контроллера непредсказуемо.