아학아학 443

STM32F Sleep Mode에서 Uart로 Wakeup하기

STM32F091 기준으로 하였습니다.다른 시리즈와는 라이브러리가 달라 변경이 필요합니다. main.c 파일에서 int main(void){ HAL_Init(); /* Configure the system clock to 48 MHz */ SystemClock_Config(); /* Configure LED2 */ BSP_LED_Init(LED2); /*##-1- Configure the UART peripheral ######################################*/ /* Put the USART peripheral in the Asynchronous mode (UART Mode) */ /* UART configured as follows: - Word Length = 8 Bits ..

GCC 컴파일러에서 고정위치에 바이너리 라이팅 하기

GCC 컴파일러에서 특정 영역의 바이너리 값을 고정하기 위한 방법 main.c/* 32Byte 데이터를 0으로 고정 */unsigned char Blank_buffer[0x20] __attribute__ ((section(".init_array"))) = {0, }; app.linker OUTPUT_ARCH(arm) SECTIONS{ . = (0x00);/* main.c에서 고정한 데이터의 위치 설정 */ .init_array : { } /* text start */ . = (0x20); .text : ... 중략 /* data start */ . = (0x20000000); .data : ... 중략}

PICkit 프로그램 증발 오류

Microchip사의 PICKIT에 대해 놀랄만한 이야기를 들었습니다.귀를 씻고 들어도 진실인지 이해가 되지 않습니다. 모社의 제품이 필드에 나가서 동작을 하는데 PIC의 프로그램이 모두 증발하는 증상이 일어났다고 합니다.업체에서 문의를 하는데 제품 라이팅시 PICKIT를 사용하여 라이팅을 하면 문제가 발생할 수 있다고 이야기 했다고 합니다.사용중인 제품이?? 필드에 나가서 동작을 한참 잘하다가 프로그램이 다 날아갔는데 라이팅기 영향이다?MICROCHIP사에서 그것도 공식홈에서 파는 제품이?(설사 그런 문제가 있다면 판매하는 것 자체가 문제 아닌가 싶네요. 좌충수도 이런 자충수를 두다니 본인들 스스로 문제 있는 제품이지만 판매하겠다. 라고 말하는건데요.)이해가 되지 않습니다. 차라리 사용자가 뭔가 다른 ..

Wiznet W7500P의 추가 메모리 사용

이더넷 칩으로 유명한 위즈넷에서 W7500/W7500P에서 보면 최고 48KB까지 SRAM을 사용할 수 있다고 나와있습니다.SDK를 보면 0x20000000에서 16KB(0x4000)까지 밖에 사용할 수 없는데요.사용할 수 있는 방법을 찾아보면 Socket 버퍼를 메모리로 사용하는 방법입니다.(신박하네요.)데이터 시트상에서보면 가상 주소에 물리주소가 겹쳐있는 형태로 되어 있는데 가상 주소가 실제 물리주소보다 크다보니 가상 주소 영역을 넘어가면 물리주소의 0번지부터 되돌아가는 형태로 되어있습니다.0x461E0000부터 0x461EFFFF까지 잡는다고 해도 실제로는 2KB(0x800)까지밖에 사용하지 못하게 됩니다.그래도 최대 4KB까지 사용할 수 있는 방법이 있는데요 Socket의 TX와 RX 사이를 겹쳐..

SoftUart Only TX

참고 사이트 : https://github.com/blalor/avr-softuart 위 사이트에 나와있는 소스코드를 STM32F103에서 동작하도록 변경9600bps에 맞췄습니다만 본인이 사용하는 클럭 설정이나 다른 코어라면 코어의 처리 속도등을 고려해서 Timer의 발생 시간을 조절해주어야 합니다. 계산해보면 1/9600 = 0.00010416... 이므로 오차율 감안하고 104us정도 나오도록 오실로스코프로 계산하면서 맞춰주면 될 것 같습니다. ##include #include #define SU_TRUE 1#define SU_FALSE 0 // 1 Startbit, 8 Databits, 1 Stopbit = 10 Bits/Frame#define TX_NUM_OF_BITS (10)volatile s..