Частота дискретизации Beaglebone Black слишком низкая и дает ложное напряжение
Я в значительной степени новичок, когда дело доходит до такого рода вещей, так что если вы, ребята, можете либо помочь мне, либо направить меня в место, где я узнаю, что мне нужно знать, я был бы очень признателен.
В основном моя проблема в том, что я использую библиотеку libpruio для непрерывной выборки аналоговых значений с платы. 2 вещи идут не так, как надо здесь.
Во-первых, всякий раз, когда ВВ измеряет напряжение, напряжение провода, подключенного к выводу AIN, повышается. Я наблюдал это, подключив осциллограф к тому же проводу, на котором производится выборка. Я вижу, что всякий раз, когда BB начинает сэмплирование, весь сигнал (только звуковая волна от усиленного микрофона) сдвигается вверх на 0,8-9 вольт. Это также отражается в значениях, которые я получаю от BB, которые составляют около 30000 (когда они должны быть 0). При подключении к земле я получаю 0, что правильно, а при подключении к 1,8 вольт - что-то вроде 65520, что тоже правильно. Так может быть это как-то связано со слабым сигналом?
Вторая проблема заключается в том, что, несмотря на то, что я получаю значения в диапазоне от 500 кГц до 900 кГц, реальная скорость, по-видимому, составляет около 11 кГц. Под этим я подразумеваю, что я получаю новое значение только каждые 88 мксек, а остальные значения, которые я получаю, остаются такими же, как и новое значение, до тех пор, пока не пройдут следующие 88 мксек, когда я получу новое значение. Эти времена соответствуют сдвигу напряжения вверх, о котором я упоминал в предыдущем абзаце. Так что на самом деле то, что я вижу на осциллографе, это то, что всякий раз, когда я беру сэмпл с ББ, возникает пильная волна с частотой 11 кГц, о которой я упоминал ранее.
В заключение, всякий раз, когда ВВ производит выборку, он сначала увеличивает напряжение на выводе на 0,9 вольт, берет образец этого напряжения, и напряжение снижается в течение следующих 88 мксек, в то время как ВВ выплевывает обратно образец, который он взял на начало периода. Я не хочу это. Я хочу, чтобы он не оказывал значительного влияния на напряжение, и брал новые образцы каждый раз при запуске кода.
Что касается кода, который я использую, то это в основном слегка измененная версия примера IO_Input в библиотеке libpruio, где значения хранятся в массиве для последующего использования, а не печатаются немедленно.
Если вам, ребята, понадобится дополнительная информация, я с удовольствием выложу ее здесь, но сейчас я задаюсь вопросом, не является ли это чем-то супер очевидным, что я упускаю.
1 ответ
При подключении к земле я получаю 0, что правильно, а при подключении к 1,8 вольт - что-то вроде 65520, что тоже правильно. Так может быть это как-то связано со слабым сигналом?
BBB и libpruio работают нормально. Проверьте свою проводку.
Что касается частоты дискретизации, в примере io_input используется режим ввода-вывода. Если вам нужна точная синхронизация для образцов, используйте режим MM или режим RB.
Ваша цель не очень ясна, поэтому я не могу дать подробные советы. (Некоторый код также поможет понять, что вы пытаетесь сделать.)
BR