Заголовок сообщения: Преобразование шим в напряжение
Добавлено: Ср дек 07, 2022 03:09:31
Родился
Зарегистрирован: Ср май 05, 2021 00:34:11 Сообщений: 17
Рейтинг сообщения:0
Здравствуйте. Дано: шим сигнал в 1КГц, амплитуда которого может меняться от 0 до 12В, коэффициэнт заполнения может меняться от 10% до 90%. Есть желание считывать амплитуду шим сигнала с помощью raspbery pi. Можно подключить источник сигнала к АЦП и выполнять сотни операций сэмплирования, чтобы поймать максимальное значение. Но возникла идея преобразовать шим сигнал в аналоговый и измерять его. Амплитуда может меняться, ее нужно измерить. Коэффициент заполнения тоже может меняться, но его мы знаем. Если я правильно понимаю, то в случае 12в и заполнении 50% с помощью фильтров можно получить 6в постоянного напряжения. При амплитуде 9в и коэффициенте заполнения 30%, мы получим 3в постоянного напряжения. Т.е. амплитуда будет считаться по формуле: выходное напряжение / коэффициент заполнения. Это напряжение можно через АЦП получить на raspberri pi/ Цель мероприятия - избавиться от микроконтроллера, который на данный момент выполняет эту работу и передает результат на raspberry. Возможно ли реализовать такую идею или она глуповата?)
АЦП по любому нужно задействовать, а значит гораздо проще синхронизировать АЦП с сигналом, измеряя сигнал в высоком уровне. То есть потребуется только компаратор в цепи синхронизации.
в случае 12в и заполнении 50% с помощью фильтров можно получить 6в постоянного напряжения. При амплитуде 9в и коэффициенте заполнения 30%, мы получим 3в постоянного напряжения.
похоже, что оба этих параметра могут меняться независимо. Хотел бы я знать, что это за девайс такой, и как его разработчики планируют передавать информацию коэффициентом заполнения при нулевой амплитуде. Ну и, конечно, ТС должен будет, если послушаться Крама и поставить компаратор (даже с плавающим порогом), соображать, как ловить нулевой уровень, когда компаратор будет или молчать, или шуметь. Так-то достаточно просто найти максимум напряжения за время, несколько превышающее 1 мс. То есть, скажем, тупо каждые 50 мкс (для ШИМ от 10%) складывать отсчёты в кольцевой буфер длиной 25 ячеек и брать максимум.
_________________ Морд - ни лап. Мат, око и дар. А колом? Массам кот или торт? Тротил и ток массам!
Последний раз редактировалось mickbell Ср дек 07, 2022 09:06:04, всего редактировалось 1 раз.
Компания MEAN WELL пополнила ассортимент своей широкой линейки светодиодных драйверов новым семейством XLC для внутреннего освещения. Главное отличие – поддержка широкого спектра проводных и беспроводных технологий диммирования. Новинки представлены в MEANWELL.market моделями с мощностями 25 Вт, 40 Вт и 60 Вт. В линейке есть модели, работающие как в режиме стабилизации тока (СС), так и в режиме стабилизации напряжения (CV) значением 12, 24 и 48 В.
Я пропустил по невнимательности исходный параметр напряжения "от нуля". От нуля синхронизировать не выйдет. Но если есть данные о скважности, то они могут быть получены только от генератора этих импульсов. Не проще ли получить от генератора синхросигнал?
С точки зрения аппаратуры проще всего просто подать этот самый ШИМ на АЦП малинки, если он там есть (через делитель, разумеется) - И НА ЭТОМ ВСЁ. Программно - я уже сказал, как. Короче, возня со всем этим предстоит минимальная. Единственное, что следует понимать - будет задержка получения текущего значения амплитуды на время примерно до миллисекунды. Если это критично, то будем дальше думать.
_________________ Морд - ни лап. Мат, око и дар. А колом? Массам кот или торт? Тротил и ток массам!
А малинка знает что либо о режиме реального времени? Я так думаю, что написать драйвер под ОС малинки для АЦП работающего через ДМА в режиме реального времени - это отдельная и не слишком тривиальная задача.
Это напряжение можно через АЦП получить на raspberri pi/ Цель мероприятия - избавиться от микроконтроллера, который на данный момент выполняет эту работу и передает результат на raspberry.
Так у "малинки" есть же свой набортный АЦП (правда, с фильтром постоянки, но здесь-то ничего страшного). Если частота ШИМ не выходит за пределы десятка кГц, то достаточно сделать элементарный повторитель сигнала на ОУ с делением в 4 раза. И написать примитивную утилитку, которая будет 44.1кГц семплировать. И сразу будет понятно и заполнение, и амплитуда.
Добавлено after 3 minutes 20 seconds: Но таки я бы на МК сделал, это гораздо проще. Настраиваем таймер в режим захвата — вуаля, нам известен период и заполнение. А тем же таймером по событию начала захвата запускаем АЦП через DMA, чтобы в пике измерить амплитуду (делаем штук 9 измерений, потом считаем медиану).
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Так скважность знать ни к чему, надо, как я себе понял, измерить только амплитуду.
да, только амплитуду нужно определить.
Добавлено after 5 minutes 21 second: Добавлю пояснений) Речь идет о стандарте J1772 для зарядки электромобилей. Там коэффициэнтом заполнения задается максимальный ток, а по уровню амплитуды определяем текущее состояние процесса. Вот краткое описание стандарта, если вдруг кому-то интересно. https://openev.freshdesk.com/support/so ... -sae-j1772 Сейчас за работу с шим у меня отвечает микроконтроллер, но хочется от него избавиться и работать только с малиной. Генерировать шим можно как с помощью pwm ноги малины, так и с помощью отдельного i2c шим-модуля. Проблема в определении амплитуды сигнала без контроллера. Если можно обойтись без него, буду рад услышать предложения и идеи!
Это напряжение можно через АЦП получить на raspberri pi/ Цель мероприятия - избавиться от микроконтроллера, который на данный момент выполняет эту работу и передает результат на raspberry.
Вопрос непонятен. Цель - заменить МК на АЦП?
цель - перенести всю логику в userspace linux-а. я в программировании микроконтроллеров не очень силен, моя сфера деятельности - программирование в linux, поэтому хотелось бы упростить себе жизнь)
Добавлено after 1 minute 45 seconds: Но, если вы считаете, что идея совсем неразумная, так и скажите. Может, стоит прекратить изыскания в эту сторону)
Добавить компаратор, чтобы, скажем, все, что выше 10мВ было 3.3В... Если ни хрена нет - значит амплитуда нулевая.
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Но, если вы считаете, что идея совсем неразумная, так и скажите.
Нет, я так не считаю. Если цель уйти от МК, то такая задача вполне решаемая аппаратными средствами. Только решение такой задачи без МК требует очень хорошего знания электроники. Так что тут палка о двух концах.
Если только амплитуду нужно измерить, можно собрать на ОУ простой пиковый детектор. Вот только, ЕМНИП, у "малины" нет возможности напрямую на АЦП подать сигнал, т.е. придется модулировать синусоиду. Или поступить проще: взять дешевый внешний АЦП на I2C или SPI, им и замерять напругу после пикового детектора. Тогда точно будете знать, какова текущая амплитуда сигнала.
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Спокойно, "амплитуда 0 вольт" означает отсутствие -12 вольт во-первых, и фактическое отсутствие сигнала во-вторых. Гляньте картинки в стандарте по ссылке. Аудиовхода хватит. С делителем. конечно.
А откуда информация о допустимой инерционности? Пиковый детектор только при увеличении сигнала быстро реагирует. При уменьшении все будет очень печально... И придется разменивать пульсации на скорость.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения