2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4  След.
 
 Re: EEPROM i2c, Ардуино. Проблемы и вопросы
Сообщение12.12.2018, 11:44 
Аватара пользователя


11/12/16
13881
уездный город Н
realeugene в сообщении #1360668 писал(а):
Для частоты 0.5 МГц это как раз один период входного сигнала. :mrgreen:
А нет, целых четыре периода. Ошибся в устном счёте. :facepalm:
А, нет, опять нет! Целую четверть периода. :facepalm: :facepalm: :facepalm: :mrgreen:


Не понял. Это тут причем?
Установили частоту синтезатора.
Через 0.5 микросекунды детектор выдал актуальную величину сигнала.
Считали её АЦП.

 Профиль  
                  
 
 Re: EEPROM i2c, Ардуино. Проблемы и вопросы
Сообщение12.12.2018, 11:45 


27/08/16
10286
Dmitriy40 в сообщении #1360669 писал(а):
Насчёт 50 Гц наводки и MCP3421, у него можно выбрать частоту сэмплирования 50 Гц и в АЧХ будет первый провал, -70 dB конечно не идеал, но всё же.

При этом скорость измерения получится порядка 10 независимых точек в секунду. Как раз то, что нужно ТС. :mrgreen:

 Профиль  
                  
 
 Re: EEPROM i2c, Ардуино. Проблемы и вопросы
Сообщение12.12.2018, 11:47 
Аватара пользователя


11/12/16
13881
уездный город Н
Dmitriy40
Спасибо!

Dmitriy40 в сообщении #1360669 писал(а):
Для отрисовки же они считались прямо на лету и тоже не буферизировались.

Хочу буферизовать и для отрисовки тоже.
Чтобы старый сэмпл можно было наблюдать, пока следующий считается.

 Профиль  
                  
 
 Re: EEPROM i2c, Ардуино. Проблемы и вопросы
Сообщение12.12.2018, 11:49 


27/08/16
10286
EUgeneUS в сообщении #1360670 писал(а):
Установили частоту синтезатора.
Через 0.5 микросекунды детектор выдал актуальную величину сигнала.

Я плохо себе представляю, что выдаст детектор через процитированные вами 500 наносекунд при частоте сигнала 0.5 МГц. А вы это представляете? У вас есть проработанная на бумаге модель вашей измерительной системы? Вы понимаете, где какие в ней будут переходные процессы, и где какая требуется точность?

-- 12.12.2018, 12:03 --

Dmitriy40 в сообщении #1360669 писал(а):
UPD. Ах нет, нельзя, лишь 60Гц, ну тогда для 50 Гц не судьба.

Если учесть, что "60 SPS" для него означает "от 44 до 82", то для подавления помех от промышленной сети в Америке он точно так же малопригоден, как и в Европе.

 Профиль  
                  
 
 Re: EEPROM i2c, Ардуино. Проблемы и вопросы
Сообщение12.12.2018, 12:18 
Заслуженный участник


20/08/14
11797
Россия, Москва
Судя по Fig.18 на AD8307 она срабатывает как максимум за 3 периода сигнала, но разумеется не менее 500 нс.
Плюс время перестройки генератора и стабилизации всех переходных процессов.
Думаю в 20 кГц сэмплирования для частот от 100 кГц вполне реально уложиться.
А принимать можно на встроенный в Ардуино АЦП, он свои 10 бит вполне выдаёт. А больше в этой задаче и не нужно, да и даже столько обеспечить непросто. Для расширения диапазона можно использовать 2-3 канала с разными делителями.
Подавлять помеху 50 Гц можно и программно (хитрым выбором последовательности прохода диапазона частот и усреднением). Получить кадр 1000 точек 2-5 раз в секунду вполне реально.
В общем сделать можно, но помучиться придётся прилично, особенно с подавлением всяческих помех и наводок, как аппаратно в аналоговой части, так и программно.

 Профиль  
                  
 
 Re: EEPROM i2c, Ардуино. Проблемы и вопросы
Сообщение12.12.2018, 12:33 


