Перейти к содержанию
    

adnega

Свой
  • Постов

    3 594
  • Зарегистрирован

  • Посещение

  • Победитель дней

    3

Весь контент adnega


  1. Ну, это как бы один пример семейства XMC4000. Но даже так. У данного МК стирание идет секторами, а запись страницами по 256 байт. Нигде нет запрета на дописывание страницы. Да, упоминается Dynamic Error Correcting Code (ECC) with Single-bit Error Correction and Doublebit Error Detection (“SEC-DED”). Но, может, все волшебство в слове "Dynamic". Вы пробовали дописывать страницу? У меня есть несколько XMC4108Q48K64BAXUMA1, но так лень паять макет, чтобы проверить...
  2. Модератор: тема была выделена в отдельный топик из Пожалуйста приведите три примера. Особо интересуют варианты, где блок более 16 байт.
  3. Эти cortex-микроконтроллеры.. мало изучать доки от производителя МК, нужно еще изучать доки производителя ядра (CMSIS так точно).
  4. Установить 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(); }
  5. Это не фишка какого-то производителя или семейства, VTOR - это часть ядра (в данном случае Cortex-M23) Правда, опциональная. На 21 странице список опций: Типа, VTOR у вас должен быть. В файле gd32e23x.h Указано, что VTOR есть.
  6. Я на днях для этого МК не смог найти даже значений Vih и Vil. Может, у вас есть полная документация?
  7. А если внимательнее почитать? У STM32F103 тоже ноль по-умолчанию:
  8. А где инициализация самого таймера? Типа такой: 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); }
  9. Как бы там официально нет CAN вообще. Вот в GD32C103 - есть. На самом деле уже во второй партии GD32E103CBT6 с двумя работающими CAN-FD, но не знаю насколько они там устойчиво-рабочие и когда лавочка может быть прикрыта...
  10. Во FreeRTOS не нашел такого вызова. Можете показать? В F767 в HAL_Init() есть HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4), который все размотает в __NVIC_SetPriorityGrouping(). Поэтому с именами у меня сомнения, которые можно развеять значением SCB->AIRCR перед местом фейла.
  11. Я такое ловил во FreeRTOS, и не раз тут писал - проверьте установку приоритетов прерываний. Что-то типа такого в начало main: NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
  12. Скорее так: если есть приемник слабого сигнала, то лучше обрезать все вне полосы полезного сигнала, т.к. на вход может попасть чужой сигнал высокой мощности и перегрузить входную часть приемника.
  13. Да, НЧ потенциал питания антенны попадает на вход. Линия уходит на 68 пин, C4 и C9 не устанавливаются. Вы разъемы на плату будете устанавливать или сами антенны (модули и печатные) будете разводить? У нас используются разъемы, а антенны далеко. Если антенны на плате, то я бы поставил фильтр, чтоб не перегрузить вход - деталька-то дешевая.
  14. Используем SIM868 с активной антенной без этого фильтра - вопросов к качеству сигнала не было. (при этом в модуле активными могут быть несколько соединений GPRS). Мне казалось, что такой фильтр - это часть антенны.
  15. Мож, ТС делает сигнализацию на дачу ;) тогда вообще можно от 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"); }
  16. Если end_sms_cmd равен символу с кодом 0x1A, то вроде ок. Может, osDelay(10000) многовато? Попробуйте определять окончание передачи по флагам UART.
  17. 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 какая-то странная.
  18. Ни в коем случае! Тогда вообще пропадает смысл использования стандартных библиотек. Есть подозрения, что бага аппаратная. Можете полную схему опубликовать? Кста, а зачем вам на F030 часовой кварц вообще?
  19. +1 У меня тут на армах два проекта на днях внезапно вылезли за 128к. Теперь при возможности буду внешнюю ПЗУ закладывать. С RISC-V практически не знаком, но есть ощущение, что не все так гладко. Не понятно, насколько хорошо компиляторы сжимают код, а оптимизировать на асме самому - времени столько нет.
  20. "Вам шашечки или ехать?" На примере того же 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. Если есть аналоги на арме при такой же цене, то интересно посмотреть. В некоторых применениях готов терпеть несовершенство архитектуры. ;))
  21. Что насчет конденсаторов?
  22. Если вы в прошивке ждете запуска внешнего LSE, то ждать можно долго. Нужны правильные конденсаторы на выводах LSE. Запуск LSE иногда может занимать секунды.
  23. Можно еще вторую ногу транзистора к земле подключить через резистор 0.5 Ом, чтоб пиковый ток ограничить. Если вы только что отключили нагрузку и тут же подаете сигнал включения, то у вас будет неограниченный сквозной ток через диод и транзистор, т.к. диод будет приоткрыт самоЭДС (пока pn-переход не перезарядится и не закроется - будет импульс тока). Хотя в вашей задаче это не критично - скорее БП просядет.
×
×
  • Создать...