본문 바로가기

[Microchip]/PIC16F

(18)
PIC16F723 내부 풀업저항 설정 PIC16F723 내부 풀업저항 설정 PIC16F723/PIC16F724 EVM 보드에서는 P_A7(PB7)이 저항을 통해 스위치로 연결되어 있다. MCU에서 풀업이 필요하다. PIC16F723에는 GPIOB에 내부 풀업저항이 있고 WPUB(WEAK PULL-UP PORTB REGISTER) 레지스터를 통해 설정 가능하다.1일경우 플업이 된다. 여기서 주의 사항은 OPTION_REG 에서 RBPU비트를 0으로 설정해 주어야 풀업이 가능하다. 실제 코드에서는 아래와 같이 정의해 주면 된다.//-----------------------------------------------------------------------------//Switch Driver #define SW1_BIT BIT7 #define..
PIC16F724 EVM 보드 제작 PIC16F724 EVM 보드 제작 마이크로칩사의 저전력 MCU PIC16F724 를 테스트 할 수 있는 EVM보드를 제작 했다기존 확장 테스트 보드와 핀맵이 호환되도록 SM-Type EVM 형태로 제작 했고 PIC16F723 EVM 보드와 비교하면 핀수가 증가된 형태이다 가장 큰 특징으로 저렴하면서도 저전력에 16채널 터치인터페이스를 지원 한다 Microchip's family of Extreme Low Power MCUs featuring nanoWatt XLP(TM) Technology
[mTouch] PIC16F274 Capacitive Touch 테스트 [mTouch] PIC16F274 Capacitive Touch 테스트 MICROCHIP사는 Capacitive Touch Sensing 솔루션으로 mTouch 를 제공하고 있다. PIC16F723은 하드웨어 적으로 8채널의 capacitive sensing module 을 제공하고 PIC16F724는 16채널을 제공한다. CPS0~CPS15 핀을 이용하면 부가적인 하드웨어 필요 없이 터치 센싱이 가능하다. CAPACITIVE SENSING MODULE 초기화 코드 void CapInit(void) { // Initialize for Timer0 time base OPTION = 0b11000010; // Timer0 init ( Prescaler:TMR0, 1:8 ) T0IF = 0; // enable..
[PIC16F150x EVM]TIMER 인터럽트 테스트 [PIC16F150x EVM]TIMER 인터럽트 테스트 PIC16F1509 에는 3개의 타이머/카운터가 있다. 타이머 입력소스는 시스템클럭의 1/4 또는 T0CKI핀 으로 입력 받을 수 있다. PIC16F1509 타이머 초기화 함수 void InitTimer0(void) { // TMR0 Associate Registers Initial TMR0CS = 0; // Timer0 CLK Source설정 -> FOSC/4 PSA = 0; //Prescaler 사용여부 설정(사용) PS0 = 0; // Prescaler 1:4 PS1 = 1; // Prescaler 1:16 PS1 = 0; // Prescaler 1:256 TMR0 = INTERVAL_1mS; // Initial TMR0 //타이머 인터럽트 레..
[PIC16F1509] FVR 테스트 - 레퍼런스 입력 없이 정밀한 전압 측정하기 [PIC16F1509] FVR 테스트 - 레퍼런스 입력 없이 정밀한 전압 측정하기 PIC16F1509를 사용하다 한가지 문제점이 발생했다. ADC채널이 부족해서 Vref핀을 사용할 수 없는 상황인데 정확한 레퍼런스 측정이 필요한 상황이다. 데이터시트를 찾아보니 FVR이 있다. 이를 이용하면 가능하지 않을까... PIC16F1508 에는 FVR(FIXED VOLTAGE REFERENCE) 이 있어 레퍼런스 전압을 측정할 수 있다. FVR은 3가지 고정 전압으로 설정 가능하다. 4.096V 2.048V 1.024V 이 출력 전압은 ADC, CMP 등의 레퍼런스로 사용할 수 있다. FVR출력을 ADC 로 설정하면 31번 채널에서 ADC값으로 읽을 수 있다. //VFR 초기화 코드 ADFVR0 = 1; ADFV..
[PIC16F150x EVM] PIC16F1509 ADC, PWM 테스트 [PIC16F150x EVM] PIC16F1509 ADC, PWM 테스트 PIC16F1509는 4개의 10비트 PWM출력이 있다. 20Mhz에서 최대 208khz, 6.5bit 해상도로 출력 가능하다. PIC16F1509 PWM초기화 코드 void Pwm1Init(void) { Cbi(TRISC, BIT5);Cbi(ANSELC, BIT5); PWM1CON = 0x00; T2CON = 0b00000111; PR2 = 255; PWM1DCH = PWM1DCL = 0x00; T2CON = 0b00000100; PWM1DCH = 0b00100000; PWM1EN = 1; PWM1OE = 1; PWM1OUT = 0 PWM1POL = 0; } void PWM1_SET(unsigned int Duty){PWM1DCH..
[PIC16F150x EVM] PIC1509 초기화 및 클럭 설정 [PIC16F150x EVM] PIC1509 초기화 및 클럭 설정 PIC16F15xx 시리즈는 Enhanced Mid-range Core 로 저렴하면서 강력한 페리를 가진 MCU로 이전 PIC16시리즈와 클럭 시스템과 약간 다른 점이 있어 설정이 필요하다. 내부 클럭을 사용하면 31Khz에서 16Mhz로 설정 가능하고 기존 코드 호환을 위해 SystemInit()함수에 설정하였다. void SystemInit(void) { //grobal interrupt disable disable(); //Internal Oscillator Frequency Select bits /* 1111 = 16MHz 1110 = 8MHz 1101 = 4MHz 1100 = 2MHz 1011 = 1MHz 1010 = 500 kH..
[PIC16F150x EVM] 보드 제작 [PIC16F150x EVM] 보드 제작 PIC16F15xx 시리즈는 새롭게 출시된 저가격, 저전력의 MCU이다. 시리얼 포트 있고 저렴하기 때문에 저렴한 솔루션으로 사용될 곳이 많을것 같은아 테스트 하기 위해 s-Type 형태로 제작 해 보았다. 저렴한 16bit MCU임에도 10bit ADC, PWM, UART, SPI, I2C가 있고 특이하게 DAC출력까지 있다. 기존 PIC18F14K50 PCB와 동일한 핀맵이므로 PCB를 그대로 사용해서 테스트 했다. s-Type 형태로 제작 해서 기존 확장 보드를 그대로 이용 가능하다. 저렴한 가격 PIC16F1508은 실제로 저렴한 가격인데 쇼핑몰에서 1350에 구매 가능하다.(이번에 PIC16F1509 25개 구매 했다.) PIC16F150x EVM 회로도..