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

CH582M (СH581, CH582, СH583)

brain13

New member
Проблему решил. Не заводился кварц.
Интересно, что у него нет встроенного RC генератора. Он ему особо-то и не нужен, но чипы от TI, nRF, SiLabs стартуют с него, а потом переключаются на внешний.
Получается, если кварц замёрзнет - будет полный кирпич, даже аварийно светодиодом не поморгать...
Ну ладно, работаем с тем что есть.
 

pvvx

Активный участник сообщества
А там нет никаких хитрых efuse в чипе?
 

brain13

New member
А там нет никаких хитрых efuse в чипе?
Хороший вопрос.
Насколько я понял, там в принципе нет высокочастотного RC генератора. Но Системная шина может переключиться на 32кГц RC. Но чтобы переключиться нужно сначала стартануть, а стартануть без кварца он не может.
efuse у чипа нет, есть User Non-volatile Configuration Information - но это просто числа во флешке, которые считывает ROM bootloader и опять же он не запустится без кристалла.

Я понял так, буду рад ошибаться.
 

pvvx

Активный участник сообщества
Т.е. программа старта в ROM настолько кривая, что не может стартануть со встроенного RC генератора?
Он же указан в доках... :eek:

Быстрый тест только питания с замкнутым кварцем говорит, что что-то там дергается после RST. На более глубокое копание пока нет времени...
 

brain13

New member
pvvx, До ROM ещё дойти нужно, а для этого нужно тактирование. Старт с RC должен делаться аппаратно, но xxx MHz RC у него нет.

Я делал тесты с замкнутым кварцем, при подаче питания BOOT не дёргается, потребление 1мА. Если во время работы BLE закоротить кварц - тоже потребление 1мА.
После раскорачивания - чип стартует.
 

pvvx

Активный участник сообщества
pvvx, До ROM ещё дойти нужно, а для этого нужно тактирование. Старт с RC должен делаться аппаратно, но xxx MHz RC у него нет.

Я делал тесты с замкнутым кварцем, при подаче питания BOOT не дёргается, потребление 1мА. Если во время работы BLE закоротить кварц - тоже потребление 1мА.
После раскорачивания - чип стартует.
Значит убогий чип. Для старта после sleep в BLE ему тоже потребуется заводить кварц, что и означает длительное просыпание с лишним потреблением.
Ну чип уродец - что тут сделать?

У Telink чипов серии TLSR825x тоже беда, но с часовым кварцем. Если его использовать, то он очень долго стабилизируется, а чип в это время кушает батарейку. По этой причине там используют только RC генераторы и уже после кварц.
 

pvvx

Активный участник сообщества
Рисунок говорит, что на 32K возможно сделать HCLK.
1675775934450.png
Ну не будет работать BLE и USB. Но когда после просыпания до них ещё доберется, тогда кварц уже стабилизируется...
 

pvvx

Активный участник сообщества
И в заголовке датташита:
  • - 32-bit RISC processor WCH RISC-V4A
  • - Support RV32IMAC instruction set, hardware multiplication and division
  • - Low-power two-stage assembly line, high-performance 1.56DMIPS
  • - Multi-speed system frequency: minimum 32KHz
  • - Unique high-speed interrupt response mechanism
 

pvvx

Активный участник сообщества
Тоже самое с часовым кварцем - 32KHz oscillator configure register (R8_CK32K_CONFIG): Reset value = кварц выключен, но включен RC 32K.
После deep-sleep снова запускать?

А для HCLK в
System clock configure register (R16_CLK_SYS_CFG): Reset value - HCLK=CK32M
High frequency clock module power control register (R8_HFCK_PWR_CTRL): Reset value - External 32MHz oscillator Power on.

Т.е. старт только с внешнего кварца на 32MHz.
Это значит, что 32K использовать для работы CPU в LowPower никак? Только разово, перейдя с 32MHz с выбросом при старте по току?
 

pvvx

Активный участник сообщества
Это всё говорит о том, что на CH58x:
  • В BLE использовать часовой кварц нельзя – стабильный счет времени недоступен.
  • При работе в малом потреблении (малый ток источника при HCLK от 32K) нельзя использовать никакие sleep и прочие функции. Переход в режим малого потребления возможен только с большого потребления, а не наоборот, как это обычно нужно.
  • Старт возможен только с кварца 32M (с ожиданием стабилизации ?)
Выходит, что данные чипы будут самыми народными. Имеют кучу глупостей для обсуждения.
 

sed_alex

New member
Хороший вопрос.
Насколько я понял, там в принципе нет высокочастотного RC генератора. Но Системная шина может переключиться на 32кГц RC. Но чтобы переключиться нужно сначала стартануть, а стартануть без кварца он не может.
efuse у чипа нет, есть User Non-volatile Configuration Information - но это просто числа во флешке, которые считывает ROM bootloader и опять же он не запустится без кристалла.

Я понял так, буду рад ошибаться.
HSI тут нет вообще - это факт и без кварца HSE стартануть не получится никак.
Но оно как бы и ненадо для SOC, ибо BLE без кварца HSE оно вообще то не работает....

Запуск LSE так же как и на STM32L0xx может занимать весьма продолжительное время (несколько сот милисекунд и об этом упоминается в мануале)
Когда у нас устройство находится в режиме пониженного потребления HSE кварц не пашет, при этом LSE и\или LSI продолжают работать, пинок под зад для просыпания к следующему сеансу связи мы получаем от модуля RTC или от выводов микроконтроллера настроенных на прерывание.

Что касается мануала в разделе пониженного потребления а именно вот этой части:

You can select whether to turn on LSE or LSI, and to maintain power supply
of RAM2K, RAM30K, USB and RF configurations. After a wake-up event is detected, first the main
LDO is turned on, then the clock will run, and finally the core will be woken up, the program will
continue to run, and a higher frequency can be reset when needed.



Точнее про:
"LDO is turned on, then the clock will run, and finally the core will be woken up, the program will
continue to run, and a higher frequency can be reset when needed."

Речь тут идет о запуске HSE !!!! Все время сна у нас LSE и\или LSI - работают !!!

- в зависимости от того как они были настроены.
Кто не верит может это легко проверить загрузив пример: CH583-master\src\EVT\EXAM\PM там все эти режимы есть.

P\S Для понимания режимов работы откройте RM на любой камень от STM там все режимы расписаны, просто китайцы так умудрились мануал написать что его можно трактовать двояко.
 

pvvx

Активный участник сообщества
Все время сна у нас LSE и\или LSI - работают !!!
Как они оба могут работать, если значение регистров по старту не позволяют это сделать?
В неполном сне (остановлен только CPU)? Энергонезависимые регистры?
 

pvvx

Активный участник сообщества
Если есть регистры, которые не сбрасываются по wake-up event или переходу в sleep SoC, но сбрасываются по сигналу reset чипа, то это обычно указывают.
Во многих чипах BLE есть специальные регистры для пользователя, не сбрасывающиеся при deep-sleep и в них хранятся системные флаги и часть отдают пользователю... Но такое обычно специально описывают в мануале к чипу и к SDK - какие можно использовать для хранения флагов пользователя, а какие незя (используют либы SDK).
 

pvvx

Активный участник сообщества
К примеру в регистрах "подтяжек" GPIO тоже можно хранить флаги для deep-sleep :)
 

sed_alex

New member
В описании рестарта указано следующее:
4.1 Reset control
The system supports 6 types of resets, including Real Power on Reset (RPOR), external Manual Reset (MR),
internal Software Reset (SR), Watch-dog Time-out Reset (WTR), Global Reset by Waking under Shutdown
Mode (GRWSM) and Local Reset by Waking (LRW).
The R8_GLOB_RESET_KEEP register and the RB_ROM_CODE_OFS register are reset only when RPOR
or GRWSM occurs, and are not affected by other types of resets.
Please refer to the timing parameter table in Section 20.5 for the timing parameters and reset property
parameters in the figure below

Полный резет мы сможем получить только если будет ShutDown (который в принципе не используется при спячке в BLE ибо устройство рестартанет со сбросом памяти) как будто мы выключили питание и заново его включили, соответсвенно - тут да, отловили RPOR низкочастотный генератор - сбросился, стартуем с HSE.
Если же в спячку мы ушли в режим Sleep то по выходу у нас нет сброса, LSE или LSI продолжают работать, стартует HSE и пошел рабочий цикл, до следующего ухода в сон.
 

pvvx

Активный участник сообщества
Т.е. возможно запустить работу BLE с часовым кварцем, чтобы правильно отслеживать время?
Или там старт из сна будет длинным?

External LSE oscillator enabled to available time - 300..1500 ms (!)
External LSE oscillator enabled to stabilization time - 1500..5000 ms (!) :eek:
External HSE oscillator enabled to available time - 200 us
Wakeup time to exit from low-power status: Sleep Mode TSUHSE+300..400 us, Shutdown Mode TSUHSE+1..5 ms.
 

pvvx

Активный участник сообщества
nRF52840
Startup time for 32.768 kHz crystal oscillator 0.25 s
Power-up time for various 64 MHz crystal oscillator:
Epson TSX-3225 50 μs
Epson FA-20H 60 μs
Epson FA-128 75 μs
NDK NX1612AA 195 μs
NDK NX1210AB 210 μs

Это сразу видно на графике PowerProfiler...
 

sed_alex

New member
Т.е. возможно запустить работу BLE с часовым кварцем, чтобы правильно отслеживать время?
Или там старт из сна будет длинным?
Часовой кварц мы запустили при включении устройства (еще до начальной инициализации BLE) и больше его не трогаем он работает постоянно, часики RTC тоже тикают.
При уходе в Sleep Устройство будет потреблять свои заявленные 0,7 мкА и просыпаться по таймеру когда нужно.

На счет того что CH582 - потребляет больше чем некоторые другие SOC тут все относительно, к примеру так мною любимый STM32WB030 стоит рядышком по потреблению и выигрывает только при питании от 2,4 Вольт потребляет 0,625 mkA против 0,7мкА у CH582. Если же питание будет 3.0 то он уже проигрывает.
 

pvvx

Активный участник сообщества
На счет того что CH582 - потребляет больше чем некоторые другие SOC тут все относительно, к примеру так мною любимый STM32WB030 стоит рядышком по потреблению и выигрывает только при питании от 2,4 Вольт потребляет 0,625 mkA против 0,7мкА у CH582. Если же питание будет 3.0 то он уже проигрывает.
7 Дек 2022
DC-DC включен.
Режим sleep - 2.7мкА
Пробуждающий импульс включения в режим активности более 6 мА (с емкостным спадом ~0,4 мс)
Startup SoC - от 1.5 ms
И так как DC-DC то при понижении напряжения питания ток возрастет.
 

pvvx

Активный участник сообщества
Без включенного DC-DC выходит кошмар, а не BLE. (BLE издавна считается, если пиковые токи до 15 мА)
Без retention RAM, использование в BLE невозможно. Будет старт с инициализацией в десятки мс.
 
Сверху Снизу