2018/05 7

STM32L4 ADC Low Layer Driver

Low Layer Driver을 사용한 ADC 들어오는 ADC 값의 움직임을 크게 주기 위해 샘플링 주기를 짧게 가져왔습니다.(LL_ADC_SAMPLINGTIME_2CYCLES_5) int main(void) { uint32_t nBuf[128]; uint8_t i; /* Configure the system clock to 80 MHz */ SystemClock_LLConfig(); /* ADC Configuration */ ADC_Configuration(); while(1){ GetADC1(chBuf); for(i = 0; i< 11; i++){ UART1_printf("ADC0 =%02X \r\n", chBuf[i]); } } } #include "math.h" #include "usr_adc.h..

WWDG에서 Watchdog 발생시 클리어 처리

WWDG에서 Watchdog 발생시 클리어 처리 WWDG 사용중에 특정 목적에서는 WWDG가 동작하지 않아야하는데 이런 목적으로 사용할 경우 인터럽트에서 클리어 처리 해주어야 합니다. WWDG나 IWDG는 동작하도록 한번 설정을 하면 플래그에 다시 사용히자 않도록 설정을 하여도 되지 않습니다. 이럴 때를 위해서 인터럽트과 인터럽트가 아닌 곳에서 처리하도록 양쪽에 처리를 하였습니다. (STM32L432에서 구현된 부분) 메인 .c tFunc_Typedef Func_Operate[] = { /* Random Source */ // {GenRandom, "GetADC", 0}, /* UART */ {GetuPacket, "GetUartPacket", 0}, /* SPI */ {GetsPacket, "GetSP..

MAXIM사의 Max3xxxx

Maxim사의 MAX3xxxx 칩입니다. Maxim을 선택한 이유는 RSA 키 생성이 하드웨어로 되어있어 생성 가능하다는 부분이 매력적이었습니다. Big Integer 소수를 MCU급에서 생성한다는 게 너무 어렵습니다. (사실 돌려봤었는데 십여분 기다리다가 생성이 안되서 포기했습니다. 사용하는 유저가 몇초만 기다려도 너무 오래걸린다고 생각하는데 분단위로도 생성이 안된다니!!! - 도어락 개발할 때 문 열릴 때 모터 돌아가는 그 몇초도 길다고 생각해서 멜로디를 넣어 체감시간을 다른 방향으로 돌렸는데 말이죠.) 이 소수 생성기는 추후에 동형 암호에 사용하려고 생각하고 있습니다. (이 MCU에서 별도로 소수 생성 부분만 빼줄 수 있도록 내부 로직이 설계되어 있다면요...) Maxim의 컴파일러는 대부분의 무료..