• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Power Profiler

nikolz

Well-known member
Не - ADS1278 (чип-дип 128 400 руб :) ) слишком жирно и не нужно. Там обвязка будет ещё дороже...
А при точных измерениях нужна фильтрация до 10Гц.
еще есть ADS1274 -чип-дип 2100 руб.
----------------
если очень быстро не надо, то есть ADS1120 (16-Bit Noise-Free Resolution at 20 SPS )- 350 руб Али.
 

pvvx

Активный участник сообщества
https://aliexpress.ru/item/1005009757154879.html 2 268 ₽
STM32F103 надо махнуть типа на CH32V307. Тогда на разъеме указанном как TTL выйдет USB2.0HS с потоком к 32МегаБайт в сек.
Заказал побаловаться - сдуть и повесить другой чип не равно заказывать макетку... :)
 

alexkor

New member
еще есть ADS1274 -чип-дип 2100 руб.
----------------
если очень быстро не надо, то есть ADS1120 (16-Bit Noise-Free Resolution at 20 SPS )- 350 руб Али.
Товарищи, хватит нести херню :). 1278 был предложен как временный логер для тестов нового генератора треугольника. Использовать его как Power-Profiler даже в голове не укладывается :). У вас тоже много дорогих приборов, а у меня есть система на таком.
 

pvvx

Активный участник сообщества
Товарищи, хватит нести херню :). 1278 был предложен как временный логер для тестов нового генератора треугольника. Использовать его как Power-Profiler даже в голове не укладывается :). У вас тоже много дорогих приборов, а у меня есть система на таком.
А все китайцы, у которых пытался купить, на али попросили отменить заказы на модули с ADS1274. Говорят больше их нет. Наверно перезаказывали от одного поставщика. Все вернули бабки... и закрыли страницы с такким заказом. Есть ещё несколько, у кого якобы они пока в наличии, но смысла заказывать нет, только туда-сюда перекидывать счета оплаты - возвраты от али...
 

alexkor

New member
А все китайцы, у которых пытался купить, на али попросили отменить заказы на модули с ADS1274. Говорят больше их нет. Наверно перезаказывали от одного поставщика. Все вернули бабки... и закрыли страницы с такким заказом. Есть ещё несколько, у кого якобы они пока в наличии, но смысла заказывать нет, только туда-сюда перекидывать счета оплаты - возвраты от али...
у меня 1274 много накопилось в разных разработках вот и хотел вместо хренового осцила для теста треугольника использовать. У них просто DC приличное в отличии от звуковых. Как раз для треугольника на десятки секунд. Решил переделать древнюю схему треугольника от Jim Willims. Схема у него как VCO сделана с непрерывным диапазоном 1Hz - 1MHz. Хочу изменить на низкие частоты в LTspice. Но все закончить некогда :)
 

zorromen1

New member
Подскажите по коду, ибо нет полного описания, есть STM32F103 и INA219, прога на делфи работает четко, нужно повышать разрешение, поэтому решил взять BL702 и CH592F, ну и INA226 и INA228. Получил BL702 и CH592F и INA226, на STM32F103 все взлетело сразу. Но с 702 и 592 не получается, программа делфи видит устройство, но не видит никакую INA2xx. Решил глянуть код 702 и 582, там как понял в обоих случаях настроено на ina228 и другие ина не будут работать. CH582F переделал на CH592F в MounRiver Studio на базе их примеров для 592, компиляция пошла, но опять вижу что на 228 все настроено
Код:
#define USE_I2C_24BIT 1
Сбивание дефайна на ноль ломает компиляцию. Там нужно пилить код. Ну и логи по i2c
Код:
I2C: Power On
I2C: Set CLK 800 kHz, stretch 0
Flush I2C Buffer
I2C: Timer Stop
I2C: Write 80/00:c000
I2C: Timer Stop
I2C: Error write addr: 80:00, data: c000!
I2C: Write 80/00:0000
I2C: Timer Stop
I2C: Error write addr: 80:00, data: 0000!
I2C: Write 80/0b:4000
I2C: Timer Stop
I2C: Error write addr: 80:0b, data: 4000!
I2C: Write 80/01:0000
I2C: Timer Stop
I2C: Error write addr: 80:01, data: 0000!
I2C: Set CLK 800 kHz, stretch 0
Flush I2C Buffer
I2C: Timer Stop
I2C: Write 80/00:c000
I2C: Timer Stop
Есть ли какие описание поддержки каких ина на каких контроллерах уже реализовано, и по делфи вопрос, он работает с 228? Если нет, то как работать с 228, через веб версию?
 