27/08/16
10286
Dmitriy40 в сообщении #1360688 писал(а):
Судя по Fig.18 на AD8307 она срабатывает как максимум за 3 периода сигнала, но разумеется не менее 500 нс.
Мне больше нравится Fig.19. И раздел про выходной фильтр для низкочастотных измерений.
Судя по всему, сами детекторы в каскаде детекторов можно считать работающими в рассматриваемом диапазоне частот мгновенно, т. е они реализуют некоторое нелинейное преобразование входного сигнала, результат которого нужно отфильтровать. Причём, некоторый простой фильтр встроен в саму схему чипа, которого достаточно для работы на высоких частотах, но недостаточно для низких. Соответственно, минимально допустимое время переключения между точками будет определяться временем установления сигнала на выходе этого фильтра до заданного уровня точности плюс добротностью измеряемой схемы. И этот фильтр должен эффективно зарезать основную частоту сигнала, пропустив DC, то есть, у него должны быть достаточно низкочастотные полюса с соответствующим большим временем переходных процессов.

 Профиль  
                  
 
 Re: EEPROM i2c, Ардуино. Проблемы и вопросы
Сообщение12.12.2018, 13:04 
Аватара пользователя


11/12/16
13881
уездный город Н
realeugene в сообщении #1360674 писал(а):
У вас есть проработанная на бумаге модель вашей измерительной системы?


На бумаге - нет.

realeugene в сообщении #1360674 писал(а):
Вы понимаете, где какие в ней будут переходные процессы,

Имею общее преставление, расчеты не делал.

realeugene в сообщении #1360674 писал(а):
и где какая требуется точность?

Суммарные погрешности хочется не более чем у Х1-47 :D

realeugene
Dmitriy40

Спасибо!
Пока у меня мнение такое:
1. "Переехать" на ардуино мега 2560. Тогда и памяти должно хватить, и HW UART будет не лишним для работы с LCD.
2. Использовать встроенный АЦП или LTC1286, как предлагается в этой поделке: http://www.cqham.ru/log4.htm , или ADS1015 (I2C мне почему-то больше нравится, чем SPI)
3. Кстати, как видно по указанной ссылке, каких-то специальных мер для подавления 50 Гц не применяется. С 50 Гц будем решать проблему по мере возникновения.

 Профиль  
                  
 
 Re: EEPROM i2c, Ардуино. Проблемы и вопросы
Сообщение12.12.2018, 17:12 
Аватара пользователя


11/12/16
13881
уездный город Н
Если интересно.
Провел некоторые эксперименты со встроенным АЦП.

Оказалось, не так страшен чёрт, как его малютки.
1. 50 Гц проявляется и очень сильно, только если нога болтается в воздухе. Если куда-то подсоединена, следов 50 Гц нету.
2. Но есть довольно существенные иголки, пиковое значение до 10-12, что очень много. И это, похоже, не лечится без паяльника (пишут, что схемотехника ардуины в части аналоговых сигналов безобразна).
3. Также есть небольшой след (размахом до 1-2) кого-то ВЧ, похоже тактового генератора.

Кстати читает довольно быстро: сэмпл на 512 отсчетов делает за примерно 60 миллисекунд.

Пока вывод такой - прикрутить 12-битный внешний АЦП.

 Профиль  
                  
 
 Re: EEPROM i2c, Ардуино. Проблемы и вопросы
Сообщение12.12.2018, 19:28 
Заслуженный участник


20/08/14
11797
Россия, Москва
EUgeneUS в сообщении #1360777 писал(а):
Провел некоторые эксперименты со встроенным АЦП.
Я тоже проводил, правда больше интересовался линейностью (она получалась замечательная в 99% диапазона) и стабильностью (обычно плавает на младшую единицу, усреднение быстро убирает в ноль). Вот со смещением нуля всё плохо, десяток единиц легко может быть. Как и с величиной опоры. Т.е. калибровать минимум по двум точкам надо, тогда работает хорошо. Температурной стабильностью не интересовался (когда важно - ставлю внешнюю опору).

