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

Делюсь опытом Nrf52 серии и китайский St-Link

pvvx

Активный участник сообщества
у них нет такого примера в SDK
есть что-то подобное у третьих разработчиков но я их не собирал.
А зачем тогда в чипе SAADC и специальный буфер для набора усредненных значений?
Видимо оно не работает и Nordic на него примеров не дал?
Если есть у сторонних - давайте - надо на nRF52 и желательно Arduino - там и SDK есть...
Пример типа, чтобы c любым девайсом соединялся, типа такого:
upload_2020-2-2_20-3-42.png
Руку подносим к чипу и вход ADC в полную шкалу... Даже описания какая ножка вход не требуется :)
относительно стирания переделкой ST-Link
делал несколько раз камень и все стиралось в J-Link, а ST-Link - нет
Значит истинного камня вы ещё не получили. Почитайте форумы с nRF - там есть рекомендации как сделать нормальный "камень" и с вопрошанием как сделать обратно... Несколько вариантов. Пущай выбрасывают.
Некоторые даже чип сдувают... :) :)
Я уверен что вы ещё на это попадетесь если будете работать с nRF52 чипами...
 

pvvx

Активный участник сообщества
J-Link стирает через ST-Link с вашей переделкой но надо выбирать не производителя а ядро и все без проблем.
Это зачем?
А ка-же все утилиты SEGGER и Nordic, типа JFlash и т.д.? Они нормально работают с J-Link. Всё описано и добавка про "производителя" тоже.
 

pvvx

Активный участник сообщества
Segger каждый день выпускает новые утилиты. Сегодня это V6.62a:
upload_2020-2-2_20-40-29.png
файл JLinkARM.dll
00026E80: 81 29
00026E81: EC C0
00026E82: 9C C3
 

nikolz

Well-known member
А зачем тогда в чипе SAADC и специальный буфер для набора усредненных значений?
Видимо оно не работает и Nordic на него примеров не дал?
Если есть у сторонних - давайте - надо на nRF52 и желательно Arduino - там и SDK есть...
Пример типа, чтобы c любым девайсом соединялся, типа такого:
Посмотреть вложение 8812
Руку подносим к чипу и вход ADC в полную шкалу... Даже описания какая ножка вход не требуется :)

Значит истинного камня вы ещё не получили. Почитайте форумы с nRF - там есть рекомендации как сделать нормальный "камень" и с вопрошанием как сделать обратно... Несколько вариантов. Пущай выбрасывают.
Некоторые даже чип сдувают... :) :)
Я уверен что вы ещё на это попадетесь если будете работать с nRF52 чипами...
это режим повышения разрядности SAADC до 14 бит путем суммирование отсчетов
вполне работает
 

nikolz

Well-known member
Это зачем?
А ка-же все утилиты SEGGER и Nordic, типа JFlash и т.д.? Они нормально работают с J-Link. Всё описано и добавка про "производителя" тоже.
----------------------
хорошо. Значит тоже можно использовать.
Меня устраивает openocd.
Я собственно вопрос программирования NRF для себя закрыл.
сейчас интересует ускорение компиляции и изучение примеров.
 

pvvx

Активный участник сообщества
это режим повышения разрядности SAADC до 14 бит путем суммирование отсчетов
вполне работает
А есть ли смысл в этом, если в документации значится что до искажений и шумов у данного SAADC 56 дБ Sndr (что и равно эффективных 9 бит, как указано в параметре Enob) ?
Какой смысл суммировать эти искажения линейности данного SAADC ? Вы туда добавили известный заданный % белого шума выше кривых 9 бит для осуществления усреднения нелинейностей путем участия в сумме более линейных старших разрядов (старше 9-того)?

Представьте, что у данного SAAR кривая лесенка по 8-му биту, то 9-й как раз и вписывается ещё кое как, а остальные младшие просто добавят вам ошибку при передискретизации :p
 

pvvx

Активный участник сообщества
Короче крутой ADC от Nordic на 512 значений (9 бит) :) :)
Только реальные тесты прояснят картину, но Nordic это и прячет. :p
 

