PIC三昧(15) MSSP、SPI Slaveモードでデータを受信、PIC16F18855

SPIslave_DUT
Joseph Halfmoon

前回はPIC16搭載のMSSPをSPIマスタとして使ってみました。今回はSPIスレーブとして使ってみます。ううむ誰かマスタになってくれる奴が必要なのだけれどどうしようか?今回は「とりあえずのテスト用」マスタからスレーブにデータが届いていることを確かめるだけ。あなた任せなだけにスレーブの方がちょっとメンドイです。

“PIC三昧(15) MSSP、SPI Slaveモードでデータを受信、PIC16F18855” の続きを読む

PIC三昧(14) MSSP(SPI)で23LC512にRWしてみる、PIC16F18855

PIC16F18855_23LC512_schematic
Joseph Halfmoon

前回はI2C(マスタ)の接続の練習にMicroChip社製24LC64 シリアルE2PROMを使用しました。今回はSPI(マスタ)の接続練習に、やはりMicroChip社製の23LC512 シリアルSRAMを使用してみます。PIC16Fと同じMicroChip社製品なのだから繋がらん筈がないっと。

“PIC三昧(14) MSSP(SPI)で23LC512にRWしてみる、PIC16F18855” の続きを読む

PIC三昧(13) MSSP(I2C)で24LC64に読み書きしてみる、PIC16F18855

24LC64wPIC16F18855_u
Joseph Halfmoon

PIC16Fのペリフェラル回路を経めぐっております。今回はMSSPです。SPIもしくはI2Cとして使用できる同期式シリアルインタフェースのモジュールです。今回は同じマイクロチップ社製の24LC64をI2C接続。MCCが何でも簡単にしてくれるのでこれもチョロイとか思ったらそうでもないっす。I2Cもいろいろあるからね。
“PIC三昧(13) MSSP(I2C)で24LC64に読み書きしてみる、PIC16F18855” の続きを読む

PIC三昧(12) FSM(信号測定タイマ)を使ってみる、PIC16F18855

SMT_PinMGR
Joseph Halfmoon

ほとんどのマイコンではタイマの横にコンペア/キャプチャ/PWMといった入出力チャネルがぶら下がっていてそれらを駆使することで入力イベントの時間間隔とか、パルス幅、周期といったことを測定できます。勿論PICマイコンも同様なことを出来るのですが、専用のFSMモジュールが用意されてます。専用モジュールなので設定もお楽。

“PIC三昧(12) FSM(信号測定タイマ)を使ってみる、PIC16F18855” の続きを読む

PIC三昧(11) DSM(データ信号変調器)を使ってみる、PIC16F18855

DSM_pins
Joseph Halfmoon

別件でFM変調をやったので、今回はPIC16F搭載のペリフェラルDSMをつかってFSK変調をやってみます。DSMはパルス信号対象ですが、FSK、PSK、OOKで変調することができるモジュールです。変調波をキャリアに同期する機能などのオプションもあり優れものじゃないかと。変調してくれとクリクリするだけで変調OK、お楽。

“PIC三昧(11) DSM(データ信号変調器)を使ってみる、PIC16F18855” の続きを読む

PIC三昧(10) NCO(数値制御発振器)を使ってみる、PIC16F18855

NCO_DUT
Joseph Halfmoon

前回は参照電圧を生成してくれるFVRを使ってみました。PICマイコンの良いところはハード搭載がなければ外付けになってしまう「お役立ち」回路がいろいろ搭載されており、かつその設定がソフトウエアでできるところじゃないかと思います。今回使ってみるのはNCO(数値制御発振器)です。お好みのクロックを生成できるもの。 “PIC三昧(10) NCO(数値制御発振器)を使ってみる、PIC16F18855” の続きを読む

PIC三昧(9) FVR(固定参照電圧源)を使ってみる、PIC16F18855

FVR_setting
Joseph Halfmoon

前回は内蔵アナログコンパレータを使って外部電圧2つを比較してみました。今回はアナログコンパレータの入力電圧の一方を内蔵のFVR(FIXED VOLTAGE REFERENCE)としてみます。ありがちな1.024Vとその2倍、4倍の電圧が内部のADC、DACそしてコンパレータで参照できるようになってます。便利。
“PIC三昧(9) FVR(固定参照電圧源)を使ってみる、PIC16F18855” の続きを読む

PIC三昧(8) アナログ・コンパレータを使ってみる、PIC16F18855

CMP_DUT_EC
Joseph Halfmoon

前回はZCD(ゼロクロス検出器)で割り込みかけてみました。今回はアナログ入力電圧2つを比較する内蔵コンパレータを使ってみます。なにか基準電圧を上回ったら信号を出力したりできるもの。結果で割り込むことも可能ですが、直接外部出力信号とすることも可能。外付けオペアンプなど不要で済むのはありがたいかも。

“PIC三昧(8) アナログ・コンパレータを使ってみる、PIC16F18855” の続きを読む

PIC三昧(7) Zero-Cross Detection(ZCD)、PIC16F18855

PIC16F18855_ZCD_DUT
Joseph Halfmoon

前回は小規模なデジタル・ロジックを構築できるCLC機能でした。今回はアナログです、といっても軽いアナログ。ゼロ(グランド)通過を検出するゼロクロス検出機能です。マイコンでは時々必要になるんじゃないかと思います。それこそ商用電源をゼロクロスすれば、50Hz(あるいは60Hz)のタイミングが取り出せるっと。 “PIC三昧(7) Zero-Cross Detection(ZCD)、PIC16F18855” の続きを読む

PIC三昧(6) Configurable Logic Cell、PIC16F18855

CLC0imageS
Joseph Halfmoon

前回は複数の外部入力端子を組み合わせて割り込みをかけることもできるIOC機能でした。今回は複数の外部入力端子を含む各種信号を使ってロジックを作り、結果を外部出力したり内部回路で使ったりできるCIC機能を使ってみます。FPGAとはいかないですが、ごく小さなPLDみたいな感じ。外付けロジックIC数個分くらいの規模感。
“PIC三昧(6) Configurable Logic Cell、PIC16F18855” の続きを読む

PIC三昧(5) Interrupt-On-Change(IOC)、PIC16F18855

IocPinModule
Joseph Halfmoon

前回は外部端子からの割り込み使うべしということでEXT-INTを使用。PIC素人には複雑そうなInterrupt-ON-Change(IOC)よりもEXT-INTの方がフツーに見えたからです。しかし、今回IOCを使ってみて、こっちゃの方がフツーでないの、という認識にいたりました。即使えるようになっているんだこれが。

“PIC三昧(5) Interrupt-On-Change(IOC)、PIC16F18855” の続きを読む

PIC三昧(4) まずはEXT_INTを使ってみる。PIC16F18855

EXT_INT_DUT
Joseph Halfmoon

モダーンなPIC16F1xxx マイコンは外部割り込みも2系統の方法をサポートしてます。IOCと呼ばれる方はカッコよく複雑な条件で割り込み処理が開始できます。一方、単にINT Pinとか、EXT_INTと呼ばれる方は「昔ながらの」割り込みピンのようです。まず今回は「昔ながらの」方法で外部割込みをかけてみたいと思います。

“PIC三昧(4) まずはEXT_INTを使ってみる。PIC16F18855” の続きを読む

PIC三昧(3) お手製書き込み治具で小ピンPIC書き込みOK, ダメなやつもあるけれど

WritingJIG
Joseph Halfmoon

PICマイコンが電子工作に向いているのは小ピンDIPパッケージ品の存在が大きいかと思います。はんだ付けでやるにせよ、ブレッドボード上に組み立てるにせよ、小ピンDIPはお楽。手元にも小ピンDIP対応の書き込み治具が欲しくなりました。自作は簡単。電源、グランドに信号線数本を接続するのみ。これで複数種類のパッケージ対応。 “PIC三昧(3) お手製書き込み治具で小ピンPIC書き込みOK, ダメなやつもあるけれど” の続きを読む

PIC三昧(2) MCCでPIC16F1xxxx。TMR2+PWM6でPWM出力

pwmWaveForm
Joseph Halfmoon

PIC16F1xxxの「諸機能」を端から動かしてみる第2回目はPWM(Pulse Width Modulation)出力。任意のデューティサイクルでデジタル出力をペコペコするあれです。Lチカからモータ制御などその利用範囲は広うござんす。しかしPICの場合PWMだけでは動きませぬ。その動作周期を与えるタイマも必要です。

“PIC三昧(2) MCCでPIC16F1xxxx。TMR2+PWM6でPWM出力” の続きを読む