• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

BLE модуль JDY-10 на чипе TLSR8266

nikolz

Well-known member
ADC у меня настроен на 64000 sps.
Один бит (разряд) ADC есть 1.3В/16384 = 0.000079В = 7.9E-5 В

Скорость изменения входного напряжения при 10 милли Герцах на входе ADC составляет до 1.3В в 50 сек (0.026В в сек). Делим на 64000 sps, получаем 4.0E-7 вольт на замер.

У ADC на входе стоит схема выборка-хранение на время измерения. Обычно описывается параметром управления временем зарядки и стабилизации коммутатора, которое увеличивает цикл оцифровки. Это время значительно менее времени оцифровки.
Шумы на входе происходят от заряда этой емкости при следующей коммутации ко входу после отработки ключей взвешивания на емкостях для SAR, что вам наглядно представлено на замерах при 200 кОм на входе...
Вы уверены, что у TLSR есть схема выборки и запоминания?
Где в доке про нее указано и какое у АЦП TLSR апертурное время? где это вы прочитали, ссылку дайте.
 

nikolz

Well-known member
Апертурным временем ta называют время, в течение которого сохраняется неопределенность между значением выборки и временем, к которому она относится. Эффект апертурной неопределенности проявляется либо как погрешность мгновенного значения сигнала при заданных моментах измерения, либо как погрешность момента времени, в который производится измерение при заданном мгновенном значении сигнала. При равномерной дискретизации следствием апертурной неопределенности является возникновение амплитудных погрешностей, которые называются апертурными и численно равны приращению сигнала в течение апертурного времени.

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

Такое значение апертурной погрешности можно определить, разложив выражение для исходного сигнала в ряд Тейлора в окрестностях точек отсчета, которое для j-й точки имеет вид

и дает в первом приближении апертурную погрешность
, (4)

где ta - апертурное время, которое для рассматриваемого случая является в первом приближении временем преобразования АЦП.
Обычно для оценки апертурных погрешностей используют синусоидальный испытательный сигнал U(t)=Umsinwt, для которого максимальное относительное значение апертурной погрешности
DUa/Um=wta.


Если принять, что для N-разрядного АЦП с разрешением 2-N апертурная погрешность не должна превышать шага квантования (рис. 1), то между частотой сигнала w, апертурным временем ta и относительной апертурной погрешностью имеет место соотношение
1/2N=wta
Для обеспечения дискретизации синусоидального сигнала частотой 100 кГц с погрешностью 1% время преобразования АЦП должно быть равно 25 нс.
В то же время с помощью такого быстродействующего АЦП принципиально можно дискретизировать сигналы, имеющие ширину спектра порядка 20 МГц. Таким образом, дискретизация с помощью самого АЦП приводит к существенному расхождению требований между быстродействием АЦП и периодом дискретизации. Это расхождение достигает 2...3 порядков и сильно усложняет и удорожает процесс дискретизации, так как даже для сравнительно узкополосных сигналов требует весьма быстродействующих АЦП. Для достаточно широкого класса быстро изменяющихся сигналов эту проблему решают с помощью устройств выборки-хранения, имеющих малое апертурное время.
 

nikolz

Well-known member
у TLSR разрядность АЦП в 14 бит не для абсолютной точности ,
а для широкого диапазона изменения входного сигнала, что надо для работы со звуком , что подтверждается картинками от pvvx.
Поэтому TLSR не для точных измерений
 

pvvx

Активный участник сообщества
у TLSR разрядность АЦП в 14 бит не для абсолютной точности ,
а для широкого диапазона изменения входного сигнала, что надо для работы со звуком , что подтверждается картинками от pvvx.
Поэтому TLSR не для точных измерений
Да и AD7793 тогда тоже не для точных измерений :)
А уж SAR - это наверно только для звука? :) :)
----------
Вам видимо сложно открыть PDF к TLSR... Попытаюсь за вас - мне не лень:
upload_2020-1-1_13-10-12.png
---
upload_2020-1-1_13-14-50.png
У ADC в TLSR826x задается:

