![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_default_photo.png)
adnega
Свой-
Постов
3 594 -
Зарегистрирован
-
Посещение
-
Победитель дней
3
Весь контент adnega
-
Ну, это как бы один пример семейства XMC4000. Но даже так. У данного МК стирание идет секторами, а запись страницами по 256 байт. Нигде нет запрета на дописывание страницы. Да, упоминается Dynamic Error Correcting Code (ECC) with Single-bit Error Correction and Doublebit Error Detection (“SEC-DED”). Но, может, все волшебство в слове "Dynamic". Вы пробовали дописывать страницу? У меня есть несколько XMC4108Q48K64BAXUMA1, но так лень паять макет, чтобы проверить...
-
Эти cortex-микроконтроллеры.. мало изучать доки от производителя МК, нужно еще изучать доки производителя ядра (CMSIS так точно).
-
Установить VTOR можно функцией /*! \brief set the NVIC vector table base address \param[in] nvic_vict_tab: the RAM or FLASH base address \arg NVIC_VECTTAB_RAM: RAM base address \arg NVIC_VECTTAB_FLASH: Flash base address \param[in] offset: Vector Table offset \param[out] none \retval none */ void nvic_vector_table_set(uint32_t nvic_vict_tab, uint32_t offset) { SCB->VTOR = nvic_vict_tab | (offset & NVIC_VECTTAB_OFFSET_MASK); __DSB(); }
-
Это не фишка какого-то производителя или семейства, VTOR - это часть ядра (в данном случае Cortex-M23) Правда, опциональная. На 21 странице список опций: Типа, VTOR у вас должен быть. В файле gd32e23x.h Указано, что VTOR есть.
-
SCB->VTOR
-
Протокол CAN уже есть или можно свой придумать?
-
LGT8F328, аналог Atmega328
adnega ответил vvppvv тема в MCS51, AVR, PIC, STM8, 8bit
Я на днях для этого МК не смог найти даже значений Vih и Vil. Может, у вас есть полная документация? -
-
А где инициализация самого таймера? Типа такой: timer_deinit(TIMER1); /* initialize TIMER init parameter struct */ timer_struct_para_init(&timer_initpara); /* TIMER1 configuration */ timer_initpara.prescaler = 11999; timer_initpara.alignedmode = TIMER_COUNTER_EDGE; timer_initpara.counterdirection = TIMER_COUNTER_UP; timer_initpara.period = 9999; timer_initpara.clockdivision = TIMER_CKDIV_DIV1; timer_init(TIMER1, &timer_initpara); /* enable the TIMER interrupt */ timer_interrupt_flag_clear(TIMER1, TIMER_INT_FLAG_UP); timer_interrupt_enable(TIMER1, TIMER_INT_UP); timer_enable(TIMER1); Для GD32E103 у меня инициализация энкодера простейшая: void init_TIMER3(void) { TIMER3->CTL0 = 0; TIMER3->CTL1 = 0; TIMER3->SMCFG = (3 << TIMER_SMCFG_SMC); TIMER3->PSC = 0; TIMER3->CAR = 0xFFFF; TIMER3->CTL0 = (1 << TIMER_CTL0_CEN); }
-
CAN + CPU low cost
adnega ответил cebotor тема в Controller Area Network (CAN)
Как бы там официально нет CAN вообще. Вот в GD32C103 - есть. На самом деле уже во второй партии GD32E103CBT6 с двумя работающими CAN-FD, но не знаю насколько они там устойчиво-рабочие и когда лавочка может быть прикрыта... -
STM32F767, FreeRTOS, HardFault
adnega ответил tonyk_av тема в ARM, 32bit
Во FreeRTOS не нашел такого вызова. Можете показать? В F767 в HAL_Init() есть HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4), который все размотает в __NVIC_SetPriorityGrouping(). Поэтому с именами у меня сомнения, которые можно развеять значением SCB->AIRCR перед местом фейла. -
STM32F767, FreeRTOS, HardFault
adnega ответил tonyk_av тема в ARM, 32bit
Я такое ловил во FreeRTOS, и не раз тут писал - проверьте установку приоритетов прерываний. Что-то типа такого в начало main: NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); -
Скорее так: если есть приемник слабого сигнала, то лучше обрезать все вне полосы полезного сигнала, т.к. на вход может попасть чужой сигнал высокой мощности и перегрузить входную часть приемника.
-
Да, НЧ потенциал питания антенны попадает на вход. Линия уходит на 68 пин, C4 и C9 не устанавливаются. Вы разъемы на плату будете устанавливать или сами антенны (модули и печатные) будете разводить? У нас используются разъемы, а антенны далеко. Если антенны на плате, то я бы поставил фильтр, чтоб не перегрузить вход - деталька-то дешевая.
-
Используем SIM868 с активной антенной без этого фильтра - вопросов к качеству сигнала не было. (при этом в модуле активными могут быть несколько соединений GPRS). Мне казалось, что такой фильтр - это часть антенны.
-
Мож, ТС делает сигнализацию на дачу ;) тогда вообще можно от STM отказаться и сделать на EAT, или на Ардуинке забацать. if(eat_send_text_sms(send_sms_number, (u8 *)mdm_cmd)) { eat_trace("Send init SMS Ok"); } else { eat_trace("Send init SMS Fail"); }
-
Если end_sms_cmd равен символу с кодом 0x1A, то вроде ок. Может, osDelay(10000) многовато? Попробуйте определять окончание передачи по флагам UART.
-
1) Ток потребления ESP-12F до 250 мА. Одного L78L33 будет маловато. Я для ESP всегда отдельный от МК LDO ставлю. 2) Вывод PC13(2) запрещено использовать для LED: 3) Вы работаете от HSI. Вы по LSE планируете подстраивать HSI? Или RTC используете? 4) Я NRST(7) дополнительно к 3V3 подключаю через резистор 10 кОм. 5) Конденсаторов 100 нФ по питанию маловато (должно быть 3 у МК, один у ESP, у LDO с двух сторон). 6) От X5 возможно внешнее питание? Ток M4148 всего 150 мА - мало. С выхода LDO нужен диод на вход. Уровень PWR_ON плавающий. 7) Ножку BOOT лучше через 10 кОм на землю подключить, и вывести в SWD. Как и NRST в разъеме SWD не раз вас спасет. 8) Распиновка TTP224 какая-то странная.
-
Ни в коем случае! Тогда вообще пропадает смысл использования стандартных библиотек. Есть подозрения, что бага аппаратная. Можете полную схему опубликовать? Кста, а зачем вам на F030 часовой кварц вообще?
-
+1 У меня тут на армах два проекта на днях внезапно вылезли за 128к. Теперь при возможности буду внешнюю ПЗУ закладывать. С RISC-V практически не знаком, но есть ощущение, что не все так гладко. Не понятно, насколько хорошо компиляторы сжимают код, а оптимизировать на асме самому - времени столько нет.
-
"Вам шашечки или ехать?" На примере того же CH32V307VCT6 за такие деньги получаем невероятный функционал: - 32-битное ядро с FPU, 144МГц, внешняя память, размеры ПЗУ/ОЗУ в нескольких режимах (от 288к/32к до 192к/128к); - 8х UART, 3x SPI, 2x CAN, SDIO USB-HS, Ethernet 1G MAC + 10M PHY; - ADC 12b, DAC 12b, 2х ОУ, RTC. Если есть аналоги на арме при такой же цене, то интересно посмотреть. В некоторых применениях готов терпеть несовершенство архитектуры. ;))
-
Что насчет конденсаторов?
-
Если вы в прошивке ждете запуска внешнего LSE, то ждать можно долго. Нужны правильные конденсаторы на выводах LSE. Запуск LSE иногда может занимать секунды.
-
Можно еще вторую ногу транзистора к земле подключить через резистор 0.5 Ом, чтоб пиковый ток ограничить. Если вы только что отключили нагрузку и тут же подаете сигнал включения, то у вас будет неограниченный сквозной ток через диод и транзистор, т.к. диод будет приоткрыт самоЭДС (пока pn-переход не перезарядится и не закроется - будет импульс тока). Хотя в вашей задаче это не критично - скорее БП просядет.