pvvx

Активный участник сообщества
Есть ли какие описание поддержки каких ина на каких контроллерах уже реализовано, и по делфи вопрос, он работает с 228? Если нет, то как работать с 228, через веб версию?
Для 24-х битных и 16 битных идут разные версии программы.
И готовые вложены в "bin".
 

pvvx

Активный участник сообщества
Чип содержит настройки для разных INA. Они устанавливаются в программах.
По этому первая инициализация может не работать.
Так же на али пошли INA226 с браком и у них адрес не 0x80, а 0x88 и кривые смещения...
 

pvvx

Активный участник сообщества
Программа для чипа CH582F работает со всеми INA. Но используются разные варианты программ на компе (PowerProfiler_INA228_xx.exe/PowerProfiler_xx.exe ). И web (htm) разные для разных INA (тип ina в названии и заголовке...).
 

zorromen1

New member
Пока не приехал INA228, INA226 подключил к STM32F103, на нем все работает как часы. Почему и не понимал, что не так с другими чипами, на счет ch593f, я не знаю, может код нужно менять для него и не подходит с 583 исходники, но когда получал логи, я подцепился логическим анализатором чтобы глянуть что там по i2c. А там была только единица, никаких движений. То есть как будто не инициировалась i2c, хотел глянуть регистры периферии, а фиг, MounRiver вообще не показал ее наличие, как будто описания svd нет, плюнул на это дело. Нужно разбираться чего студия не хочет выводить переферию, на ch32v003 которую клепаю, все выводит. За BL702 вообще, хоть и смог компилировать, и заливать, но там вообще не ясно в какой ide вести разработку, чтобы можно было точки останова поставить например, и глянуть регистры. Так батниками собирай и заливай. Тоже пока оставим до получения ina228, а там и будем пробовать снова. Кстати раз контроллеры есть в наличии, какой лучше применить для 228, ch592f или bl702?
 

pvvx

Активный участник сообщества
Для ch592f нужен другой include -- #include "CH59x_common.h" и файлы Link.ld и т.д. Т.е. от его "EVT".

Включение отладки для WCH чипов производится в их утилитах для программирования.

STM32F103 - худший из всех для работы с I2C и USB.
 

pvvx

Активный участник сообщества
> какой лучше применить для 228, ch592f или bl702?
bl702 я больше не поддерживаю, хотя он работает на высоких CLK I2С и очень прилично в USB.
ch583 ограничен и не берет минимальный период INA228. Но он и не нужен, т.к. в нем INA228 дает разрешение ниже 8 бит.
 

pvvx

Активный участник сообщества
не подходит с 583 исходники,
Размеры RAM у 583 и 592 разные.
Разные максимальные частоты CPU.
Возможно и разные тайминги работы Flash.
По этому все файлы SDK для сборки надо сменить.
чтобы можно было точки останова поставить например, и глянуть регистры.
В регистрах никто ныне не ковыряется. Все современные программы очень зависимы от тайминга исполнения и используют sleep, а отладчик останавливает CPU и не работает если чип спит. В итоге отладчик с современными чипами неприменим. Отладку по всяким SWD можно использовать только для примера “Hello World!”. В остальных случаях, если без отладки скучно – printf в SWD и подобное.
 

zorromen1

New member
Да я хотел глянуть что с i2c периферией, может она где не включилась, отладчик тут очень помогает, понятно что отлоадка с остановами не удобна для реалтайма и сна, но нужна для отладки непонятностей. Вообще я подсел на цветной вывод в терминал, чтобы буквы были цветные, xterm256 для кодирования цвета, легче отладку смотреть. Цвета можно поискать в описании xterm256 например тут :


