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

STM32 для чайника


ART_ME

Рекомендуемые сообщения

DMA вещь конечно нужная, но писать код можно и без DMA. 

Все зависит от задач. 

Простые для входа в тему прямого доступа к памяти не требуют. 

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

戦う前に相手のベルトの色に注目

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

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

однако научиться ее использовать, это все равно что завести мотор у бензопилы. А так то да, можно и не заводя пилить ))

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Не преувеличивайте. 

Есть куча МК без ПДП с достаточно широким кругом эффективно выполняемых задач. 

Если диаграмма работы строится лишь на цепочке синхронизированных таймеров и данных для буферизации относительно немного, то и ПДП ни разу не облокотился. Какая нибудь цифровая следящая система на один-два канала совершенно не требует прямого доступа в память. 

А вот прерывания требует любая задача реального времени. 

戦う前に相手のベルトの色に注目

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

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

26 минут назад, mail_robot сказал:

А так то да, можно и не заводя пилить ))

Т.е. Вы считаете, что раньше на процах без DMA прогали - равносильно пилению незаведённой бензопилой ? Ерунду не говорите.
Юзать DMA там, где элементарно решается задача и без него - как закрепить маленькую картинку на стене гвоздём "соткой". И потом ходить и нахваливать себя: "Какой я молодец, сумел забить в стену здоровенный гвоздь" :)

На моей практике, DMA понадобился всего-лишь 1 раз, когда была задача передавать большие пакеты данных по UART со скоростью 1 МБод. Вот там да, DMA был оправдан на все 100%.
И то, что я его (DMA) не тыкаю во все подряд дыры, не говорит ничего об ущербности моего приложения. А вот те, кто суёт его где попало, а потом с гордостью твердит "Я крутой, сделал мигание светодиодом на DMA", у меня лично вызывает только улыбку.
 

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

одно дело уметь и пользоваться разумно, другое дело вообще не уметь

вы какие то тяжелые...

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

Никто не утверждает, что ДМА не нужно пользоваться, но так же нужно избегать эйфории по этому поводу. 

В АРМах ДМА не использует отдельную шину доступа, поэтому, загрузив его по самый небалуй быстрыми потоками данных, можно тормознуть ядро так, что задачи суперлупа станут критической секцией... 

 

戦う前に相手のベルトの色に注目

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

Всем привет! У меня вопрос о SDIO / FATFS. Какая максимальная скорость чтения/записи у Вас получалась? у меня запись около 250 килобайт/сек.  Хотя SD флешка в обычном картридоре записывает 3,5-4 Мбайт/сек. Это стмовское аппаратное ограничение?

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

    Есть несколько вопросов: 1) Вот по регистрам я настроил инжекторные каналы с непрерывным преобразованием регистрами, сидел правда два дня разбирался с АЦП, но суть в том выбрал в регистре JL количество инжекторных каналов двух каналов то есть (0<<JL1) |(1<<JL0) и выбор двух инжекторных каналов (1<<JSQ3) |(1<<JSQ4), но вот не могу понять а сами инжекторные каналы сидят на каких-то определенных входах АЦП, или как их назначить?

Screenshot_1687.jpg.16364682ef521586737985a1e3af5640.jpg

    Допустим мне нужно на аналоговый вход 0 назначить его как инжекторный вход 1, что-то не пойму до конца. Второе вот допустим используем канал ДМА при использовании регулярных каналов, ну вот хорошо ДМА в регистре я включу не вопрос, я так понял он будет автоматом забрасывать данные с АЦП сразу в ОЗУ, а как мне тогда с ОЗУ с помощью этого же ДМА отправить данные сразу в ЮАРТ? ДМА же куда-то кидает эти данные в какие -то адреса ОЗУ и как узнать в какие чтобы с этих адресов данные кидать в ЮАРТ, я так понимаю просто в регистре для АЦП включаем ДМА, а далее как обычно в какую-то переменную записываем регистр данных регулярных каналов, и эти переменные выводим в ЮРТ, а ДМА автоматом делает свое дело? Третий вопрос, как я понял что по кубу что по даташиту что в STM32F100-серии имеется два АЦП, тогда встатет вопрос, а каждый ли канал имеет 4 инжекторных входа, или 4 инжекторных только на одном из АЦП сидит, или это общие 4 инжекторных канала для двух АЦП, да и написано что эти АЦП 16 канальные, а по сути то у нас на проце и на плате всего и в кубе показывает 10 АЦП входов, как так?