Иголки могут быть из-за слишком высокого выходного сопротивления источника аналогового сигнала (почитайте в доке про "The ADC is optimized for analog signals with an output impedance of approximately 10 kΩ or less." в разделе "ADC Noise Canceler"), в момент подключения внутренней УВХ происходит перезаряд ёмкостей и наблюдаем иголку. Лечится кондёром от 22нФ кажется (я обычно ставлю 47-100нФ, сколько не жалко лишь бы только во время установления влезть) чтобы проседание на нём из-за разряда на внутреннюю ёмкость УВХ не превышало 0.05% (пол-единицы, разумеется учитываем и частоту всего этого). Этот же кондёр и ВЧ всё погасит. Да и множество сторонних иголок тоже. Разумеется учитывайте появление RC фильтра на входе и сужение полосы пропускания из-за этого.

Кроме того, есть специальный режим спячки для измерений АЦП, ADC Noise Reduction, настраиваете АЦП, запускаете, уходите в спячку - и пока вся остальная цифра спит АЦП шуршит и по окончании будит цифру и продолжает программу. Тут уж почти никаких ВЧ наводок изнутри быть не должно. Я никогда (разве кроме тестов) не пользовался - всегда и так хватало точности.

-- 12.12.2018, 19:44 --

EUgeneUS в сообщении #1360706 писал(а):
"Переехать" на ардуино мега 2560.
Есть такой ATmega1284P, 16К ОЗУ, 4К EEPROM, 2 UART, TQFP44 - паять проще и стоит вдвое дешевле. Шьётся например как ATmega1281 - если вдруг программатор не поддерживает именно 1284 (а такое бывает к сожалению).

Но вообще тогда стоит уже переходить на STM32F, они дешевле (в разы!), быстрее, много периферии, 32 бита ARM (!), 12 бит АЦП 1МГц, бывают ЦАП, памяти много и flash и озу, можно использовать среду разработки Ардуино. Например STM32F103 уже на плате с кренкой и usb разъёмом и кварцем стоит жалкие 116р с доставкой.

 Профиль  
                  
 
 Re: EEPROM i2c, Ардуино. Проблемы и вопросы
Сообщение12.12.2018, 21:57 
Аватара пользователя


11/12/16
13881
уездный город Н
Dmitriy40
Спасибо за развернутый ответ!

1. Откуда иголки - не знаю, но точно не из-за высокого импеданса источника. Ибо источником были: 3.3V на плате, земля на плате и земля на макетке. При подключении внутреннего опорника стало хуже - в абсолютной величине иголки остались такие же, а относительно опорника выросли.

2. Понимаю, что желание остаться на ардуино выглядит как желание есть с ножа :D. Но очень не хочется писать под Nextion каждый примитив. Библиотека для него под Ардуино, конечно, то еще г... SoftwareSerial не поддерживает (пришлось самому вкорячивать), и массовую загрузку в графики - то же (хотя железо этот примитив поддерживает).

 Профиль  
                  
 
 Re: EEPROM i2c, Ардуино. Проблемы и вопросы
Сообщение12.12.2018, 22:09 


27/08/16
10286
EUgeneUS в сообщении #1360851 писал(а):
Но очень не хочется писать под Nextion каждый примитив. Библиотека для него под Ардуино, конечно, то еще г...
Подозреваю, что это вам не грозит. Графических библиотек на любой вкус для работы с подобными индикаторами должно быть полно самых разных. Как пример: https://www.st.com/en/embedded-software/stemwin.html

-- 12.12.2018, 22:19 --

Dmitriy40 в сообщении #1360816 писал(а):
Например STM32F103 уже на плате с кренкой и usb разъёмом и кварцем стоит жалкие 116р с доставкой.
Ходят слухи, что на подобных чрезмерно дешевых платах стоят перемаркированные клоны китайского "почти полного аналога" GD32, которые описаны в этой статье: https://www.cnx-software.com/2015/12/21 ... ex-m3-mcu/

 Профиль  
                  
 
 Re: EEPROM i2c, Ардуино. Проблемы и вопросы
Сообщение12.12.2018, 22:56 
Аватара пользователя


11/12/16
13881
уездный город Н
realeugene в сообщении #1360855 писал(а):
Графических библиотек на любой вкус для работы с подобными индикаторами должно быть полно самых разных.


"подобных" надо понимать "подобных по размеру и разрешению". Это неудивительно, внутре у неё неонка у Nextion STM32 и есть :D

