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

    

Muxamor

Свой
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

Информация о Muxamor

  • Звание
    Местный
  • День рождения 18.03.1983

Контакты

  • Сайт
    http://
  • ICQ
    165414678

Информация

  • Город
    Novosibirsk
  1. Debug SWV не читаемые символы

    ДА не написал реализацию printf. Вывод в порт SWV 0 без участия UART, вот таким способом
  2. Debug SWV не читаемые символы

    При старте МК вывод сообщений через 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.
  3. Цитата(hsoft @ Dec 6 2016, 13:35) А теперь по поводу "серьезной трассировки". Выбирайте пакет на выбор Mentor Expedition или Cadence, про Altium забудьте. Не могли бы пояснить, в чем Altium хуже Mentor Expedition или Cadence ?
  4. Две полезные книг по трассировке ВЧ. Джонсон Г. Грэхэм М «Конструирование высокоскоростных цифровых устройств. Начальный курс черной магии» Джонсон Г. Грэхэм М «Высокоскоростная передача цифровых данных: высший курс черной магии»
  5. Массив данных большого размера

    Ну если я правильно понимаю если глобально то не на стеке ?
  6. Массив данных большого размера

    Отладчиком ничего не увидел. В main бегает по циклу опроса флагов. Вышибает если просто в массив перезаписать один элемент в начале main и дальше этот массив нигде не трогать тоесть: u8 array[16384]; main{ array[0]=1; . . . . while(1){ опрос флагов. } }
  7. Массив данных большого размера

    МК используется STM32F103 компилятор IAR. Задача. Накапливать за секунду массив данных размером 16 Кбайт (u8 array[16384] )затем отправлять его к другому устройству. Массив объявляется глобально. Столкнулся с такой проблемой, что при объявлении массива размером в 16 Кбайт перестают работать прерывания, при инициализации массива меньшего размера порядка 300 Байт ( u8 array[300] ) все работает как и задумано. При компиляции IAR никаких ошибок не выдает. Как правильно объявлять большой массив данных?
  8. STM32F103RF +ST-LINK/V2 (SWD) +IAR

    Цитата(Tahoe @ Nov 17 2013, 17:58) Да, без проблем. Большинство уже давно только так и работает. Есть, но он скорее относится не к SW, а к периферии, сидящей на тех же ногах, что и JTAG. А можно по подробней про переферию сидящих на тех же ногах. В данном случае SPI порт. ТАк сказать что стоит ожидать ? А все понял, сразу не по глазам было. Благодарю за помощь.
  9. STM32F103RF +ST-LINK/V2 (SWD) +IAR

    Связка STM32F103RF +ST-LINK/V2 (SWD) +IAR. НА STM32F103RF планирую использовать три SPI порта, в связи с чем для отладки не могу подключиться по JTAG 5pin. Судя по дкументации можно использовать Serial-Wier (SWD) в таком случае есть возможность юзать три SPI порта. Однако возникает вопрос смогу ли полноценно выполнять пошаговую отладку в IAR по средствам SWD? И есть ли при таком подключении какие-нибудь подводные камни?
  10. Цитата(Uree @ Oct 24 2013, 03:11) Выравнивание не нужно здесь, разве что выглядит только... Почему не нужно выравнивание?
  11. Подскажите пожалуйста в каких пределах нужно выравнять шину address/command относительно клока для DDR3?
  12. Infineon PEF24624, 22622

    1) не пользовал. 2) Да нужна частоат 40.96. Сомнения правильно терзают. Лучше поставить генератор и не имет потом головной боли с подбором емкостей. 3) Если на плате стоит один чип то тогда можно не закорачивать между собой. Та как внутри они уже соединены. 5) Пользуйте транс Pulse BX1194.
  13. Документация на эти чипы вся под NDA. Обратитесь в ЭФО или в Симметрон. Через них заключите NDA c Инфинеон и вам дадут доки. Эвалюшен борд стоят как самолет. В тех же компаниях можете попросить Эвалюшен борд на время. У инфинеона кстати две серии чипов по SHDSL: 1) PEF 21624, PEF 22624, PEF 24624 2) PEF 21628, PEF 22628, PEF 24628
  14. Infineon PEF24624, 22622

    НУ если покет еше не доходит до чипа то чип то тут не виноват. На чем HDLC делаете?
  15. Infineon PEF24624, 22622

    Следующию команду нужно подавать CMD_WR_REG_RS_FWSTART со значением: 0 ТОетсь вот так : CMD_WR_REG_RS_FWSTART со значением: 0 CMD_WR_REG_RS_FWCTRL