nikolz

Well-known member
А есть ли смысл в этом, если в документации значится что до искажений и шумов у данного SAADC 56 дБ Sndr (что и равно эффективных 9 бит, как указано в параметре Enob) ?
Какой смысл суммировать эти искажения линейности данного SAADC ? Вы туда добавили известный заданный % белого шума выше кривых 9 бит для осуществления усреднения нелинейностей путем участия в сумме более линейных старших разрядов (старше 9-того)?

Представьте, что у данного SAAR кривая лесенка по 8-му биту, то 9-й как раз и вписывается ещё кое как, а остальные младшие просто добавят вам ошибку при передискретизации :p
смысл всегда можно найти, если надо.
-------------------------------
Например, в ваших доводах Вы смешиваете две причины неточности измерения - шум и нелинейность.
Нелинейность приращений кода на выходе при линейном изменении входного сигнала корректируется нелинейным преобразованием выходного кода, например табличным способом.
а устранение влияния шума - линейным фильтром, частный случай - КИХ фильтр с равными коэффициентами - т е суммирование отсчетов
-------------------
Но надо это делать или нет я решаю при решении конкретной задачи.
Поэтому , изучая железо, просто изучаю его характеристики для понимания возможного применения.
Поэтому для меня нет плохих или хороших чипов в глобальном смысле, а есть границы применения того или иного чипа в конкретных задачах.
-----------------------------
Достоинство программируемых чипов , в отличии от жесткой логики, в том,
что для решения задач мы имеем не только аппаратные возможности чипа,
но и возможности выбора метода, алгоритма и вариантов реализации кода решения конкретной задачи.
--------------------
Поэтому предпочитаю не смешивать всю еду в один тазик ,
а наслаждаться раздельным поеданием первого, второго и третьего.
 

pvvx

Активный участник сообщества
Достоинство программируемых чипов , в отличии от жесткой логики, в том,
что для решения задач мы имеем не только аппаратные возможности чипа,
но и возможности выбора метода, алгоритма и вариантов реализации кода решения конкретной задачи.
Мы не имеем никакой возможности использовать встроенный ADC, т.к. он пока, по документации ограничен 9 битами.
Все варианты ограничены представленными примерами его использования именно до 9 бит.
Например, в ваших доводах Вы смешиваете две причины неточности измерения - шум и нелинейность.
Нелинейность приращений кода на выходе при линейном изменении входного сигнала корректируется нелинейным преобразованием выходного кода, например табличным способом.
а устранение влияния шума - линейным фильтром, частный случай - КИХ фильтр с равными коэффициентами - т е суммирование отсчетов
Ваши домыслы никак не относится к реальности. К начальной теории о всём - возможно и имеет какое отношение, но не к аппаратной реализации SAADC.
Для примера возьмите хотя-бы HX711. Оно имеет 24 бита, но определить ступени в сигнале с генератора с 14 битным DAC нет никакой возможности. Т.е. её эффективное разрешение лежит в области до 14 бит.
Причины:
1. Шумный и нестабильный Ref
2. Нелинейности самого ADC (и без разницы тип)
3. Большой температурный уход параметров и соответствующий разброс - само преобразование влияет на температуру, что приводит к уходу параметров следующего замера.

Вот по первой причине данных от Nordic нет, но известно что в самом чипе идут процессы с изменение тока от 32.7 мА на вывод RF TX + CPU c контроллерами от 9 мА до пары мкА. Это броски от 14 тысяч раз (42 мА и 3 мкА), т.к. сама коммутация создает фронты ещё поболее. Туда-же и наличие передатчика который наводит доп. шумы на нелинейные элементы (детектирование).
Про нелинейность ADC указано в самой документации и даны четкие уровни (до 9 бит).
Про температурный уход SAADC, кроме цифр "типичный" связанных с ним параметров, в документации четко говорится, что обязательна перекалибровка при изменении температуры на 10 С.

