А твой прибор моет показать 2 микроампера ???
Я заказал у другого. Жду.
ко мне вопрос? сомневаюсь уже что прибор чует такие токи.
Update: Да, мне нужен более чувствительный приборчик.
The RTC is designed to minimize the power consumption: the Real-Time Clock functionality only adds typically 300nA to the current consumption.
The RTC keeps working in reset mode and its registers are only reset by a VBAT power-on, if it has previously been powered off. As the RTC register values are not lost after a system reset, the calendar keeps the correct time and date until VDD and VBAT power down.
А зачем тебе время, если нет питания? Или ты на пассивных ЖК отображаешь - без подсветки?
Я собираюсь отображать на панели P10, которая весит на улице, и включать ее будут, в рабочие часы. Ночью работать не будет.
А что за часы? Мой проект часов на СТМ и Р10 видели?
Я ваш проект не видел, но библиотеку вашу использую. Подскажите, а в ней есть возможность выравнивания по правому краю ?
В одно действие не помню такого, но в два точно можно.
Вы можете вычислить длину Вашего текста для текущего фонта в пикселях методом:
stringBounds()
и подобрать такое стартовое Х, чтобы конец строки был на выбранной координате
Вот так сделал.
byte positio = (DISPLAYS_ACROSS*32)- dmd.stringWidth(message.c_str(), message.length())
Пришли мне 2 Blue pill
Одна на STM32F103T6
Вторая CH32F103T6
С потреблением у них все в порядке, тестором не смог замерить, т.е. меньше 1 ма
Теперь разница между чипами.
STM32 прошивается мгновенно CH32 тупит очень сильно.
Для примера bootloder (generic_boot20_pc13.bin)
STM - 2 сек, CH - 33сек
Залил скейтч dmd_monochrome в CH работает, но с тормозами , аж глаза болеть начинают от моргания.
Возник вопрос, это только у меня такое CH или у всех так работает. ???
Надо знатоков STM32 подождать, но если бы подобное было на AVR - я бы сказал, что тактовая низкая у CH.
Я не заметил разницы в работе между CH STM32, да, CH прошивается сильно медленнее.
CH мне не попадалось, не пробовал.
GD32 работает с dmd так же, как STM
Если рассуждать абстрактно, то на самом деле именно так и проявляется разница между оригиналом и клоном… или между хорошим и плохим клоном.
Типа все совместимо, но иногда работает не так.
Как запросить тактовую частоту ?
в чипе? думаю никак, баловаться настройками тактовых генераторов и зажеч светодиодик в зависимости от выставленной частоты.
Или таймер какой нибудь вывести делителем наружу частоту и смотреть осцилографом.
При старте встроенный генератор запускается на 8 МГц насколько я помню, а если на 72 МГц не удается запуститься, то так на пониженной и дальше работает.
я так запускаю (не Arduino IDE)
Спойлер
/*http://dimoon.ru/obuchalka/stm32f1/uroki-stm32f103-chast-4-nastroyka-rcc.html?ysclid=leflwcqmz5475683246*/
//Настраиваем тактирование системы от внешнего кварца
//через PLL на саксимально возможных частотах.
//Внешний кварц должен быть на 8МГц
//Возвращает:
// 0 - завершено успешно
// 1 - не запустился кварцевый генератор
// 2 - не запустился PLL
int ClockInit(void) {
__IO int StartUpCounter;
////////////////////////////////////////////////////////////
//Запускаем кварцевый генератор
////////////////////////////////////////////////////////////
RCC->CR |= RCC_CR_HSEON; //Запускаем генератор HSE
//Ждем успешного запуска или окончания тайм-аута
for(StartUpCounter=0; ; StartUpCounter++) {
//Если успешно запустилось, то
//выходим из цикла
if (RCC->CR & RCC_CR_HSERDY) break;
//Если не запустилось, то
//отключаем все, что включили
//и возвращаем ошибку
if (StartUpCounter > 0x1000) {
RCC->CR &= ~RCC_CR_HSEON; //Останавливаем HSE
return 1;
}
}
////////////////////////////////////////////////////////////
//Настраиваем и запускаем PLL
////////////////////////////////////////////////////////////
//Настраиваем PLL
RCC->CFGR |= RCC_CFGR_PLLMULL_0 | RCC_CFGR_PLLMULL_1 | RCC_CFGR_PLLMULL_2; //PLL множитель равен 9 // 0111: PLL input clock x 9
RCC->CFGR |= RCC_CFGR_PLLSRC_HSE; //Тактирование PLL от HSE
RCC->CR |= RCC_CR_PLLON; //Запускаем PLL
//Ждем успешного запуска или окончания тайм-аута
for(StartUpCounter=0; ; StartUpCounter++) {
//Если успешно запустилось, то
//выходим из цикла
if (RCC->CR & RCC_CR_PLLRDY) break;
//Если по каким-то причинам не запустился PLL, то
//отключаем все, что включили
//и возвращаем ошибку
if (StartUpCounter > 0x1000) {
RCC->CR &= ~RCC_CR_HSEON; //Останавливаем HSE
RCC->CR &= ~RCC_CR_PLLON; //Останавливаем PLL
return 2;
}
}
////////////////////////////////////////////////////////////
//Настраиваем FLASH и делители
////////////////////////////////////////////////////////////
//Устанавливаем 2 цикла ожидания для Flash
//так как частота ядра у нас будет 48 MHz < SYSCLK <= 72 MHz
FLASH->ACR |= FLASH_ACR_LATENCY_1; // 010 Two wait states, if 48 MHz < SYSCLK ≤ 72 MHz
//Делители
RCC->CFGR &= ~RCC_CFGR_PPRE2; //Делитель шины APB2 отключен // 0xx: HCLK not divided
RCC->CFGR |= RCC_CFGR_PPRE1_DIV2; //Делитель нишы APB1 равен 2 // 100: HCLK divided by 2
RCC->CFGR &= ~RCC_CFGR_HPRE; //Делитель AHB отключен // 0xxx: SYSCLK not divided
RCC->CFGR &= ~RCC_CFGR_SW; //Переключаемся на работу от PLL // 10: PLL selected as system clock
RCC->CFGR |= RCC_CFGR_SW_1; //Переключаемся на работу от PLL // 10: PLL selected as system clock
//Ждем, пока переключимся
while(!(RCC->CFGR & RCC_CFGR_SWS_1));
//После того, как переключились на
//внешний источник такирования
//отключаем внутренний RC-генератор
//для экономии энергии
//RCC->CR &= ~RCC_CR_HSION; // При отключенном HSI Или его частоте выше 24 МГц не работает запись/стирание FLASH пользовательской памяти!!!
//Настройка и переклбючение сисемы
//на внешний кварцевый генератор
//и PLL запершилось успехом.
//Выходим
return 0;
}
не, там должна быть HAL-функция для запроса частоты… но вот какой? В СТМ32 этих частот много
Проще всего либо вывести выход таймера на пин, как уже сказали, либо задать интервал побольше, несколько секунд или минут - и засечь по секундомеру, сколько там будет на самом деле.
При всем уважении, верить кал функциям так себе…
Включение / работоспособность функциональных блоков МК можно только по состояния регистров определить.
Можно подумать, что HAL берет информацию из астрала… из тех же регистров и берет.
Вопрос в качестве, одно дело “на коленке” с помощью hal проверить работоспособность периферии и совсем другое писать на нашем в продакшн и проверять реальное состояние чипа. Впрочем дело вкуса.