• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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

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