前回、Raspberry Pi Pico 2を受領したのに、一時寝かせてしまいました。老眼の目にはピンヘッダのハンダ付けが辛い、さらにPico 2用にソフトウエアのアップデートがメンドクセーです。まあ、折角手に入れたボードに火も入れずに打っちゃっておくのも気が咎めるので、なんとか吉例Lチカやってみましたぞ。
PIC三昧(28) PIC16F18855、CWGの駆動波形をフォトカプラで電源分離
前々回ハーフブリッジ駆動波形、前回フルブリッジ駆動波形とCWG機能を練習。別件シリーズで制御対象となりそうなパワーMOSFETにも触りました。そのくせCWGで生成した波形を直ぐにパワーMOSFETに接続しなかったのは信号レベルが違うから。PIC16側の3.3Vに対してパワーMOSFETのゲートは10V推奨みたいです。
PIC三昧(27) PIC16F18855、CWGでフル・ブリッジ駆動波形を生成
前回ハーフ・ブリッジ駆動波形を生成したので、今回はフル・ブリッジです。モータを駆動するためのHブリッジ回路を念頭にCWGを設定してみました。まあブリッジ回路の現物が無いのでとりあえずAD2のロジアナ・モードでCWGの出力波形を観察してみただけですが。まあ正転、逆転できそうな感じではあります。早く実験用の部品買えよ。 “PIC三昧(27) PIC16F18855、CWGでフル・ブリッジ駆動波形を生成” の続きを読む
PIC三昧(26) PIC16F18855、CWGでハーフ・ブリッジ駆動波形を生成
今回はCWG(Complementary Waveform Generator)の練習1回目です。パワエレ系の人々にはお馴染みさんのハーフブリッジとかフルブリッジとかを駆動するための波形を作り出してくれるもの。パワエレ素人の年寄はインバータといわれると反射的にロジックを思い浮かべてしまう。ダメな私。
PIC三昧(25) CONFIGビット読めていた、フェイントU-bit PIC16F18855
前回、Flashの中の「コードとは別な空間」にあるDevice IDは読めたけれども、CONFIGURATIONビットが読めないと混乱しました。しかし、よくよく調べてみたら実は読めていたことが判明。MCCの提示した値が読めるものと思っていたところ、実機では異なる値が読めることが判明。ようやく腑に落ちました。
PIC三昧(24) Device ID読めるがCONFIG読めない? PIC16F18855
PICマイコンにはコンフィギュレーション・ビットあり、ハード初期設定を不揮発な記憶に残すもの。ありがたい機能ですが自分でやると設定がメンドイ。しかし、コンフィギュレーションツールMCCにお願すれば「よきに計らってくれる」っと。しかしソフトで設定値読み出そうとするとヤバイ?どうなっているの?
PIC三昧(23) PWM+TIMER+DSM、赤外線リモコン波形、PIC16F18855
別件シリーズでコンピュータ上で赤外線リモコン波形を生成。こちらでは実際に赤外線LEDを駆動して「送信」できる筈の波形をPIC16マイコンで作成してみたいと思います。とりあえずの今回は0と1の波形が生成されていることをオシロで確認するところまで。過去回で練習済のTIMER、PWM、DSMの合わせ技、応用課題か?
“PIC三昧(23) PWM+TIMER+DSM、赤外線リモコン波形、PIC16F18855” の続きを読む
PIC三昧(22) TIMER0、ワンショットでパルス幅を制御する。PIC16F18855
前回に続きTIMER0を試用。今回はワンショットで出力パルス幅を制御するのに使ってみたいと思います。外部でボタンが押されたことをトリガにして、ボタンが押された直後から所定の幅のパルスを一発出力するもの。制御ではアリガチ?今回は16ビット利用なので最小4μsから最大約260msまでのパルスを自由自在だと。
PIC三昧(21) TIMER0、外部クロックをカウント、PIC16F18855
前回は内部のクロックを外部出力するCLKREFモジュールを練習しました。今回は外部からクロックを入力して数えてみます。PIC16F18855はタイマ(カウンタ)が充実、0から6まで7本もあります。今回はそのうちのTIMER0を使って外部クロックをカウント、周期的にタイマ0割り込みを発生させてみます。
PIC三昧(20) CLKREF、参照クロックの外部出力、PIC16F18855
PIC16マイコン搭載の周辺回路を脈絡もなく思いつくまま気の向くままの順番で練習してきました。ここで「なんの一番基本的なモジュール」を練習してないことに気づきました。内部のクロック信号を外部にお知らせできるCLKREFモジュールです。クロックを出力するだけ、地味だあ~。でも単純だけれどもよく考えられてる?
PIC三昧(19) TEMP、チップの温度をADCで測定、PIC16F18855
今回はオンチップの温度を測るTEMPERATURE INDICATOR MODULEです。偉そうなお名前ですが、やっていることは温度依存性がある筈のダイオードの電圧ドロップをADCで測っているだけです。単純明快、な割には制御はフェイント。独立したモジュールというより、2つのモジュールに「間借り」している雰囲気。 “PIC三昧(19) TEMP、チップの温度をADCで測定、PIC16F18855” の続きを読む
PIC三昧(18) CRC、データ配列のCRC8をハードで計算、PIC16F18855
前回は書き変えに便利で安心EEPROMを使ってみました。今回はFlashメモリのCRCをCPU使わずに計算することもできるCRCモジュールを使用してみます。Flashに対して使用すれば「改ざん」なども検出可能かも。ただし、今回はデータメモリの中の配列のCRC8をCPU制御で計算してもらいます。設定が分かり難い? “PIC三昧(18) CRC、データ配列のCRC8をハードで計算、PIC16F18855” の続きを読む
PIC三昧(17) EEPROM、データ書き込み&読み出し、PIC16F18855
前回まで4回を費やしてMSSPを一通りなでました。今回は「軽く」NVM(NONVOLATILE MEMORY)に入りたいと思います。PIC16FマイコンはプログラムメモリとしてFlashを搭載しているだけでなく、不揮発なデータ格納用にEEPROMを搭載しています。これがあれば電源切っても消えない設定など自由自在だっ。
“PIC三昧(17) EEPROM、データ書き込み&読み出し、PIC16F18855” の続きを読む
PIC三昧(16) MSSP、I2C Slaveモードでデータを送受、PIC16F18855
前回はPIC16搭載のMSSPをSPIスレーブとして使用。今回はMSSPをI2Cスレーブとして使ってみます。別シリーズ記事にて前回のSPIスレーブのテスト用の通信相手をMicroPythonで作成しましたが、今回もI2Cスレーブの通信相手を同様に作成して実験したいと思います。両側作らないと実験できないのはメンドイっす。