PIC16F1778のコンフィグをしていたら初めて見る名前のレジスタがありました。
SLew Rate CONtrolレジスタ。その名の通りスルーレートを制御できるレジスタです。
ちなみにスルーレートは波形の立ち上がり、立ち下がり速さのことです。
使ってみよう
各端子一つずつ設定できます。AポートならSLRCONAレジスタで設定します。
1だとスルーレートに制限がかかり、0だと最大速度になります。
デフォルト(リセット後)は1で制限がかかった状態です。
邪魔なのでプログラムは一番下に載せておきます。
波形を重ね合わせて比較してみました。確かになまっていますね。

スルーレートが低いことのメリット
スルーレートが低い(遅い)ことのデメリットはよく知られていますが、メリットはあまり知られていません。
スルーレートが低いと以下のメリットがあります。
- デジタル信号の高調波成分が減る
- オーバーシュートやリンギングが抑制される
- 応答性の高い電源が必要でなくなる
- 低速通信の場合ノイズが抑制できる
デフォルトではスルーレートが制限された状態になるので無理に制限を外さないほうが良いかもしれません。
プログラム
#pragma config FOSC = INTOSC
#pragma config WDTE = OFF
#pragma config PWRTE = OFF
#pragma config MCLRE = ON
#pragma config CP = OFF
#pragma config BOREN = ON
#pragma config CLKOUTEN = OFF
#pragma config IESO = ON
#pragma config FCMEN = ON
#pragma config WRT = OFF
#pragma config PPS1WAY = ON
#pragma config ZCD = OFF
#pragma config PLLEN = ON
#pragma config STVREN = ON
#pragma config BORV = LO
#pragma config LPBOR = OFF
#pragma config LVP = OFF
#include <xc.h>
#define _XTAL_FREQ 32000000
void main(void) {
TRISA = 0x00;
SLRCONA = 0x02;
while(1){
PORTA = 0x00;
__delay_us(0.1);
PORTA = 0xFF;
__delay_us(0.1);
}
return;
}
コメントを残す