CLK (clock) - частота коммутации взвешивающих ключей
sampling time – период старта измерения в CLK
resolution – кол-во периодов коммутации взвешивающих ключей в CLK

Рекомендованный CLK – 4 МГц.

4 МГц /14 бит получаем 286 ksps, но документация гласит о 250 ksps и менее.

Остальное время идет на заряд емкостей от входа.
Для уточненных измерений мы и используем шум входа и усреднение нескольких замеров, что для звука нафиг не сдалось, т.к. должен стоять входной фильтр или работать PGA со включенными встроенными фильтрами НЧ и ВЧ (хар-ки его тоже приведены).
В AD7793 сам ADC делает тысячи замеров и после выходного цифрового фильтра вы получаете 40 нВ шума и разрешение в 23 бита при 4.7 sps.
 

pvvx

Активный участник сообщества
@nikolz - не тащите форум какую-то гадость, пока не вы разобрались с примитивными ADC.
 

pvvx

Активный участник сообщества
Поясняю:

Динамические ошибки у ADC возникают не от того, что вы там себе выдумали. Это зависит в основном от типа ADC. У всех ADC c последовательным приближением обязательно стоит коммутатор, отключающий внутреннюю цепь на время самого взвешивания замера. Если его нет (что глупо не реализовать в кристалле) то это обязательно описывается с рекомендацией нулевого выходного сопротивления ОУ с фильтром на вход ADC.

И обычно нормируется CLK коммутации = влияет на время разряда внутренних емкостей, что может вносить очень большие ошибки…
Если вход не отрубить - у вас будут выпадения и в старших разрядах – цепь сравнения не сможет сопоставить…
 

pvvx

Активный участник сообщества
В подтверждение всего этого вам был дан замер меандра со скоростью нарастания (20 нс/В) превышающем скорость оцифровки ADC TLSR.
Так-же не забудьте, что в некоторых схемах SAR есть ещё такты перезаряда взвешивающих емкостей...
 

pvvx

Активный участник сообщества
у TLSR разрядность АЦП в 14 бит не для абсолютной точности ,
а для широкого диапазона изменения входного сигнала, что надо для работы со звуком , что подтверждается картинками от pvvx.
Поэтому TLSR не для точных измерений
Кто вам мешает произвести калибровку?
Может HX711 у вас точнее :) :) Там вообще повторяемости нет и даже ноль на диф.входах имеет смещение в первой старшей паре бит :) :)
 

pvvx

Активный участник сообщества
@nikolz на ваши тысячи вопросов ответил - ответьте хоть что-то на мои простейших два вопроса:
Как проверить точное разрешение PGA и уход со временем на всех диапазонах без паяльника в этих милливольтах, используя только провода с штырями/разъемами 2.5 мм аля Arduino?
Какие есть современные и более дешевые альтернативы с параметрами не хуже чем у AD7793 + чип BLE для точных замеров в микровольтах?
(AD7793 на платке со штырями 2.5 мм на али стоит 200..300 рупь.)
 

pvvx

Активный участник сообщества
Что там у нас далее про весы на BLE?
Надо глянуть что там с самими тензодатчиками...

Гадание на тысячах мух современного “коллективного разума” (блогеров Arduino) не дало никаких пусть даже примерных цифр по датчикам.
Возьмем что есть, типа вот такой:


Но на с маркировкой 1 кГ

Сопротивление моста равно 1.000 кОм.
Гиря в 1кГ при питании моста от 3.3В дает на диф. измерительных выходах 0.00010 В.
Измерения не точны, т.к. датчик на весу, краю стола и прижимом руками… Но большая точность и не требуется. Порядок смещения напряжения и сопротивления моста определены.

Если это переводить на прямые входы ADC 14 бит TLSR826x при ref 1.3В, то на 1 кГ имеем 12 единиц ADC :)

При подключении к PGA – все 14 бит, т.е. запросто может достигнуть разрешения в 1/16384 кГ при правильном усреднении замеров и калибровке.

На HX711 по неподтвержденным данных от мух - при 1 кГ точность до 5 гр и типа сами "датчики не линейны".
Типа никто не проверял и вешают это на датчики, а не на HX711... Остальное закрытая тема для Arduino-поклонников.