Вот макросы для кодирования цвета
1.jpg

C:
#define CLRscr "\033[2J\033[H"
#define FG(color) "\033[38;5;" #color "m"
#define BG(color) "\033[48;5;" #color "m"
#define RESET1 "\033[0m"
#define BOLD "\033[1m"
#define UNDERLINE "\033[4m"
Вот пример как принты заполнить, FG и BG
это цвет текста и фона, сброс возвращает белый цвет на черном фоне, и чем прикольны макросы эти что их не нужно вставлять в двоеточия в принтах, то есть они вне ковычек двойных

Код:
 EEPROM_LOG ("  " FG (226) "idx=%u" RESET1 ", adr=" FG (141) "0x%08X" RESET1 ", val=" FG (82) "%u:0x%04X" RESET1,
                    index, address, value, value);
2.png
А вот что получаем
3.jpg
 

pvvx

Активный участник сообщества
Строки с цветами требуют много места в Flash MCU, а его и так не хватает.
По этому, отладочные сообщения вообще пишутся с максимум одной буквой типа что это. Потом это всё равно придется удалять, т.к. любой printf занимает время CPU и ресурсы.
И времени на оформление и придумывания рамок и стилей для отладки всегда нет:
1. Включение printf c интересуемой точкой программы - дело пары секунд.
2. Прошивка SoC/MCU происходит до десятка секунд.
3. Запуск и просмотр что выдал этот единственный printf - пара секунд
4. Удаление этого printf - до пары секунд.

В итоге имеем до 20 секунд на всё и жизнь раскрашенного сообщения менее пары секунд :)
Ковыряние в регистрах чипа и включение Debug в любой IDE среде - это процесс занимающий более нескольких минут. Чистое расточительство времени на отладку.
 

pvvx

Активный участник сообщества
Ковыряние в регистрах чипа, включение Debug в любой IDE среде - это процесс занимающий более нескольких минут. Чистое расточительство времени на отладку и полное утомление через час при поиске нужных адресов, регистров, и т.д., приводящее к ещё большим ошибкам и путанице. Как и время на оформление и раскраску строк printf, которые требуют дополнительного внимания и подвержены ошибкам - иначе потом вывод отладки пойдет кракозябами и придется всё перепрошивать и снова...
 

zorromen1

New member
Спорить не буду, каждый сам решает как делать. Я только показал что есть такая возможность. Когда делаешь библиотеку нужно иметь подробные логи пока ее отлаживаешь, поэтому можно ввести как уровни логирования, так и общее отключение логов для релиза. Русские буквы, да потребляют в два раза больше места, цвет можно включить для всей строки в самом начале и выключить в конце. Я его использовал с J-link RTT, милое дело.

1765601708037.png
 

pvvx

Активный участник сообщества
Когда делаешь библиотеку нужно иметь подробные логи пока ее отлаживаешь, поэтому можно ввести как уровни логирования, так и общее отключение логов для релиза. Русские буквы, да потребляют в два раза больше места, цвет можно включить для всей строки в самом начале и выключить в конце. Я его использовал с J-link RTT, милое дело.

Посмотреть вложение 14876
При работе с INA228 любой вывод в лог вызовет дырку опроса по I2C.
Если период опроса 140 мкс (INA226 и прочие), то на USB и прочие разборки уже остается мало:
1765617323415.png
А при максимальной частоте опроса INA228 в 50 мкс уже всё - чип не успевает - там надо ещё больше байт читать по I2C, в отличии от 16-ти битных INA.
Предел для CH5xx составляет 84 мкс при частоте CLK I2C к 1.8 МГц. И у WCH есть Fast Interrupt, в отличии от STM.
Но вы пропагандируете туда ещё цветной лог впихнуть :)
Тем более у CH5xx работа с Flash не кэшируется и он исполняет программу не быстрее чем если бы работал на частоте 16 МГц.
 

pvvx

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

Т.е. приходится выбирать и обсасывать каждую команду и алгоритмы по скорости выполнения в данном чипе.
 
Сверху Снизу