일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- can
- AWS
- python
- 파이썬
- 토플 라이팅
- backtest
- TOEFL
- it
- 자동차sw
- 백트레이더
- Cloud
- 클라우드
- backtrader
- 토플
- 암호화폐
- 자동매매
- 퀀트
- GeorgiaTech
- 비트코인
- AUTOSAR
- 확률
- 개발자
- 블록체인
- 오토사
- 아마존 웹 서비스
- probability
- toefl writing
- Bitcoin
- 백테스트
- 프로그래밍
- Today
- Total
Leo's Garage
[PIC16F1503] MicroChip MCU 본문
최근에 개발 중인 제어기에서 메인 MCU를 보조하는 sub MCU를 개발할 일이 있어서 PIC16F1503을 개발 중이다.
이 MCU는 8bit MCU로 14pin을 가지고 있으며 내장 Flash를 가지는 나름의 기능이 출중한 MCU이다.
이 MCU의 용도는 메인 MCU가 꺼져 있을 때 외부 신호를 감지해서 특정 신호에 메인 MCU를 wake up 하는 목적으로 사용 중이다.
간략한 사양은 다음과 같다.
일단 내장 WDT이 존재하여 MCU 기능 고장을 감지할 수 있고, 각 핀들을 여러 기능으로 변경해서 사용이 가능한데 기본적으로 ADC, DIO Port 그리고 DAC나 Comparator등으로 활용이 가능하다.
게다가 자체 Sleep 기능도 존재하여 아주 최적으로 암전류를 관리할 수 있다.
이 MCU는 아래의 핀맵 구조를 가진다.
좀 주의해야 할 점은 RA# 핀들은 자체 weak pull up을 제어할 수 있는 레지스터가 존재하지만 RC#는 없기 때문에 pull up이나 pull down을 하고 싶다면 외부 회로로 반드시 구성해줘야 한다.
그리고 RA# 핀들은 외부 신호의 Rising Edge나 Falling Edge에 대한 Interrupt를 띄울 수 있고 RC#는 불가하다.
이 부분도 고려하여 원하는 구성으로 회로를 만들어야 한다.
일반적으로 내장된 Timer모듈 2개를 가지고 있기 때문에 나의 경우에는 TMR0을 이용하여 내부 스케쥴러를 돌리기 위한 기준 타이머를 생성하여 사용 했다.
해당 타이머의 경우에 FF에 도달하면 overflow가 발생하면서 Interrupt를 발생시킬 수 있다.
이를 이용하면 스케쥴러를 손쉽게 만들 수 있다.