ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
24 ноября
1555917 Топик полностью
Связанные сообщения
Risc-VWch
Китайцы пояснили насчёт остановки таймера в отладке. Есть отладочный регистр dcsr и в нём бит 9 отвечает за остановку СисТика.2025-08-20
для CH32V317 ключи: -mcpu=ch32v317 -mcmodel=medlow -mabi=ilp32f -Os. в данном случае ключ -march=rv32imafc не является не...2025-06-18
Про FLASH в CH32V203. Вкратце: похоже, что при частичной записи страницы, автоматически стирается и перезаписывается вся страниц...2025-04-02
Нашёл решение, как в Виндовс 10, 11 запретить обновлять драйвер. Конкретно CH340. Почему-то новая версия этого драйвера отказыва...2025-03-31
На озоне за сутки выкупили все отечественные RISC-V микроконтроллеры2025-03-15
У CH32V003 отладка и загрузка ПО по одному проводу идет что ли? О.о2025-02-28
Вопрос по CH32V003.2025-02-28
У WCH заявились мелкокристаллки для всяческих моторчиков. Серия CH32M.2024-12-17
всунул и протянул. gcc теперь умеет так: riscv32-kgp-elf-g++ ..... -mcpu=к1948вк018 ...., мой вклад в импортозамещение - буквы р...2024-10-10
Немного рассуждений про ch32v307+freerto+libwchnet.a2024-07-10
Китайский CH582. Я тут опять немного прихренел от китайского МК.2024-06-19
китайцы что то изобретают - ch32v006/ch32v007/ch32m007 : Streamlined Timer. непонятое... но интересное2024-05-18
Нет ли выбросов в питании "на местах" в момент обновления? Честно сказать, я так и не решился ставить в девайсы WCH не смотря на...2024-02-12
[09.01.2024] по ходу подпрыгивании на тему "подъема-взлета" ch32v003 всунул в него CoreMark. промерил...2024-01-09
CH57x и CH58x - проблемы отладки и решение. Думаю, это относится и к другим чипам WCH.2024-01-09
нашел на китайской версии сайта WCH ннфографику про семество riscv ch32 - сделал картинку. теперь легче понять отличия. удобно ч...2023-12-11
VisionFive. SBC на RISC-V со встроенным GPU.2023-11-16
Я извиняюсь народ.) Но пролейте пожалуйста свет кто чем сейчас programmирует чипы на RISC-V?2023-11-07
Пришел десяток CH32V003 в soic8 с Ali по 13 руб. Показались удобными для всяческой мелкой хренотени. Ну и как у китайцев положен...2023-07-26
СH32V203F8P6 - 96МГц. SPI - 12MГц, ENC28J60. Ping + UDP ping-pong 50 байт + UDP "спам" 1500 пак/сек. Вот такую вот картинку вижу...2023-07-03
Цука... CH32V00x с WCHlink нихт арбайтен. Требуют WCHlinkE. "Вот нахуя так делать? И, главное, зачем?"(С)... Да знаю, знаю зачем...2023-05-12
проект выходного дня....вроде заработало! свежак KGP для riscv32-kgp-elf с поддержкой CH32Vxxx (QingKeV4, QingKeV4B, QingKeV4C, ...2023-04-10
У ядра QingKeV4 есть расширенный набор коротких команд. Их пока только WCH-ный GCC порддерживает.2023-04-06
Траблы с WCH для CH32V203RBT6.2023-03-24
Risc-V, CH32V203RBT6, MounRiver Studio IDE, Си. Отладчик WCH-Link.2023-03-22
почитал доки на свежий китайский микроконтроллер ch32v307, есть много фич которые я воображал но не было в cortex-m. похоже risc...2023-03-03
Кто-нибудь уже пробовал использовать IAR EWARM для разработки под CH32F* от WCH? У производителя можно найти примеры и библиотек...2023-01-04
[RISC-V от WCH] - перспективно для замены всего недружественного. Klen, просьба покурить. ch32v103, ch32v307. - брать. Ес...2022-03-24
Платочки в формфакторе Raspberry Pi на RISC-V грядут. Заметим, сразу идет bare metal ПО, FreeRTOS, и на картинке видим ChipLink....2021-12-01
"Сводный системный топик" :-) по китайской микрухе CH579. Предлагаю сюда добавлять кто чего нарыл. Для начала гугл-перевод даташ...2021-05-23
[WCH CH568 USB to SATA chip] - любопытный MCU2021-02-24
Allwinner обещается в этом году выкатить жЫрный RISC-V2021-02-09
ну давай Муська! еще капельку!: поразгонял gd32vf103cb + oled 0.962020-05-31
gd32vf103: выполнил обезжиривание кода rv-link/longan-nano, пришлось переделывать китайский код. меня попросили дать бинарь для ...2020-04-26
кто нибудь знает? GigaDevice планирует в gd32vf всунуть FPU или еще что нибудь, нигде не нашел их планов по захвату поляны - я б...2020-02-12
Computer Organization and Design RISC-V edition. просто бесподобны мануаЛЬ!2019-11-30
gd32vf103: Думаю можно подумать открывать новый раздел - RISCV2019-10-28
Китайцкая GigaDevice залепила мелкокристаллку на RISC-V. 108Mhz, 128K Flash, 32K RAM. На замену STM32F103, вроде как совместима ...2019-08-31
[RISC-V: ядра, SoC для микропроцессоров и микроконтроллеров] Сводный системный топик.2018-12-04
[RISC-V как предел софткорного процессоростроения]. Текущие результаты капиталистического соревнования.2018-04-28
[Сводный топик про RISC-V] Гнездо архитектуры -> -->2017-08-11
Yft (Сегодня, 12:08, просмотров: 33) ответил Yft на Для проверки взял готовое решение "PVD_VoltageJudger" из комплекта "CH32V103EVT", чуток подправил и проверил от лабораторника, всё определяет, по крайней мере при комнатной температуре.
Проверил код на другой плате, где нормальная разводка земли полигоном и шумов питания должно быть меньше, нашел обещанный гистерезис в положенных зонах. 

