초보의 아웅다웅 설계하기/STM32 94

STM32H750 ReadProtection, BrownOutReset 설정

ReadProtection은 설정하고 나면 옵션을 지우고 플래쉬가 삭제되어야만 사용할 수 있으니 주의가 필요합니다. #define BORLEVEL OB_BOR_LEVEL1 #define RDPLEVEL OB_RDP_LEVEL_1 #define BOR_FLAG_TIMEOUT 3000 /******************************************************************************* * Function Name : * Parameters : None * Return : None * Description : *******************************************************************************/ void Con..

STM32H750 내부 온도 센서 값 읽기

ADC1을 설정하고 ADC를 읽어오다가 내부 온도 센서나 BAT 값을 읽어보려고 설정을 하였지만 값을 제대로 읽어오지 못하였습니다. 왜 안될까 고민하다가 데이터 시트를 펼쳤습니다. !!!??? In addition, there are 5 internal dedicated channels – The internal reference voltage (VREFINT), connected to ADC3 – The internal temperature sensor (VSENSE), connected to ADC3 – The VBAT monitoring channel (VBAT/4), connected to ADC3 The ADCs are connected to 5 internal analog inputs: – t..

STM32H750 내부 Flash 사용하기

기본 제공되는 SDK를 사용해보려고하니 외부 메모리를 사용하는 타입(STM32H750B-DK)이라 정상동작 하지 않았습니다. 그래서 ROM, RAM 영역을 다시 설정해 주었습니다. 일단 컴파일러에서 ROM과 RAM 영역을 설정한 후 system_stm32h7xx.c를 설정해주면 정상적으로 동작합니다. (USB HS MSC를 사용하려고 하는데 무슨 설정을 잘못하였는지 메모리 설정이 안나가네요. HID는 잘되는데.... 후~ 갈 길이 멀어보입니다.) keil의 경우 system_stm32h7xx.c에서 #ifdef VECT_TAB_SRAM SCB->VTOR = D1_AXISRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ #..

STM32F723 UART LL_DRIVER 예제

뭘 좀 잘못한 걸까요? F723이 H743보다 더 빠르다니 이해가 잘 안되네요. 하지만 STM32F103이 STM32F091보다 연산이 느린걸 보면 그럴수도 있다고 생각이 되기도 하네요.(내부 플래쉬 메모리 접근 구조나 이런 차이일까요? 아님 캐쉬를 안 돌렸나? 확인 안해봤으니 상상의 나래만 ㅋㅋ큐ㅠㅠㅠ 캐쉬설정하니 속도가 엄청나게 나오네요. 393us가 걸렸던게 81us로 바뀌네요.) USB HS PHY가 안에 들어있어서 써볼까 생각했었는데 더 잘 되었네요. 다만 UFBGA나 WLCSP 타입이라서 아트웍이나 PCB 제작 후 수삽할 때 짜증이.... ㅠㅠ STM32F091 - ARIA 128/192/256, CTR Mode ARIA CTR 128 32BYTE - 1827us ARIA CTR 192 32B..

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 해주니까 괜찮네요... 안 괜찮네요. 원인 파악을 확실히 못했으니 ..

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..