読者です 読者をやめる 読者になる 読者になる

きっと明日もいい天気

メモ用ブログ

PIC作業日誌

C言語でPIC16F88をいじった日記です。参考にしないほうがよい

PIC16F88データシート

2016/9/26

何もすることがない

やりたいこと

sdカード ジャイロセンサ i2c通信 spi通信 xbee

 

2016/9/25

昨日も作業したがまとめて書く

やったこと

・PICからのシリアル通信(送信)

ここのコードを拝借して終わり

数値はそのまま送れないのでatoi関数を使おうとしたが、うまくいかなかった 原因不明

各位の数を一文字ずつ配列に代入→一文字ずつ文字に変換→送信

PICからのシリアル通信(受信しエコーバック)

ここを参考に一文字ずつ受信し即送信

PIC16F88を二つ使ってPIC→PIC→Arduino→PCという感じで確認した

(最初のPICでデータを送信)

・AD変換

ここのコードを拝借

手元にあったCDSと温度センサーLM60のデータをPCに送った

cのコードを貼りたいがうまくいかない

 

2016/9/23

近所の電子部品屋でPickit3とPIC16F88を買った

さっそく家で書き込んでみた 下のサイトを参考にぶれっとボードをつかった

マイコンとか: PIC16F88に書き込む

MPLAB X IDE v3.40でビルド IPEで書き込み

前日エラー起こしたPICでも書き込めた 原因究明ならず

やったこと等

ここの下半分の操作をした

・Pickit3のprogrammerので書き込みを試したが書き込む直前にPIC16シリーズは使えないことに気づき諦め、元の設定に戻した

・外部から電源を供給した(arduinoの5vピンとgnd)がエラー(電力供給されているデバイス云々)吐かれることがあったのでやめた

・今までノートPCでやっていたがデスクトップPCに変えた

 

また、前日できなかったLEDのプログラム(※)を書き込んだ

※タイマ0のオーバーフロー割り込みをカウントして、一定時間ごとにLEDを点灯させるもの

何故か約4倍の間隔で点灯していたのでおかしいと思った→「クロック周波数の1/4が入力パルスの周波数となる」

4倍の分をなおしておよそ5秒間隔で点灯するようになった

 

TMR0(8bit)は入力パルスごとに0から255までカウントできる

255のときさらにパルスが入力されると値が0に戻りオーバーフロービットTMR0IFフラグ(INTCONレジスタ)が1になる

このとき割り込みが許可されていれば割り込みが発生する

 

プリスケーラがよくわからなかったが入力パルスがn回入った時に1個のパルスがTMR0に出力されるようなしくみのようだ(このとき分周比は1/256)

OPTIONレジスタのPSAとPSで設定できる

 

内部クロック8MHz、分周比1/256で5秒カウントするのに(8M/4)*5/256/256≒152カウントすれば5秒ぐらい待てる

実測間隔は5.1秒だった

 

疑問点

・内部クロックでどのくらいの精度が出るのか

・割り込み処理はタイマに影響するのか(時間の正確さに疑問)

マイコンのタイマの精度について質問です。 - 水... - 工学 | Yahoo!知恵袋

 

次回はタイマ1とかを使ってみたいと思う

 

参考 PICマイコンの基礎(著 後閑哲也)

 

2016/9/22

二回目。LEDを5秒ごとに光らせるプログラムを作ったものの、書き込めない。

原因究明しそのまま作業終了。

 

症状

コンパイルは通る

・何回かに一回は書き込める?

・IPEの書き込み画面でsuccessの表示が出ていても書き込めていない場合が多々あった。(書き込み前と同様の動作をしていた場合、書き込めていないと判断した)

・Target Device ID (0x0) does not match expected Device ID 

ほとんど毎回出るがpickitのメス端子ージャンパー線ーブレットボードーPICでやるとこのエラーは出なかった

・Conection failed

たまに出るがUSB抜き差しすれば治った

・その他

電圧不足なのか設定電圧が5vのままだとエラーが出る(→4.5vぐらいに下げる)

外部から電源供給しつつブレットボード経由で書き込みしてもうまくいかないことが多々ある

 

まだ未解決なので参考になりそうなリンクと対応をコピペしていく

PICあれこれと失敗談

内部クロック使用時に

プログラムを書き込む前にPICに通常電圧が供給されてしまい、書き込み済み
     プログラムが内部発振で動いてしまって、新しい書き込みができない

らしく

MPLABではBuildアイコンでコンパイルまで行い、PICへの書き込みはPICkit2
   単独で行う(そのつどHexファイルのImportとPICへのWriteを指示する)ようにしたら正常に
   書き込める

とのこと 

PICKIT3を使ってみよう

MCLRをOFFにして書き込むと、それ以降書込みも出来なくなっちゃうらしい。

 

電子回路 Vol.20 【PICkit 3:書き込みエラー編】 | roomX.jp

 

MPLAB XからPICKit 3につながらない | Sahara's WebLog

mplabとpickit3のprogrammerの設定

 

2016/9/8

初めてPICに触る。当面はPIC16F88を使っていく模様。Pickit3+秋月の書き込みキットと自前のPC(XP、詳細不明)、MPLAB X IDE,IPE、コンパイラはXC8を使う。内部クロックを使ってLEDをチカチカさせることができた。TMR0の割り込み処理?を使ってるようだがよくわからなかった。