Можно ли использовать ДМА с инжекторными каналами, и даст ли это что-то?

     И еще как я понимаю инжекторные каналы допустим я 2 штуки беру, будут быстрее передавать данные в переменную нежели использование регулярных каналов с ДМА блоком, если у процессора одна  задача проводить измерения по двум каналам АЦП и выводить данные в ЮАРТ, так как где-то писали что ДМА может использовать только до 50% процессора, а с инжекторными каналами нам не нужен ДМА значить мы используем всю мощь проца? А если кроме этой задачи нужно проводить еще что-то допустим какие - то вычисления процом, то есть при нагрузке, тогда выгоднее использование регулярных каналов с ДМА, и оно получится быстрее?

    А и вот мне интересно cube конфигурацию свою делает как я понял со своими функциями и библиотеками( в codevision там хоть конфигурация по регистрам идет, очень удобно, хотя и регистры ж там 8-ми битные), так вот получается что эта конфигурация не универсальна, не все же компиляторы могут работать  с тем что конфигурирует cube, вот допустим я раньше делал для удобства иногда использовал ардуино ИДЕ(точнее его бибилиотеки), а все остальное конфигурировал с помощью регистров, так как бибилиотек в ардуино море и очень удобных, в отличии от того же codevision, для STM тоже уже есть поддержка в ардуино ИДЕ, так вот поэтому и думаю что регистрами всю конфигурацию делать, это более универсальный способ для разных компиляторов, да и по скорости вроде же как прямая установка регистров дает более быстрое обрабатывание данных, нежели всякие функции или библиотеки, или я не прав? И вообще мне интересно вот разработчики, они что больше используют для STM куб или регистрами задают, и как универсальние и лучше будет, и кто что использует куб или регистры?

Изменено пользователем Электронщик
Ссылка на комментарий
Поделиться на другие сайты

Еще интересует прямое управление регистрами в Arduino IDE, когда прописываю прямое управление регистрами для STM32F100C8, ругается что не объявлено это для STM, но для AVR прямое управление регистрами в Arduino IDE работает без проблем, может нужно какую-нить библиотеку прицепить, подскажите пожалуйста? 

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

инжектированным может быть любой канал. Это просто логика работы. Она для каждого канала может быть назначена индивидуально, только с ограничением - не более 4-х инжектированных каналов на группу.

4 часа назад, Электронщик сказал:

ДМА же куда-то кидает эти данные в какие -то адреса ОЗУ и как узнать в какие

ДМА кидает не просто в ОЗУ, а в массив назначенный вами (по указателю), тот же самый массив можно выкинуть и в уарт. Адрес знать вовсе не обязательно.

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

5 часов назад, Электронщик сказал:

аписано что эти АЦП 16 канальные, а по сути то у нас на проце и на плате всего и в кубе показывает 10 АЦП входов, как так?

просто ног не на все хватает. В 100-лапых корпусах эти АЦП будут иметь все 16 полноценных входов, за исключением двух, задействованных на измерение внутренних датчиков.

5 часов назад, Электронщик сказал:

Можно ли использовать ДМА с инжекторными каналами, и даст ли это что-то?

можно. Ничего не даст. Данные инжектированного канала хранятся в отдельном регистре, пересылать эти данные куда то еще смысла никакого нет.

5 часов назад, Электронщик сказал:

инжекторные каналы  будут быстрее передавать данные в переменную нежели использование регулярных каналов с ДМА блоком

нет. ДМА делает пересылку данных как только они готовы. А инжектрированные придется ждать поллингом или прерыванием

5 часов назад, Электронщик сказал:

