pvvx
Активный участник сообщества
RTL8710BN: Тестирование двух встроенных BOR
Для теста 2-х встроенных BOR наберем простейшую программу, полученную путем копипаста из примеров:
По BOR2 модуль входит в sleep, чтобы отобразить это дело на графике тока.
Зальем это безобразие в модуль. И подключим модуль 2-мя проводами (только питание) через 1 Ом к регулируемому БП и измерителю напряжения на модуле и тока на этом сопротивлении. Никаких дополнительных емкостей по питанию модуля не ставим - пусть мучается через 1 Ом для получения дополнительных результатов теста. На БП зададим вывод пилы по напряжению со скоростью нарастания и спада пусть 0.096В в секунду.
Произведем замер:
Более точные измерения уровней срабатывания BOR можно получить путем игры напряжения питания около их порогов.
В итого на данном экземпляре модуля:
BOR1 порог включения 2.748В, порог отключения 2.54В.
BOR2 порог включения 3.12В, порог отключения 3.00В.
Т.е. сделаны в самый раз для систем с накопительной емкостью типа ионистора. Безусловно с дополнением отключения модуля и ограничения токов от источника заряда, пока зарядка не достигнет норм для реального применения, а не тестов.
ЗЫ: Всё оборудование измерения самодельное, но перед замерами калибруется к поверенным приборам.
Для теста 2-х встроенных BOR наберем простейшую программу, полученную путем копипаста из примеров:
Код:
/* Test BOR2 */
#include "device.h"
#include "sleep_ex_api.h"
#include "analogin_api.h"
#include "sys_api.h"
#include "diag.h"
#include "main.h"
volatile int lowpower = 0;
// if flag SOCPS_SYSIrq(): REG_SYS_SLP_WAKE_EVENT_STATUS0 & 0x40000000
void bor_intr_Handler(void)
{
DBG_8195A("Low voltage!\n");
lowpower = 1;
}
void test_bor2(void)
{
uint16_t adc_read;
analogin_t adc_vbat;
analogin_init(&adc_vbat, AD_2);
// mbed BOR2 test
BOR2_ModeSet(BOR2_INTR); // REG_SYS_NORESET_FF & 0xFFFFFF7F
BOR2_INTRegister((void *)bor_intr_Handler); // bor_intr_handler = bor_intr_hook_fun;
BOR2_INTCmd(ENABLE); // SOCPS_SetWakeEvent(0x40000000, NewStatus != 0); -> REG_SYS_SLP_WAKE_EVENT_MSK0 | 0x40000000;
adc_read = analogin_read_u16(&adc_vbat);
DBG_8195A("ADC_Vbat: 0x%x\r\n", adc_read);
vTaskDelay(50);
while(1) {
if(lowpower) {
lowpower = 0;
adc_read = analogin_read_u16(&adc_vbat);
DBG_8195A("ADC_Vbat: 0x%x\r\n", adc_read);
sleep_ex(SLEEP_WAKEUP_BY_STIMER, 500);
}
}
}
void main(void)
{
if(xTaskCreate( (TaskFunction_t)test_bor2, "TstB2", (2048/4), NULL, (tskIDLE_PRIORITY + 1), NULL)!= pdPASS) {
DBG_8195A("Cannot create ADC Vbat demo task\n\r");
}
vTaskStartScheduler();
while(1);
}
Зальем это безобразие в модуль. И подключим модуль 2-мя проводами (только питание) через 1 Ом к регулируемому БП и измерителю напряжения на модуле и тока на этом сопротивлении. Никаких дополнительных емкостей по питанию модуля не ставим - пусть мучается через 1 Ом для получения дополнительных результатов теста. На БП зададим вывод пилы по напряжению со скоростью нарастания и спада пусть 0.096В в секунду.
Произведем замер:
Более точные измерения уровней срабатывания BOR можно получить путем игры напряжения питания около их порогов.
В итого на данном экземпляре модуля:
BOR1 порог включения 2.748В, порог отключения 2.54В.
BOR2 порог включения 3.12В, порог отключения 3.00В.
Т.е. сделаны в самый раз для систем с накопительной емкостью типа ионистора. Безусловно с дополнением отключения модуля и ограничения токов от источника заряда, пока зарядка не достигнет норм для реального применения, а не тестов.
ЗЫ: Всё оборудование измерения самодельное, но перед замерами калибруется к поверенным приборам.
Вложения
-
98.1 KB Просмотры: 1
Последнее редактирование: