Quantcast
Channel: JH7UBCブログ
Viewing all articles
Browse latest Browse all 440

PIC12F1822 シリアル通信テスト

$
0
0
 PIC12F1822は、シリアル通信のためのEUARTモジュールを持っています。USBシリアル変換モジュールFT234Xを介してパソコンの通信ソフトTeraTermの間で通信テストを行いました。

 RA0がTXピンになり、RA1がRXピンになります。このピン配置は、APFCONレジスタの設定で、RXピンをRA5に、TXピンをRA4に変更することができます。

イメージ 1

 ブレッドボードです。

イメージ 2

プログラムです。パソコンから送られた文字をエコーバックするプログラムです。

PIC12F1822は、内臓クロック8MHzとし、PLLEN = ONとして、クロック32MHzで動作させます。

非同期通信ですが、BRGH=1, BRG16=1とすることにより、広範囲のBaudレートに適合します。

このプログラムで、300bps~230.4Kbpsで通信ができることを確認しました。(このプログラムでは、9600bpsとしていあます)
putch()で定義していますので、printf()構文を使うことができます。

最近のPICは、小さいけれど力持ちですね。次は、I2Cのテストをします。

---------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
// CONFIG1
#pragma config FOSC     = INTOSC
#pragma config WDTE     = OFF
#pragma config PWRTE    = ON
#pragma config MCLRE    = OFF
#pragma config CP       = OFF
#pragma config CPD      = OFF
#pragma config BOREN    = ON
#pragma config CLKOUTEN = OFF
#pragma config IESO     = OFF
#pragma config FCMEN    = OFF
// CONFIG2
#pragma config WRT    = OFF
#pragma config PLLEN  = ON
#pragma config STVREN = ON
#pragma config BORV   = HI
#pragma config LVP    = OFF
#define _XTAL_FREQ 32000000

void serial_init(unsigned long BR){
    TXSTA = 0x24;   //SYNC=0 TXEN = 1 BRGH = 1
    BRG16 = 1;      //BRG 16bit mode
    RCSTA = 0x90;   //非同期、継続受信可
    unsigned int X= _XTAL_FREQ/BR/4 - 1;
    SPBRGH = X / 256;
    SPBRGL = X % 256;
}

void putch(unsigned char byte){
    while(!TXIF);
    TXREG = byte;
}

unsigned char getch(){
    while(!RCIF);
    return RCREG;
}

unsigned char getche(){
    unsigned char c;
    c = getch();
    putch(c);
    return c;
}

void main() {
    OSCCON = 0b01110000 ;     // 内部クロック8MHz
    ANSELA = 0b00000000 ;     // アナログは使用しない
    TRISA  = 0b00001010 ;     // RA1,RA3は入力、他は出力
    PORTA  = 0b00000000 ;     // 出力ピンの初期化
   
    serial_init(9600);       //Baud rate 9600bps
   
    while(1){
        getche();
    }
}
----------------------------------------


Viewing all articles
Browse latest Browse all 440

Trending Articles