[STM32] Reset 회로 (NRST)
모든 CPU에는 Reset 핀이 있다. 당연히 이상이 있을 경우 재시작을 한다거나의 필요가 있겠지만 사실 이런 경우보다는 기본은 처음 부팅시 리셋이 가장 큰 포인트다.
펌웨어 설계자라면 당연히 알고 있겠지만 의외로 그냥 프로그램만 하고 또는 설계시 그냥 넣으라니까 넣는 경우가 있는데 리셋 회로는 생각보다 중요하다. 리셋회로의 가장 중요한 점은 전원이 공급이 시작되면 내부에 프로그램이 돌게 되고 이때 초기 안정적이지 못한 전원에 부팅을 하면 CPU의 내부 장치가 정상적인 동작을 할 수 없을 수 있다. 이를 방지하기 위해 전원이 공급되고 안정이 된 후 리셋을 하게 설계하는데 이것이 리셋 회로이다.
많은 사람들이 전원은 바로 발생한다고 생각하는데 모든 현상은 반드시 연속적으로 발생을 하게 되고 0V에서 VDD까지 올라가는 전원도 마찬가지로 VDD까지 올라가는 시간이 있다. 그 시간이 너무 짧기 때문에 바로 VDD로 ON 된다고 생각할 뿐이다. 그래서 리셋 회로는 이 전원이 VDD까지 올라가 안정화 되는 시간을 지연한 후 리셋을 시키는 시정수 회로가 들어간다. STM 32L151CCT의 데이터 시트에 나와있는 NRST 핀의 특성이다. 참고로 N은 Nagative이다.
내부 Reset 회로를 보면 VDD 풀업이 내장되어 있다. 그러므로 밖에 Recommend 되어 있는 C를 달때 이 Rpu 값과 시정수를 계산하여 전원 안정화 시간 보다 긴 시정수를 가지게 설계를 한다. 뭐 대부분 0.1uF 정도면 왠만해서는 전원이 안정이 될 수 있다. 뒤의 스위치는 유저가 강제로 리셋하는 회로이다.
대부분은 위와 같이 RC 시정수를 넣어서 지연을 시켜 전원이 들어온 후 시정수 시간 뒤에 리셋이 되는 형태를 많이 사용하지만 정확한 리셋 타이밍을 필요로 하는 경우는 Reset IC를 이용하여 리셋을 시키기도 한다.