int main(void)
{
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
    Inputs_Init();

    PVD_Init(PWR_PVDLevel_MODE7);   //Instead supervisor
    if(PWR_GetFlagStatus(PWR_FLAG_PVDO) == SET)  software_reset();  // If low power supply
    .......
}

Ранее определил функции:



volatile uint8_t Voltage_ThresFlag=0;
// Function to perform a software reset for RISC-V CH32
void software_reset(void) {
    // Clear all reset status flags (RMVF = 1) - optional but good practice
    // This register might vary by model, check the datasheet/reference manual
    RCC->RSTSCKR |= (1 << 24);

    // Perform software reset by writing specific keys to PFIC->CFGR
    // KEYCODE = 0xBEEF, RESETSYS = 1 (bit 7)
    PFIC->CFGR = 0xBEEF0080;
}

void PVD_IRQHandler(void) __attribute__((interrupt("WCH-Interrupt-fast")));

void PVD_IRQHandler(void)
{
    if (EXTI_GetITStatus(EXTI_Line16) != RESET) //Откуда пришло прерывание
    {
        Voltage_ThresFlag = !PWR_GetFlagStatus(PWR_FLAG_PVDO);
        if (Voltage_ThresFlag == RESET) software_reset();
        //printf("Run at EXTI\r\n");
        EXTI_ClearITPendingBit(EXTI_Line16);
    }
}
/*********************************************************************/

void PVD_Init(uint32_t Level_Mode)
{
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

    EXTI_InitTypeDef EXIT_InitStructure = {0};
    NVIC_InitTypeDef NVIC_InitStructure = {0};

    EXIT_InitStructure.EXTI_Line = EXTI_Line16;
    EXIT_InitStructure.EXTI_LineCmd = ENABLE;
    EXIT_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
    EXIT_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;
    EXTI_Init(&EXIT_InitStructure);

    NVIC_InitStructure.NVIC_IRQChannel = PVD_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);

    PWR_PVDLevelConfig(Level_Mode);

    PWR_PVDCmd(ENABLE);
}