Программирование МК STM32. УРОК 16. HAL. ADC. Regular Channel

  Рет қаралды 27,294

narod stream

narod stream

Күн бұрын

Пікірлер: 47
@СРБКолодий
@СРБКолодий 7 жыл бұрын
Хорошие уроки! Благодарю! Когда первый раз изучаешь материал, скорость не нужна) Это не олимпиада, скорость потом нарабатывается. Нужна скорость - на сайте можно прочитать)
@ДимаПигарь-б4и
@ДимаПигарь-б4и 7 жыл бұрын
Подскажите пожалуйста как провести калибровку ацп?
@ButerbrodnyBaron
@ButerbrodnyBaron 7 жыл бұрын
с каждым упоминанием предела измерения АЦП предел уменьшается на 1)
@Avrora707
@Avrora707 2 жыл бұрын
sprintf может конвертировать ФЛОАТ в строку? Я пишу так: float f = 1.123456789; char c[50] = {}; //size of the number sprintf(c, "%g", f); Но после принта массив все равно остается пустой. Библиотека #include включена. МК - STM32F072
@DrargonsM
@DrargonsM 8 жыл бұрын
Лайк ! очень интересно!
@narodstream552
@narodstream552 8 жыл бұрын
Спасибо!
@ОлегСевастьянов-з8о
@ОлегСевастьянов-з8о 8 жыл бұрын
Спасибо за познавательные видео и продолжайте в том же духе.
@narodstream552
@narodstream552 8 жыл бұрын
Спасибо! Своей обратной связью Вы мне этот дух поднимаете!
@iVAtcg
@iVAtcg 7 жыл бұрын
Разве не так нужно: if (HAL_ADC_PollForConversion(&hadc1, 100) == HAL_OK) { // код }
@smidani8132
@smidani8132 2 жыл бұрын
я вот не пойму одно, всё настроил, но откуда напряжение на ноге изначально если я ещё ничего не подавал? STM32f4 похоже изначально настраивает её в высокий уровень, это нормально?
@ДмитрийТисов-ж6я
@ДмитрийТисов-ж6я 6 ай бұрын
Спасибо
@YuriyIY
@YuriyIY 8 жыл бұрын
А будет видео с регулярными каналами и ДМА? Ну или просто преобразование нескольких каналов и распихивание в разные переменные. :-) Хотя, у меня есть мысль использовать именно непрерывное преобразование и ДМА. Кстати, по опорной напруге. Там можно их две делать, минимальную и максимальную.
@narodstream552
@narodstream552 8 жыл бұрын
Конечно, будет. Уже готово по прерываниям в регулярном канале, но ещё не заливал, надо доработать его немного. А следующим пойдёт в рейс именно регулярный DMA, так что ждите.
@sergeydemchuk1039
@sergeydemchuk1039 4 жыл бұрын
Сделайте пожалуйста урок на Triple Interleaved mode с использованием DMA. Довольно сложно с этим всем разобраться самому. А вообще в идеале, что мне нужно: Triple Interleaved Mode, DMA и при этом сканирование 8-ми каналов. Это вообще возможно. Удачно получилось только реализовать поочередное сканирование 13-ти каналов АЦП в обычном режиме с использованием DMA. З.Ы. Если вопрос вас заинтересовал, возможно ли с вами связатсья по почте?
@Jensiru
@Jensiru 8 жыл бұрын
Для тех, кому лень или с телефона видео по АЦП по АВР ч.1 : kzbin.info/www/bejne/gIbcaad3n6epnsU
@iVAtcg
@iVAtcg 7 жыл бұрын
Разве не так нужно: if (HAL_ADC_PollForConversion(&hadc1, 100) == HAL_OK) { // код }
@patupin
@patupin 4 ай бұрын
так
@АлександрВасильев-ы1й2х
@АлександрВасильев-ы1й2х 5 жыл бұрын
Огромное Вам спасибо. Все видео получаются очень интересными и информативными.
@Евгенийджексон-ж5м
@Евгенийджексон-ж5м 7 жыл бұрын
при установке функции sprintf,не компилируется хотя подключил stdio.h.Вывожу данные через USART на экран ПК.
@rockykid3785
@rockykid3785 6 жыл бұрын
причёт тут stdio? вы путаете с printf
@ОлексійЮрченко-я8м
@ОлексійЮрченко-я8м 4 жыл бұрын
Огромное Вам спасибо.
@fanatnauki
@fanatnauki 6 жыл бұрын
Здравствуйте Narod Stream! Подскажите пожалуйста, где узнать максимальную частоту оцифровки ацп? У меня плата с stm32f767, частота ядра 216 МГц. Нашел в RM, что ацп висит на шине APB2, которая делит частоту пополам. Еще предделитель делит на 4, больше не получается. Выходит 216/2/4=27 Мгц. Правильно рассуждаю? yadi.sk/i/8Uanr9qOHCpuGg Делаю индукционный нагреватель на 300 кГц, хочу сделать фапч программно. Скорости большие, но хранить и передавать данные с ацп не надо, обрабатываются на лету. Так что теоретически должно хватить )))
@narodstream552
@narodstream552 6 жыл бұрын
Здравствуйте! Нет такой величины - максимальная частота оцифровки АЦП. Поэтому каждый понимает под этим какие-то свои величины. Конкретнее скажите Вам нужен сэмплрейтинг или реальная частота колебаний, которую Вы хотите измерить? Сэмплрейтинг зависит от того, какое разрешение АЦП Вы выставите, 8 бит, 12, 16 или ещё какую. мегабиты в секунду Вы в принципе нормально рассчитали. Поэтому получаем что частота сэмплирования с разрешением 8 бит (градаций будет от 0 до 255 единиц) будет где-то 4 мегабита. Чтобы нам измерить синусоиду, то нам как минимум надо 20 сэмплов на один период, чтобы у нас хоть что-то нарисовалось. При 8-битном разрешении мы соответственно получим 200 килогерц максимальную частоту, которую мы сможем измерить. При 12-битном - меньше, при 16-битном - 100 килогерц. Да я по-моему в каком-то уроке это говорил, когда свой самодельный осциллограф подключал на F746. Если хотите большие частоты, то используйте внешний АЦП и контроллер, у которого есть широкий аппаратный параллельный порт (на 32 ноги). Тогда будет нормально. Это я тоже теоретически, так как такой целью не задавался. Поэтому не знаю таких контроллеров и таких АЦП. Только знаю, что они есть.
@fanatnauki
@fanatnauki 6 жыл бұрын
А, дошло, делим еще на 8 (процессов делений отрезка, как Вы рассказывали в видео про avr, каждый расходует один такт), итого 168,7 КГц. Плюс еще время на конверсию. Не найду, сколько это, пишут 15 тактов. Это общее время или каждое из 8 штук?
@narodstream552
@narodstream552 6 жыл бұрын
Это общее время, вернее не время, а количество тактов. как правило в Cube MX оно написано. Мне удалось где-то 100 герц колебаний замерить с разрешением 8 бит.
@TheVovanin
@TheVovanin 5 жыл бұрын
Здравствуйте, давно смотрю ваши ролики, они стали для меня очень полезными! Хотел бы узнать возможно ли как то передать сигнал с платы по USB но без USART ? Моя задача считать аналоговый сигнал и передать его на компьютер. Для начала хотелось бы просто посмотреть на форму сигнала. Можно ли это как то реализовать? Спасибо большое!
@narodstream552
@narodstream552 5 жыл бұрын
Как правило по USB аналоговые сигналы не передаются. По данной шине передаётся информация в виде последовательного кода.
@Rus422
@Rus422 5 жыл бұрын
Конечно, можно. Данные АЦП после преобразования передаются по USB через VCP. Принимаете эти данные и визуализируете.
@ПетрДолгих-ы9е
@ПетрДолгих-ы9е 7 жыл бұрын
Можно задать опорное напряжение от внешнего источника на ногу Vref согласно datasheet на конкретный контроллер. Младший разряд в цифровых измерительных системах всегда "прыгает" на +/-1 значение (деление) в лучшем случае, при отсутствии шумов от входного сигнала и от самого АЦП.
@narodstream552
@narodstream552 7 жыл бұрын
Петр Долгих в принципе можно. Также можно и отфильтровать прыжки. Я показал вообще принцип программирования АЦП с помощью HAL, а дальше уже вопрос фантазии.
@ПетрДолгих-ы9е
@ПетрДолгих-ы9е 7 жыл бұрын
narod stream Хотелось как-то вставить свои пять копеек и дополнить Ваш труд.
@Олег-ю4ш3й
@Олег-ю4ш3й 7 жыл бұрын
Петр Долгих а как кой смысл?, Как я понял из datasheet, опорное напряжение все равно больше питания микроконтроллера нельзя подать(3,6V). В дискавери Vref на Vdd посажен и все...
@Jensiru
@Jensiru 8 жыл бұрын
Не пойму, откуда берутся эти 4096 ? u = ((float)HAL_ADC_GetValue(&hadc1))*3/4096 Как быть если 5 вольт к примеру подавать? Или больше? Т.е. простенький вольтметр чтобы был. Делитель из резисторов надо ставить? Урок по вотчдогу будет?
@narodstream552
@narodstream552 8 жыл бұрын
1. Данная цифра из даташита. Если смотреть все уроки по АЦП, то то я где-то я делаю экскурс по даташиту, там есть формула расчета. Только там она несколько наоборот. Получается неизвестная величина в теле уравнения. Переворачиваем уравнение и получаем эту формулу. Вообще-то эта цифра очевидна, т.к. АЦП у нас 12-битный, 12 включенных бит это - FFF, т.е. 4095, а 0 мы используем тоже. Имеются споры насчет того, все таки 4096 или 4095. Вообще в даташите стоит 4095, но с 4096 у меня почему-то получилось точнее. 2. Если 5 вольт и больше, то тут только 1 вариант - собрать делитель на резизторах с тем учетом, чтобы на выходе делителя не превышалось 3 вольта, а 3 вольта - это максимальное опорное напряжение АЦП у нашего МК. А вот если мы хотим очень точно измерить малые напряжения, то опорное напряжение можно понижать, но тогда надо будет использовать внешнее опорное напряжение. Как-то так. 3. Урок по режимам низкого энергопотребления пока не стоит на повестке дня. Пока кроме него очень много разработанных, но не опубликованных проектов.
@Jensiru
@Jensiru 8 жыл бұрын
Странно, может я чего пропустил про 4096 в уроках....Спасибо большое за развёрнутый ответ:) Кстати, мне таки удалось запустить ILI9341 по SPI1. Дело было в двух лишних строках при отправке команд и данных. А урока не будет по LCD 2002 с кнопками? ( www.dfrobot.com/wiki/images/thumb/1/1e/Arduino_Shield8.png/600px-Arduino_Shield8.png ) Интересно было бы глянуть реализацию меню на нём или ILI9341. Меню, подменю...
@narodstream552
@narodstream552 8 жыл бұрын
Отлично! Дисплей, это хорошо. Пока не до кнопок. Вообще собирался. Там в принципе ничего сложного, я в обзоре физику этого дисплея с кнопками объяснял, там через АЦП заводится всё. Как будет время, замучу занятие. Я думаю, будет интересно
@Олег-ю4ш3й
@Олег-ю4ш3й 7 жыл бұрын
Проблема с этим дисплеем, что кнопки на 5V работают, а у stm32 ацп 3.6V максимум и напрямую кнопки не подрубишь(делитель нужно городить)
@motoday3580
@motoday3580 5 жыл бұрын
Добрый день! Просьба , почему бы Вам не писать коментарии по каждой строке кода , в каждом примере. Я думаю для новичков это будет большым плюсом ..смотря уроки иногда тяжело разобраться в коде..
@narodstream552
@narodstream552 5 жыл бұрын
А ещё круче после каждой строчки кода было бы сплясать чечётку.
@motoday3580
@motoday3580 5 жыл бұрын
@@narodstream552 сплясать не нужно ... а хорошо было коментов больше... это все уроки.
@narodstream552
@narodstream552 5 жыл бұрын
Я больше сделаю - вместо комментариев я вживую объясню. А комментарии любой для себя напишет сам, как ему нравится. Зачем нам тратить драгоценное время на это. А вообще лучший комментарий - это грамотно и читабельно написанный код.
@motoday3580
@motoday3580 5 жыл бұрын
@@narodstream552 Согласен .. но когда открываешь код и смотришь урок, не очень удобно . Собственно в этом уроке по adc вы дали очень понятные коментарии все сразу понятно . Я по этому и затронул эту тему , так в остальных уроках на мой взглят этого нехватает.
@narodstream552
@narodstream552 5 жыл бұрын
Я смотрю, Вы всерьёз занялись моим воспитанием. Я постараюсь, конечно, последовать Вашим всем советам, но сейчас, простите, дела зовут, работаю над очень нужной видеодорожкой.
@bobahkz
@bobahkz 7 жыл бұрын
Напряжение 3.3 вольта! Делайте уроки покороче, 33 минуты для 7 строчек кода это ОЧЕНЬ долго. И рассказываете как не уверенно, как будь-то разбираетесь с STM32 прям во время записи видио.
@Сергей-у6и7б
@Сергей-у6и7б 7 жыл бұрын
По поводу длительности согласен, но зато все понятно и разжевано! Я смотрю на скорости 1.5, в итоге все замечательно!
From Small To Giant Pop Corn #katebrush #funny #shorts
00:17
Kate Brush
Рет қаралды 71 МЛН
Spongebob ate Michael Jackson 😱 #meme #spongebob #gmod
00:14
Mr. LoLo
Рет қаралды 10 МЛН
Почему «Друзья» стали культовыми
18:29
Кинопоиск
Рет қаралды 122 М.
STM32. ADC & DAC
52:30
ФРТК МФТИ
Рет қаралды 6 М.