А если кроме этой задачи нужно проводить еще что-то допустим какие - то вычисления процом

тогда надо думать как обеспечить диспетчеризацию ресурсов. Есть два варианта - более тонкий ручками и более простой - использованием ОС

5 часов назад, Электронщик сказал:

не все же компиляторы могут работать  с тем что конфигурирует cube

все. Только куб генерирует файлы проекта не для всех сред. Для кокоса к примеру придется немало подвигать мышкой и почирикать ручками, а вот кейл и иар поймут все в три-пятнадцать.

5 часов назад, Электронщик сказал:

регистрами всю конфигурацию делать, это более универсальный способ для разных компиляторов, да и по скорости вроде же как прямая установка регистров дает более быстрое обрабатывание данных

более универсальный способ - использование HAL или SPL, кому что больше нравится

5 часов назад, Электронщик сказал:

они что больше используют для STM куб или регистрами задают

куб это не язык и не метод, это просто конфигуратор. Формирует файлы проекта он на основе библиотек HAL, которые на сегодняшний день единственные поддерживаемые производителем официально. SPL больше не поддерживается, но вполне пригоден для любого уровня кодинга. HAL хорошо портируется на разные семейства STM вплоть до простого копипаста, но более ресурсоемок (если просто сравнивать. В абсолютных величинах это будет 1...3%), самодокументируемый и легко читаемый. Чем пользоваться конкретно - решает только сам программист.

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

Цитата

инжектированным может быть любой канал. Это просто логика работы. Она для каждого канала может быть назначена индивидуально, только с ограничением - не более 4-х инжектированных каналов на группу.

То есть по сути на данном камне два АЦП, значить можем использовать до 8 инжекторных каналов?

Цитата

ДМА кидает не просто в ОЗУ, а в массив назначенный вами (по указателю), тот же самый массив можно выкинуть и в уарт. Адрес знать вовсе не обязательно.

Спасибо это попонятнее стало

Цитата

. Данные инжектированного канала хранятся в отдельном регистре

Это я знаю, просто думал может быстрее как - то будет передаваться в обход процессора

 

51 минуту назад, mail_robot сказал:

все. Только куб генерирует файлы проекта не для всех сред. Для кокоса к примеру придется немало подвигать мышкой и почирикать ручками, а вот кейл и иар поймут все в три-пятнадцать.

Только вот IAR то я поставил так он же платный, на 30 дней где-то я читал, и вроде какое - то ограничение на размер кода?

Цитата

более универсальный способ - использование HAL или SPL, кому что больше нравится

Это я уже понял что гораздо быстрее, нежели 16-битные регистры все настраивать

Но думаю стоит ли изучать регистры? Так на АЦП и USART пока изучил, и то кучу времени убил

55 минут назад, mail_robot сказал:

куб это не язык и не метод, это просто конфигуратор. Формирует файлы проекта он на основе библиотек HAL, которые на сегодняшний день единственные поддерживаемые производителем официально.

Это я читал, и знаю что это конфигуратор, просто на полное изучение и работы в кубе и к тому же с разборкой по регистрам уйма времени убивается, поэтому и думал узнать разработчики на чем больше сидят на регистрах или на кубе с HAL но погуглив выяснил что большинство на кубе с HAL сидят

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

2 минуты назад, Электронщик сказал:

Только вот IAR то я поставил так он же платный, на 30 дней где-то я читал, и вроде какое - то ограничение на размер кода?

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

3 минуты назад, Электронщик сказал:

Но думаю стоит ли изучать регистры?

ознакомиться с ними всяко стоит. Даже если использовать HAL

4 минуты назад, Электронщик сказал:

погуглив выяснил что большинство на кубе с HAL сидят

и правильно делают. Но это чисто мое мнение

На счет времени. По началу его всегда уходит много, но потратить его придется. Потом будет проще. Намного проще

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

Ох и IAR куда он Hex комплит не известно, в настройках все стоит правильно, все остальные файлы с разным расширением делаются, а в папке Exe пусто

 

 

 

 

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

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

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

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

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

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

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