工作の2S(Seiri/Seiton)

工作やプログラムでやったことをまとめていきます

PIC1823のクロック出力を見る

●PIC16F1823のクロック出力

内部動作クロックを4MHz(工場で±1%に校正済み)に設定しCLKOUTピンから出力します。ただし、データシートには”実際出力されるのはFOSCの1/4の周波数”とあり、1MHzが出力されるはずです。また、CLKOUTENは優先度が高くONに設定すると問答無用でクロックを出力します

6.3.2 CLKOUT FUNCTION
The CLKOUT function has a higher priority than the reference clock module. Therefore, if the CLKOUT function is enabled by the CLKOUTEN bit in Configuration Word 1, FOSC/4 will always be output on the port pin.

●プログラム

#include <xc.h>

// CONFIG1
#pragma config FOSC = INTOSC 
#pragma config WDTE = OFF
#pragma config PWRTE = ON
#pragma config MCLRE = ON 
#pragma config CP = OFF
#pragma config CPD = OFF
#pragma config BOREN = OFF
#pragma config CLKOUTEN = ON
#pragma config IESO = ON
#pragma config FCMEN = ON

// CONFIG2
#pragma config WRT = OFF
#pragma config PLLEN = ON
#pragma config STVREN = ON
#pragma config BORV = LO
#pragma config LVP = OFF 


void main(void) {
  // Oscillator Control Register
  // SPLLEN (0) : 4x PLL is disable.
  // IRCF (1101): Internal oscillator frequency [4MHz HF]
  // uninplemented (0) : Read as '0'
  // SCS (11) : System clock select [Internal oscillator block]

  OSCCON = 0b01101011;
  TRISC = 0b11101111;
  while(1);
  return;
}

 OSCCON

マイコンのオシレータをコントロールするレジスタを設定しています

内蔵オシレータを4MHzに設定しています

8MHzに限り4倍のPLLを使用でき最大32MHzで使用できるようです

●CLKOUTの出力波形

1.001MHzとでました

 0.99MHz ~ 1.01MHzの間に収まれば仕様上OKなのでいい感じですね

f:id:kt-marshal:20160501111724j:plain

 

マイコンが自分の狙った周波数で動いてることが確認できました

8MHz, 16MHzと変更すればちゃんと変わりますが、ジッタが目立ち始めました

 

さーて、ラーメンでも食ってくるか

PIC1823の感想とMPLABXでの開発

●ミッドレンジ PIC16F1823 のいいところ

レジスタ、ブロック図、プログラムそのすべてがシンプルで勉強にとても向いている。だから教材に選ばれやすいのかもしれない

データシート1冊でさくさく開発を進めることができます(Arduinoはリファレンスだけでレジスタ操作なくあそべちゃいますがね)

ただし、PICは古い型番も現役。どれを使えばいいのだろうかという意見を1回聞いたことがあります。なぜ1回かというと回りにPICユーザーがいないからです

f:id:kt-marshal:20160430210835j:plain

・プログラムメモリ:2Kワード
・RAM:128バイト
・EEPROM:256バイト
・I/O:最大12本
・ADコンバータ:10ビットx8ch
・コンパレータ:2ch
・タッチセンサ入力(CapSense):8ch
・タイマー:8ビットx2,16ビットx1

PICマイコンPIC16F1823−I/P: マイコン関連 秋月電子通商 電子部品 ネット通販

●開発するぞう

PIC遊びで現在ワタクシが使用しているのは下記のものです

・PIC kit3

f:id:kt-marshal:20160430213859j:plain

 

・接続ハーネス(フラットケーブル)と電源

 PICkit3は供給電力が少ないため電源がほぼ必要になります(100uFの電源ラインコンデンサでアウトです)

 PICkit3は直挿しもOKですがハーネスがあれば

  あれ・・・w 完成品のスペース、狭くてささらないっすwww

 なんて事態になりにくくなるでしょう

f:id:kt-marshal:20160430213910j:plain

 

・MPLAB XとXC8コンパイラ

f:id:kt-marshal:20160430214338j:plain

 

PICkit3(3000円くらい?)さえ手に入れてしまえばPICマイコン自体は数100円ですので出費は少ないかもしれません