초보의 아웅다웅 설계하기 336

STM32H743 LL_Driver Timer

분주하는 부분에서 약간 헤맸습니다. /******************************************************************************* * Function Name : * Parameters : None * Return : None * Description : DEBUGPRINT("%d \r\n", SystemCoreClock);//400000000 *******************************************************************************/ void Config_TIM(void) { uint32_t Prescaler; Prescaler = (uint32_t)(SystemCoreClock / (2*1000000..

STM32H743 UART LL_Driver 예제

STM32H7 시리즈의 LL_Driver 예제를 찾아봐도 보이지 않았습니다. 예제는 COMP, DAC, RTC, SPI만 있어서 직접 만들었습니다. 약간의 삽질을 했습니다. LL_USART_SetBaudRate함수에 분주까지 들어가서 헤맸네요....... 암호모듈 속도 측정결과 뭔가 획기적으로 속도가 빨라지지는 않네요. DMIPS 차이로는 거즘 4배인데 연산속도 차이는 2배가 채 안되어서 약간 실망감이 드네요. 캐쉬설정하니 빨랐습니다. STM32F446 - 225DMIPS - ARIA 128, CBC Mode Data Length - 32 byte 61 us Data Length - 64 byte 100 us Data Length - 128 byte 177 us Data Length - 256 byte ..

Intel-Hex 프로토콜 구조

keil로 컴파일하고 나니 나온 Address Offset 데이터가 위아래로 섞여 있어서 난리였습니다. 차근차근 일정한 패턴을 가지고 Address Offset가 순차로 내려갈 줄 알았는데 위, 아래, 위위, 아래 난리네요. 다운로드 프로그램을 만드는데 전부 확인해서 조립한 다음 일정 바이트씩 쪼개서 내려줘야하니 이것도 참 문제네요. --- Intel-Hex 프로토콜 구조 --- STX : 1byte(:) Length : 1byte Address Offset : 2byte Type : 1byte Data : 0 ~ 255byte CheckSum : 1byte 예제) :09 6D59 00 7D027F487E600265F7 AF :10 6B0F 00 7D047F487E601265F77F467E601265FE..

SPI Slave에서 입력 데이터 처리

사용 MCU : STM32L432 SPI Slave Mode에서 입력된 데이터를 파싱하고 처리하는 데도 연달아 데이터가 계속 들어오다보니 어느순간 SPI가 죽어버렸습니다. (SPI Flash의 쓰기 같은 경우 데이터를 넣고 나서 완료되었는 지 Status 값을 확인하기 위해 SPI에 데이터를 계속 넣는데 그런 경우를 가정하였습니다. - 사용중에 MCU의 Reset를 하도록 회로설계가 되면되지만 그렇지 못한 경우도 가정해야하니까요.) 어디선가 충돌이 나고 있는데... 들어온 데이터의 암복호화 연산처리중에 죽는건지(Stack도 충분한데) 사실 파악은 하지 못하였으나 일단 다 연산하기 전에 셋다 disable 해주고 나서 처리 후 enable 해주니까 괜찮네요... 안 괜찮네요. 원인 파악을 확실히 못했으니 ..

NXP社의 MK22FXXX(합병 전 FREESCALE社 MCU) 시리즈의 IAR에서 Read/Write Protection 방법

NXP社의 MK22FXXX 시리즈의 IAR에서 Read/Write Protection 방법 /* startup_MKxxxxxx.s 에서 Protection 과 관련된 설정 변경 필요부분 */ __FlashConfig DCD 0xFFFFFFFF DCD 0xFFFFFFFF DCD 0xFFFFFFFF DCD 0xFFFFFFFE KEYEN 5, 4 => MEEN 3, 2 => FSLACC 1, 0 => SEC(10을 제외한 모든 설정이 SECURE 설정) --enable_config_wirte 하는 이유는 유저가 실수로 0x400 ~ 0x40f까지 실수로 설정한 후 라이팅하여 더이상 사용하지 못하는 경우를 없애기 위해 만들어 놓은 듯 싶습니다.(하단 URL 참조) icf 파일에서 Flash Config 관련 부..

FT930 자체 DFU 사용하기

FT930의 자체 DFU를 사용하여 다운로드를 하기 위해서는 컴파일해서 나온 바이너리에 suffix를 붙여주어야 합니다. 그냥 라이팅을 수행하면 44% 전후에서 다운로드 실패가 뜹니다. VID와 PID는 임의로 ST 예제의 것을 가져와 썼습니다. 사용한 예제의 쓰기 속도는 폭망이었습니다. FTDI라고 해서 믿었는데 300KB/s의 엄청난 저속... SD 인터페이스가 페리로 들어있는게 아니라 IO로 구현한걸까?

STM Cube 예제에서 USB Device MSC에서 저장공간을 RAM으로 잡고 사용하기

/* Includes ------------------------------------------------------------------*/ #include "usbd_storage.h" /* Private typedef -----------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ #define STORAGE_LUN_NBR 1 #define STORAGE_BLK_NBR 64 //64 blocks * 512 = 32k #define STORAGE_BLK_SIZ 512 //doesn't seem to work w..

CKS32F103 => STM의 카피캣을 만나다.

저가에 IO가 크게 필요없는 제품을 개발하기 위해서 보다보니 약 3000원의 STM32F103 제품이 보였습니다. PCB 뜨고 이러면 비싸니 바로 구매하였습니다. 며칠 지나니 택배가 똭!! 근데 어라? 머 이상하네? 테스트하려고 보니 CKS32F103C8T6.. 말로만 들었던 중국 카피캣 제품이 !!! - 사이트에 STM32라면서요? 혹시나 하고 STM으로 프로그램을 짠 후 ST-Link와 ST Utility를 사용하여 라이팅했더니 정상 동작 두둥.... 신뢰성은 괜찮은걸까? 사용해도 되는 걸까? 하는 의구심은 있지만 일단 사용... (테스트는 USB와 Led만 깜빡거려보았습니다.) 항상 놀라지만 중국의 카피 능력은 진짜 대단하네요. 시스템 개발 보드 단일 칩 코어 STM32 ARM STM32F103 h..

STM Custom HID 보드로 입력되는 값 4Byte로 수정하기

STM Custom HID 보드로 입력되는 값 4Byte로 수정하기 선언을 TX라고 했지만 실제 in, out은 PC를 기준으로 하기때문에 PC의 out이 보드에서는 in입니다. #define MAXPCKRXSIZE 0x02 #define MAXPCKTXSIZE 0x04 /* USB Configuration Descriptor */ /* All Descriptors (Configuration, Interface, Endpoint, Class, Vendor */ const uint8_t CustomHID_ConfigDescriptor[CUSTOMHID_SIZ_CONFIG_DESC] = { 0x09, /* bLength: Configuation Descriptor size */ USB_CONFIGURATIO..