Ну и очередной тупой вопросец – как минимальными усилиями и средствами измерить линейность датчика?
 

pvvx

Активный участник сообщества
Для начала необходимо избавится от вездесущей пром.помехи на 50 Гц и попробовать работу на переменном напряжении – на низкой фиксированной не кратной 50 Гц частоте, а не как у телепузиков…
Тут слово о реализации схемы и почему на переменном проще и лучше предоставляется Гуру @nikolz.
А то он всё звук да плохо... Вот он и звуковой ADC...
 

pvvx

Активный участник сообщества
Некоторые уточнения для речи Гуру@nikolz

Частоту возьмем из геофизики, методов ВЭЗ для России. Это из ряда 1.22, 2.44, 4.88, … Гц
Мосту переменка пофигу. На мост подано переменное напряжение синуса с чуть менее 3V (p-p) чтобы влезло в окно осла:
upload_2020-1-1_16-40-12.png
и меандр:
upload_2020-1-1_16-44-42.png
На 8-ми битном осле диф.сигнал c двух каналов не выделить (MATH: CH1-CH2 = шум 1 бита) т.к. общий gnd от генератора...
 

pvvx

Активный участник сообщества
Видимо никаких ответов от Гуру не получим. Тему по тензодатчикам + только BLE чип закроем от Arduino поклонников до вдохновения от Гуру @nikolz .
Но произведем простейший тест, вписав две строки на си включения PWM в уже имеющееся:

Включение моста в два выхода PWM (мостовая схема: один прямой, другой инверсный), чтобы на мосту получился размах (p-p) более 3 В приводит к тому, что с моста датчика получаем c два диф. выхода с переменным напряжением. (Можно и работать и с одним выходом полумоста). Это подается на любой аудио усилитель через конденсатор для ухода от постоянного смещения.

Простейший эксп на TLSR8266 показал возможность работать с половиной моста тензодатчика используя всего 3 вывода: Два выхода PWM и вход PGA через кондер.

В процессе такого тупого экспа выяснилось и взвесилось пару “но”:

1. На принятых замерах наблюдается помеха от передатчика в виде импульсов. Видимо она идет от питания чипа через выходы PWM. На 8-ми битном осле они не наблюдаются, но работа то с микровольтами... Так-же не наблюдается при включение внешнего генератора на мост тензодатчика. Напряжение (размах) подаваемый на мост тензодатчика от PWM известно и измеряется чипом как Vbat перед замером - проблем подкалибровки нет. Помеху от передатчика можно удалить/вырезать несколькими методами, но это усложняет программу...

2. Наблюдается достаточно сильная наводка 50 Гц. Процесс оцифровки я не стал менять –шаг замеров 100 Гц путем получения по 16 усредненных на 64 кsps - это основная причина. Безусловно что при этом наблюдаются биения дискретизации с помехой 50 Гц, да и никаких фильтров нет. У TLSR8269 есть встроенный аппаратный дециматор и задаваемый цифровой фильтр… Но тут TLSR8266.

Для решения описанных “но” требуется постоянная оцифровка на приличной скорости (в дцать ksps), а это обозначает что чип будет жрать более 6..9 мА всё время замера.

Т.е. даже такой метод годный, но с AD7793 выходит проще, меньше потребление, точнее и практически не требует калибровок по всем диапазонам… На сим пока закончим.
 

nikolz

Well-known member
Видимо никаких ответов от Гуру не получим. Тему по тензодатчикам + только BLE чип закроем от Arduino поклонников до вдохновения от Гуру @nikolz .
Но произведем простейший тест, вписав две строки на си включения PWM в уже имеющееся:

Включение моста в два выхода PWM (мостовая схема: один прямой, другой инверсный), чтобы на мосту получился размах (p-p) более 3 В приводит к тому, что с моста датчика получаем c два диф. выхода с переменным напряжением. (Можно и работать и с одним выходом полумоста). Это подается на любой аудио усилитель через конденсатор для ухода от постоянного смещения.

Простейший эксп на TLSR8266 показал возможность работать с половиной моста тензодатчика используя всего 3 вывода: Два выхода PWM и вход PGA через кондер.