Сложите эти параметры, наложите на замер с описанными вами методиками и надеюсь, то прозреете и осознаете что причина кривости в самой аппаратной реализации и никакие математические ухищрения вам не помогут, а только усугубят дело (или создадут бессмысленную работу CPU) .
 

pvvx

Активный участник сообщества
А для пример разберите почему XH711 при наличии на выходе 24 бит не может отличить шаг 14 битного DAC на её входе.

Подсказки:

Внутренний шум у неё заходит в старшие 14 бит. Опорный источник так-же шумный и имеет малую стабилизацию от внешнего шума источника питания. Температурный дрейф не вписывается в 14 бит стабильности замера за время его замера. Это всё идет на громадный цифровой фильтр с децимацией. Как итог - непосредственно 24-х битный выходной код имеет разброс по “шуму” в 8 младших бит. Казалось бы, что шаг 14 битного DAC должен быть зарегистрирован несколькими замерами и вашими никчемными фильтрами, но нет. За время их накопления изменяются такие параметры как температура и шум по питанию. В итоге видим усредненную волну, ничем не отличающуюся от простого ухода описанных параметров за тот же период оверсемплинга и любой другой внешней фильтрации. Совокупность искажений, шумов, встроенных методов цифровой фильтрации и прочих параметров чипа и дает на выходе не более 14 эффективных бит.

Безусловно, можно создать специфические физические условия для функционирования данного чипа и вытянуть ещё один бит – термостат, прецизионный источник питания, полная экранировка... Но стоит ли игра свеч?

С nRF это аналогично. И пока нет реальных тестов думать о типах доп.фильтров и прочих фигнях не имеет смысла, т.к. не известно что из себя представляет сам SAADC у Nordic и каковы его специфики реализации.
 

pvvx

Активный участник сообщества
@nikolz - а все ваши познания относятся к классу параллельных R2R ADC с учетом что Ref стабильнее младшего разряда. :p
В итоге мы тут и имеем от вас детсадовские размышления о начальных принципах цифровой обработки аналоговых сигналов.
 

pvvx

Активный участник сообщества
Прецедент кривости ADC у нас уже есть - документация гласит:
ESP8266EX is embedded with a 10-bit precision SAR ADC.
Но итого с него ни с каким фильтром и/или передискретизацией не выходит более 7 эффективных бит. Тут даже не назвать “эффективных”, т.е. его ref и прочие внутренние влияния не позволяют говорить и о 4-х эффективных битах.
И обратные прецеденты есть - RTL8195 c заявленными характеристиками значительно хуже реальных (реальные при нормальной обработке и коррекции за 16 бит).
 

pvvx

Активный участник сообщества
@nikolz - Вот это понятие "эффективные" биты и переносите на принципы обработки R2R параллельных ADC со стабильностью за пол младших разряда. Что тоже не совсем корректно из-за массы исключений связанных с другими реальными параметрами реализации ADC в чипе...
 

nikolz

Well-known member
@nikolz - Вот это понятие "эффективные" биты и переносите на принципы обработки R2R параллельных ADC со стабильностью за пол младших разряда. Что тоже не совсем корректно из-за массы исключений связанных с другими реальными параметрами реализации ADC в чипе...
ну и какой смысл с Вами что-то обсуждать?
Вместо обсуждения технических вопросов Вы начинаете оскорблять собеседника.
Ваши фобии сильнее Вашей логики.
Поэтому не вишу смысла в беседе с Вами.
продолжайте рассказывать про меня.
 

pvvx

Активный участник сообщества
ну и какой смысл с Вами что-то обсуждать?
Вместо обсуждения технических вопросов Вы начинаете оскорблять собеседника.
Вам и раскрыты технические вопросы.
Ваши фобии сильнее Вашей логики.
Поэтому не вишу смысла в беседе с Вами.
продолжайте рассказывать про меня.
Фобии и неуважение к собеседнику походу только у вас. Гоните постоянную ложь и глупость вместо тех. ответов.
 
Сверху Снизу