PSoCの12ビットAD変換器を使う。
関連、PGAについても:s.h.log: PSoC Designer – CY8C29466の6bit ADコンバータ
PSoCの12ビットAD変換器を使う。
関連、PGAについても:s.h.log: PSoC Designer – CY8C29466の6bit ADコンバータ
前の記事s.h.log: PSoC Designer – CY8C29466でスイッチ入力と同じ動作を、割り込みでやってみた。
基盤も同じくCY3210-MiniEvalを使った。
動き方もまったく同じのを作っちゃったのでビデオは省略。ただスイッチの扱い方が違うだけ。
SourceCode (PSoC Designer 4.3 + C Compiler)
■動作設定
Device EditorのInterconnect Viewで
基本的にs.h.log: PSoC Designer – CY8C29466でスイッチ入力と同じだが、
タクトスイッチの接続されているPORT2-4のInterruptをFailingEdgeにする。
割り込みの仕方は3種類あり、
・FailingEdge → 立下り割り込み
・RisingEdge → 立ち上がり割り込み
・ChangeFromRead → 両エッジ変化割り込み
から選ぶ。
AVRのSIG_INTERRUPT0、SIG_INTERRUPT1はそれぞれINT0, INT1ピンの状態が変化を監視する外部入力割り込みだが、
PSoCの外部入力割込みはAVRのSIG_PIN_CHANGEの方と同じく、どのピンに変化があっても割り込みが発生してしまう。
だから、複数のピンの割り込みを有効にする場合は実際にどのピンの変化が割り込みを発生させたのか?をいちいち確認しなければならない。今回はマスクレジスタで1つのピン(PORT2-4)だけをenableにしているので必要ないけど。
軽くまとめると、PSoCの割り込みの設定は
・マスクレジスタで「どのピンの変化を監視するか」を指定
・ピン毎に「立ち上がり/下がり/両方の、どの条件で割り込むか」を指定
できる。でもこれはPSoC Designerが自動生成してくれるので下手に触る必要は無い。
マスクで複数enableに指定した場合は、実際にどのピンが反応したか?はプログラミングでなんとかする。(1回前のPRTnDRの状態をglobal変数に保存しておいて比較するとか)
この辺ははじめてのPSoCマイコンの「入出力&割り込みのしくみとスイッチ&LEDを使った実験」p.67に詳しく書かれている。
LEDへの出力に続いて、GPIO(汎用入出力ピン)でスイッチからの入力を取ってみた。
あとはUART、入力割り込み、ADコンバータ、タイマーを確認すれば、AVRからすっかり移住できると思う。
Source Code (PSoC Designer 4.3 + C Compiler)
今回もCY3210-MiniEval(PSoCライタに付いてた評価ボード)を使った。
下記に書いてある回路などの話は、データシート見ながらの方がわかりやすいと思う。
「LEDをピコピコさせる」というのは横一列に並べたLEDをマイコンのピンから順番に電流を出したり出さなかったりして順番に点灯させる事を指す。
GPIOの開閉、代入、wait処理、for文if文、インクリメントなどのマイコンプログラミングでよく使う要素が入っているので、新しいマイコンを使う時はこれをやってみる事にしている。
ちなみにGPIOへの入力は、チャタリングやプルアップなど色々あるので別にやる。
→LED ピコピコ 検索結果
あと最近知ったけど GPIO はGeneral-Purpose I/Oの略で、つまり汎用ピンの事なんだね。
PSoC MiniProg付属のPSoCMiniEvalにCY8C29466を載せてやってみた。
Source Code(PSoC Designer 4.3 + C Compiler)
動かした。
今回も桑野さんのはじめてのPSoCマイコンのp.63-72「入出力&割り込みのしくみとスイッチ&LEDを使った実験」を参考にした。
昨日は夕方にスタバに行って、PSoCいじってきました。
真ん中のLEDがPWMで0.3秒間隔ぐらいで点滅する。PWM(Pulse Width Modulation)はON/OFFの振幅幅を指定して自動的に波形を作るしくみの事で、カウントアップするタイマカウンタに対してduty値を指定してそれより大きい時は出力をHI、小さければLOWにする。
つまり波形を操作するにはduty値、カウントアップの間隔(システムクロックを分周したりして調節できる)、カウントアップの初期値、最大値、1クロックあたりのカウントアップ値、などのレジスタ(たいてい普通の変数として代入できる)を設定しなおす事で動的に波形を変える事が出来る。
PastelMagicの桑野さんが書かれた「はじめてのPSoCマイコン」の第1章 PSoCチュートリアル (p.25-53)を、PSoC MiniProgを買った時に付いてきたミニ評価ボード(CY3210-MiniEval1)にCY8C29466乗っけた版としてやってみた。
(この本ではCY8C27443を使っているが、ピンコンパチで上位版なので俺は29466をメインに使っていく予定)
PSoCをはじめる一冊
$10マイコンがバージョンアップ!
PSoCの基本が解ります
ちなみに29466はGainerでも使われている。
■用意するもの
・プログラムを書くIDE → PSoC Designer(Cypressダウンロードページ)
・ISPライター制御プログラム → PSoC Programmer(Cypressダウンロードページ)
・PSoC C言語コンパイラ → 秋月電子通販
・PSoC MiniProg → 秋月電子通販
・CY8C29466 → 秋月電子通販