В процессе такого тупого экспа выяснилось и взвесилось пару “но”:

1. На принятых замерах наблюдается помеха от передатчика в виде импульсов. Видимо она идет от питания чипа через выходы PWM. На 8-ми битном осле они не наблюдаются, но работа то с микровольтами... Так-же не наблюдается при включение внешнего генератора на мост тензодатчика. Напряжение (размах) подаваемый на мост тензодатчика от PWM известно и измеряется чипом как Vbat перед замером - проблем подкалибровки нет. Помеху от передатчика можно удалить/вырезать несколькими методами, но это усложняет программу...

2. Наблюдается достаточно сильная наводка 50 Гц. Процесс оцифровки я не стал менять –шаг замеров 100 Гц путем получения по 16 усредненных на 64 кsps - это основная причина. Безусловно что при этом наблюдаются биения дискретизации с помехой 50 Гц, да и никаких фильтров нет. У TLSR8269 есть встроенный аппаратный дециматор и задаваемый цифровой фильтр… Но тут TLSR8266.

Для решения описанных “но” требуется постоянная оцифровка на приличной скорости (в дцать ksps), а это обозначает что чип будет жрать более 6..9 мА всё время замера.

Т.е. даже такой метод годный, но с AD7793 выходит проще, меньше потребление, точнее и практически не требует калибровок по всем диапазонам… На сим пока закончим.
Вы слишком много букв написали.
сложно из этих букв выделить конкретный вопрос, так как много словесного мусора про телепузиков и других героев мультфильма.
Полагаю, что вопросы ваши риторические.
Если нет, то попробуйте их задать коротко и ясно.
 

pvvx

Активный участник сообщества
Вы слишком много букв написали.
сложно из этих букв выделить конкретный вопрос, так как много словесного мусора про телепузиков и других героев мультфильма.
Полагаю, что вопросы ваши риторические.
Если нет, то попробуйте их задать коротко и ясно.
1. Как проверить точное разрешение PGA и уход со временем на всех диапазонах без паяльника в милливольтах, используя только провода с штырями/разъемами 2.5 мм и прочий хлам для Arduino?
2. Какие есть современные и более дешевые альтернативы с параметрами не хуже чем у AD7793 + чип BLE для точных замеров в микровольтах и меньшим потреблением?
 

nikolz

Well-known member
1. Как проверить точное разрешение PGA и уход со временем на всех диапазонах без паяльника в милливольтах, используя только провода с штырями/разъемами 2.5 мм и прочий хлам для Arduino?
2. Какие есть современные и более дешевые альтернативы с параметрами не хуже чем у AD7793 + чип BLE для точных замеров в микровольтах и меньшим потреблением?
1) Что такое "точное разрешение PGA ". Можно ссылку на определение?
2) Такой поиск не проводил, так как нет надобности.
Измеряю микроамперы с помощью резистора и диода - их можно прикрутить проводами, если не умеете работать паяльником, и обычным милливольтметром .
 

pvvx

Активный участник сообщества
Измеряю микроамперы с помощью резистора и диода - их можно прикрутить проводами, если не умеете работать паяльником, и обычным милливольтметром .
При импульсных сигналах данный метод не применим.
Да и как с помощью резистора и биметаллического термочувствительного разъема это сделать, если их влияние в том-же порядке?
Диод то зачем - это вообще нелинейный элемент с детектированием всех эл.маг шумов включая тепловое...
Тут придется заводить старый калибровочный тарантас на 24-х битниках... Но у него другие хар-ки фильтров и он не из Arduino.
 

nikolz

Well-known member
При импульсных сигналах данный метод не применим.
Да и как с помощью резистора и биметаллического термочувствительного разъема это сделать, если их влияние в том-же порядке?
Диод то зачем - это вообще нелинейный элемент с детектированием всех эл.маг шумов включая тепловое...
Тут придется заводить старый калибровочный тарантас на 24-х битниках... Но у него другие хар-ки фильтров и он не из Arduino.
ну ежели не поняли, то влом спросить?
 
Сверху Снизу