Смутили Вы (вместе с Dmitriy40) меня...
Но оценивая, что уже есть, пока буду есть с ножа.

 Профиль  
                  
 
 Re: EEPROM i2c, Ардуино. Проблемы и вопросы
Сообщение13.12.2018, 04:32 
Заслуженный участник


20/08/14
11797
Россия, Москва
realeugene в сообщении #1360855 писал(а):
Ходят слухи, что на подобных чрезмерно дешевых платах стоят перемаркированные клоны китайского "почти полного аналога" GD32, которые описаны в этой статье: https://www.cnx-software.com/2015/12/21 ... ex-m3-mcu/
За инфу спасибо, будет время - проверю, надо ещё подумать как.
Вполне может быть, родная микрушка STM32F103C8T6 стоит 2.5USD здесь.
Искать отличия по pdf-ам честно говоря лень, а частота больше - так это же не меньше.
И для единичных изделий это не играет роли, если их именно на этих платах и делать - она же и будет макеткой.
А для серийных изделий значит надо проверять работу на именно серийном опытном экземпляре, именно с серийным процом, а не этой платкой.

EUgeneUS в сообщении #1360851 писал(а):
Понимаю, что желание остаться на ардуино выглядит как желание есть с ножа :D.
Да нормально оно выглядит, если изделие не серийное и не на продажу. Надо просто адекватно оценивать реально достижимые параметры, а не ориентироваться на только скажем битность АЦП (включил я тут 24 бита АЦП от тензовесов, ага-ага, они есть конечно, только младшие 11-12 плавают даже при питании от аккумулятора :facepalm:).

Ну а если Вам лишь ОЗУ не хватает для полного счастья, то рекомендую спаять на макетке тот ATmega1284P, кажется это чуть ли не единственный AVR с 16K SRAM. Есть правда ещё и ATxmega с 32К SRAM и 12 bit ADC, но её сложнее шить (и программаторы вроде дороже) и не уверен что среда Ардуино их поддерживает (хотя программно они и совместимы, но там больше и сложнее аппаратура). В общем xmega пока не заморачивался, хотя и облизываюсь уже давно (но stm32 всяко лучше).

 Профиль  
                  
 
 Re: EEPROM i2c, Ардуино. Проблемы и вопросы
Сообщение13.12.2018, 08:26 
Аватара пользователя


11/12/16
13881
уездный город Н
Dmitriy40 в сообщении #1360924 писал(а):
(включил я тут 24 бита АЦП от тензовесов, ага-ага, они есть конечно, только младшие 11-12 плавают даже при питании от аккумулятора :facepalm:).


24 бита - это всего в 24 раз хуже, чем дрейф эталонов килограмма за 100 лет (характерное значение - 40 микрограмм). :mrgreen:

Dmitriy40 в сообщении #1360924 писал(а):
если Вам лишь ОЗУ не хватает для полного счастья,

Мне для полного счастья не хватает:

1. Еще одного аппаратного UART, притомился немного Nextion с SoftwareSerial женить
2. Памяти по прикидкам не хватает не много. 8k в ATmega2560 должно хватить даже на два буффера: для сырья (2 байта на точку) и для отображения (1 байт на точку). Если не хватит - извернусь одним.
3. Внешний АЦП похоже все равно придется делать: есть мысль сделать выносной детектор, а АЦП насколько понимаю, хорошо ставить рядом с детектором.
4. Денег.

 Профиль  
                  
 
 Re: EEPROM i2c, Ардуино. Проблемы и вопросы
Сообщение13.12.2018, 10:47 
Аватара пользователя


11/12/16
13881
уездный город Н
Dmitriy40 в сообщении #1360924 писал(а):
Надо просто адекватно оценивать реально достижимые параметры,


Про параметры. Сравниваем с Х1-47 (хочется не хуже):

Цитата:
Неравномерность уровня выходного напряжения ГКЧ ±0,8дБ (при Rн = 50 Ом)
Неравномерность собственной АЧХ при максимальной полосе качания не превышает ±0,5 дБ


У AD8307 25 mV/dB. Таким образом, если шумы будут не больше 5-10 mV, то и хорошо.
При размахе аналогового сигнала 5V получается 10 бит - впритык, 12 бит - почти излишество.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 52 ]  На страницу Пред.  1, 2, 3, 4  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group