-
Постов
285 -
Зарегистрирован
-
Посещение
-
ДА не написал реализацию printf. Вывод в порт SWV 0 без участия UART, вот таким способом
-
При старте МК вывод сообщений через printf и настройке SWV (Core clock = 4 MHz ) работает как положено, то-есть получаю в читабельном виде сообщения Test1 и Test2. Проблема возникает при перенастройке тактирования МК на максимальную частоту 80MHz. После настройки тактирования SystemClock_Config(), через printf и настройке SWV (Core clock = 80MHz ) получаю не читаемые символы, то-есть вместо Test3 и Test4 получаю что попало. int main(void){ LL_Init(); printf("Test1 \r\n"); printf("Test2 \r\n"); SystemClock_Config(); while(1){ printf("Test3 \r\n"); printf("Test4 \r\n"); } } void SystemClock_Config(void){ LL_FLASH_SetLatency(LL_FLASH_LATENCY_4); if(LL_FLASH_GetLatency() != LL_FLASH_LATENCY_4){ Error_Handler(); } LL_PWR_SetRegulVoltageScaling(LL_PWR_REGU_VOLTAGE_SCALE1); //Enable HSI LL_RCC_HSI_Enable(); // Wait till HSI is ready while(LL_RCC_HSI_IsReady() != 1); LL_RCC_HSI_SetCalibTrimming(16); // Enable LSI LL_RCC_LSI_Enable(); /* Wait till LSI is ready */ while(LL_RCC_LSI_IsReady() != 1); LL_RCC_PLL_ConfigDomain_SYS(LL_RCC_PLLSOURCE_HSI, LL_RCC_PLLM_DIV_1, 10, LL_RCC_PLLR_DIV_2); LL_RCC_PLL_Enable(); LL_RCC_PLL_EnableDomain_SYS(); /* Wait till PLL is ready */ while(LL_RCC_PLL_IsReady() != 1); LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL); /* Wait till System clock is ready */ while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL); LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1); LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_1); LL_RCC_SetAPB2Prescaler(LL_RCC_APB2_DIV_1); LL_Init1msTick(80000000); LL_SYSTICK_SetClkSource(LL_SYSTICK_CLKSOURCE_HCLK); LL_SetSystemCoreClock(80000000); LL_RCC_SetUSARTClockSource(LL_RCC_USART1_CLKSOURCE_SYSCLK); LL_RCC_SetI2CClockSource(LL_RCC_I2C1_CLKSOURCE_SYSCLK); /* SysTick_IRQn interrupt configuration */ NVIC_SetPriority(SysTick_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(),0, 0)); } LL_RCC_GetSystemClocksFreq - возвращает значения согласно расчетным = 80MHz По всей видимости где-то не совсем правильно настраивается частота, но не понятно, что именно не так. Есть предположения? Запускаю на NUCLEO-L452RE, среда TrueStudio.
-
Не могли бы пояснить, в чем Altium хуже Mentor Expedition или Cadence ?
-
Две полезные книг по трассировке ВЧ. Джонсон Г. Грэхэм М «Конструирование высокоскоростных цифровых устройств. Начальный курс черной магии» Джонсон Г. Грэхэм М «Высокоскоростная передача цифровых данных: высший курс черной магии»
-
Ну если я правильно понимаю если глобально то не на стеке ?
-
Отладчиком ничего не увидел. В main бегает по циклу опроса флагов. Вышибает если просто в массив перезаписать один элемент в начале main и дальше этот массив нигде не трогать тоесть: u8 array[16384]; main{ array[0]=1; . . . . while(1){ опрос флагов. } }
-
МК используется STM32F103 компилятор IAR. Задача. Накапливать за секунду массив данных размером 16 Кбайт (u8 array[16384] )затем отправлять его к другому устройству. Массив объявляется глобально. Столкнулся с такой проблемой, что при объявлении массива размером в 16 Кбайт перестают работать прерывания, при инициализации массива меньшего размера порядка 300 Байт ( u8 array[300] ) все работает как и задумано. При компиляции IAR никаких ошибок не выдает. Как правильно объявлять большой массив данных?
-
А можно по подробней про переферию сидящих на тех же ногах. В данном случае SPI порт. ТАк сказать что стоит ожидать ? А все понял, сразу не по глазам было. Благодарю за помощь.
-
Связка STM32F103RF +ST-LINK/V2 (SWD) +IAR. НА STM32F103RF планирую использовать три SPI порта, в связи с чем для отладки не могу подключиться по JTAG 5pin. Судя по дкументации можно использовать Serial-Wier (SWD) в таком случае есть возможность юзать три SPI порта. Однако возникает вопрос смогу ли полноценно выполнять пошаговую отладку в IAR по средствам SWD? И есть ли при таком подключении какие-нибудь подводные камни?
-
Пожалуйста покритикуйте разводку Eth 1Gb
Muxamor ответил 4erepanoff тема в Примеры плат
Почему не нужно выравнивание? -
Пример топологии DDR3
Muxamor ответил HardJoker тема в Работаем с трассировкой
Подскажите пожалуйста в каких пределах нужно выравнять шину address/command относительно клока для DDR3? -
Infineon PEF24624, 22622
Muxamor ответил _4afc_ тема в ISDN/G.703/E1
1) не пользовал. 2) Да нужна частоат 40.96. Сомнения правильно терзают. Лучше поставить генератор и не имет потом головной боли с подбором емкостей. 3) Если на плате стоит один чип то тогда можно не закорачивать между собой. Та как внутри они уже соединены. 5) Пользуйте транс Pulse BX1194. -
Посоветуйте однокристальное решение – SHDSL
Muxamor ответил aosp тема в ISDN/G.703/E1
Документация на эти чипы вся под NDA. Обратитесь в ЭФО или в Симметрон. Через них заключите NDA c Инфинеон и вам дадут доки. Эвалюшен борд стоят как самолет. В тех же компаниях можете попросить Эвалюшен борд на время. У инфинеона кстати две серии чипов по SHDSL: 1) PEF 21624, PEF 22624, PEF 24624 2) PEF 21628, PEF 22628, PEF 24628 -
Infineon PEF24624, 22622
Muxamor ответил _4afc_ тема в ISDN/G.703/E1
НУ если покет еше не доходит до чипа то чип то тут не виноват. На чем HDLC делаете? -
Infineon PEF24624, 22622
Muxamor ответил _4afc_ тема в ISDN/G.703/E1
Следующию команду нужно подавать CMD_WR_REG_RS_FWSTART со значением: 0 ТОетсь вот так : CMD_WR_REG_RS_FWSTART со значением: 0 CMD_WR_REG_RS_FWCTRL