コメを噛め

コメを噛め

rerofumi の電子工作メモ

Archive for the ‘PSoC’ Category


hatena bookmark

2003年に電子工作を再開し、マイコン電子工作を初めて行ったときに真っ先に作ったのが PIC マイコンの実験をするためのテスト基板だった。
GPIO にコネクタをつないで、そのコネクタにLED等の色々なデバイスをつないでテストしたものだった。
「奏」も自分で使う用のテストボードとして作って、かなり使い倒したし。その後も事あるごとに舞コンテスト基板を作り続けてきた。
ひょっとしたらマイコンテスト基板そのものを作るのが好きなのかも知らん。

というわけで久しぶりにマイコンテスト基板を作りたくなってきたというお話。
今回はその予告までに。

board_image

コンセプトのイメージ図。
基板とコネクタの仕様が決まっている一連のシリーズで、一枚の基板に単機能をのせる。
その基板群を必要な機能に合わせて上に積み重ねていき五重の塔、七重の塔みたいにして利用する『積み上げ式テスト基板』というのがコンセプト。

Arduino系だと “BLE Nanoキット” がそういった方針かな。

DSC00818

最初は PSoC4 の自分用テスト基板として試作を積み上げているところ。
積み、だけに。

「つみょん」というのは一応プロジェクト名を作ったほうが良いかなということで付けた呼称。「積み」+「on」とかそんな感じで。
仮称なんで突然変えるかも。


hatena bookmark

PSoC4 Pioneer kit を使って PSoC4 の ADC で遊ぶ記事。

DSC00284
ニッケル水素電池は充電して再利用できるので便利に使っている。
しかし、利用してからも結構な時間が経つため徐々に増える電池という反面、利用年数がばらばら な物が混在しているという状況にある。
使い込んで明らかにへたれてくると充電してもものの数分で出力が低下したり、充電できなかったりするのでわかるのだけれども、長年使ってそこそこ劣化しているというときは今ひとつ知る術がない。

そこでマイコンを使って電池の電圧降下を計測し、実質の容量計測をしようと思い立った。

DSC00286
お試しなんで適当にバラック設計。
Read the rest of this entry »


hatena bookmark

DSC00238

ちょっと前に DIP 28ピンパッケージの LPC1114 Cortex-M0 マイコンが話題になっていた。
ついに DIP パッケージの ARM マイコンが発売されただとか、それが秋月電子通商で購入できるからお手軽だとかプチ盛り上がっていた。トラ技の付録としてもついてきていたんだっけ。

そんななか「600mil パッケージダサい! 300mil にしる!」という声を受けてパッケージを削る記事が非常に面白く、動画と合わせて笑いながら拝見していた。
「LPC1114のDIPを600mil→300milにしてみました。」
動画

みんな DIP 好きねえ。

上の削ってパッケージを加工するというのは技術的に面白いので完結しているのだけれども、みんなが DIP を欲しがる理由というところでちょっと考えていた。
DIP でないと困る理由としての大部分が

  • 面実装部品はプリント基板を自作しないと使えない
  • ユニバーサル基板やブレッドボードで工作している
  • 変換基板を使うと幅が広すぎてブレッドボードに載らない

といったあたりなんではないかと思われる。
大抵は試作とか学習が目的でケースに組み込む訳ではなく、実は縦方向の空間に対してはどんなに延びても構わない事の方が多いんじゃないかと。

ということで 300mil 幅 28ピン DIP の変換基板(ただし縦に長い)の制作を考え始めたのであった。
変換するチップはなんでも良いのだけれども、個人的趣味で PSoC5。
Cortex-M3 の PSoC5 はとても面白いマイコンなのだけれども足つきのやつは 0.5mm ピッチの QFP100 になってしまう。私の環境では、CNCフライスでの修行の成果でそれを載せる基板を自作できるようになったものの、流石に 0.5mm ピッチはぎりぎりで作るのも実装するのも大変。とても気合いが要ります。
なので実験用基板があると自分としても嬉しいので作成してみるのです。

Read the rest of this entry »


hatena bookmark


今回のLED時計の基板は改良しつつも 4枚つくることとなった。セグメント側は2枚。
作り直しの度に細かく改善してよりよくなっていったのだけれども、作り直しをせざるを得なかった本当の理由は実装後の PSoC3 が壊れてしまったからであった。
そういった恥ずかしい失敗談のほうが知識として役に立つので、今回は高い勉強代としてその経緯を残しておくことにした。

結論としては、PSoC3/5 の足に 10mA 以上の電流を流し込んじゃいかんよということで。

PSoC3/5 は動作電圧が 1.8V – 5.0V と幅広く、PSoC5 においては 5V で駆動し 5V IO を駆動できる CortexM3 チップとして貴重な存在でもある。
その内部コアは、コア内の LDO で生成した 1.8V で動作しているらしい(Vccdはそのレギュレータ用にコンデンサを付けるピン)。なので入出力で 5V と言っても IO 用電圧にそれを印加したときのものとなる。
とても便利なのだけれども、電源ピンが多く配線するのが面倒という欠点もあったりはする。

そんな風に柔軟な IO ピンとなっているからかずいぶんともろい作りになっているっぽい。


PSoC Creator でのピン設定。
出力は 4mA のみ、で入力は 8mA 上限と 25mA 上限が選択できる。
これ、どのピンでも選べるかというとそうでなく 8mA は通常の GPIO で 25mA は SpecialIO のみで利用できる設定だったりする。
SpecialIO とは何かというと、外部の機器と接続する様に5Vちょいまで耐圧のある特殊ピンである。主に P12,P15 といったあたり。シリアル通信とかはここを使えというようになっていますな。むろん通常の GPIO でも通信用に割り当てることはできるけれども、sink 8mA の定格内でということになる。

そんな基礎知識の後で、今回失敗した原因を解説。
最初の 1枚は Miniprog3 の接続を間違えて逆にしてしまったというもの。
Miniprog3 からの電力供給を信号ピンに流し込んで動かなくなりました、(´・ω・`)ショボン
1枚目は JTAG で、2枚目以降は SWD 5ピン。
2枚目は SWD 5ピンに変えて設計したもの、実装時にハンダブリッジしているところがあって死亡(´・ω・`)
Miniprog3 からの電力供給は危険、避けた方が良いかもしれない。

3枚目は無事動作し、これで動画も撮ったもの。
完成してやったーと喜んだものの、2時間くらいで突然動作しなくなった。

以前作った電流計付き電源ステーションで動作させていたのでなんかやったらめったら電流が流れている事に気がついた。
7セグに使った LED が高輝度型で typical 20mA で最大 30mA とか流れてる。これが sink 8mA で受け止められなくて IO が破損してしまったらしい(´・ω・`)
かといって制限抵抗で 8mA にしてしまうと暗くなってしまうので、GND 側もトランジスタスイッチを付けてマイコンに流れ込まないようにすることにした。
今のところ上手く動いているみたい。

PSoC1 は 5Vデバイスだったし、シンク電流も 25mA くらいだったので、うっかり配線ミスしても壊れることは少なく、ずいぶん乱暴に扱ったモノだけれども PSoC3/5 ではそうはいかないというお話。
まあ、考えてみれば当たり前の事なのだけれども、実際に失敗して高い授業料(PSoC3 はまだ1個1200円くらいする)を払うことで覚え込みました(´・ω・`)


hatena bookmark


前回3DプリンターとCNCフライスを生かした自作の7セグメントLED作成の方法を紹介した。
せっかくできた7セグメントLEDもそれ単体ではあまりうれしくない。より魅力的なプロダクツにするために、それをつかってLED時計をつくることにした。


それにあたって7セグメントモジュールの増産(4個)と真ん中のコロン部分を追加作成する必要がある。
コロンについてはおまけということで特に設計図無し。

Read the rest of this entry »


hatena bookmark


秋月電子通商の新製品一覧を見ていたら「シャープ モノクロHR-TFTメモリ液晶モジュール 2.7インチ WQVGA [LS027B4DH01]」なるものが出ていた。
うおお、これは面白そうだ。何か作品を作るのでは無くて単に使ってみたい!
と思ったので買って表示させてみましたというのが今回の工作記事。


大きさ的には 6cm×4cm ほどのモノクログラフィック液晶モジュール。
赤い丸は保護シートの模様。
低消費電力が売りになっているのは、バックライトがない反射型液晶だというのと画素メモリがあってリフレッシュなしでも画像を保持できるため駆動間隔を妙に長く取れてその分電力を食わないということらしい。同じ絵を出し続けるならリフレッシュなしで2時間くらいはほっておけるらしい。
まあ普通のLCDモジュールでもドライバー内にバッファがあって勝手にリフレッシュしてくれているから、マイコン工作として制御する分の手間は大して変わらない感じ。メリット的には 400x240pixel という高精細なモノクロLCDが手に入るというあたりではないかと。


裏面から見た写真。
これガラス基板の上にドライバーが構築されているのか。
昔シャープが「ガラスの上にZ80を構築できました!」とアピールしていたが、その技術がこんな風に使われていたのね。この液晶モジュールのシリアル通信駆動速度は max 2MHz なんだそうだけれども、その速度もガラス基板回路と考えると順当かも。


取り敢えずのテストで絵を出すにも、まずは breakout ボードを作らないといけない。
秋月で買うと面実装のフレキコネクタが 1個だけ付いてくる。これが 10p 0.5mm ピッチなのでなんとかそれっぽい変換基板を使って利用する形になるだろう。
こんな時に頼もしいのが自作基板である :-)
というわけで私はCNCフライスを使っての自作基板でコネクタを取り付けられる様な brekeout 基板を作ってみた。


今回はなんでもいいから表示だけしてみようという実験なので、自作の PSoC3 テストボードを利用する。
ブレッドボード部分に挿して簡易テスト配線。
LCDモジュールの電源は 5V 単一、信号線は 5V でもいいけどできるだけ 3V 前後にしてくれと不思議な指示がある。今回は 3.3V のシグナルを利用。
コントロールに必要なのは
シリアルクロック・シリアルデータ・チップセレクト(シリアル送信中にHになる)、LCD表示コントロール
の 4本のみ。
シリアルクロックとシリアルデータは SPI の tx オンリーと見て良い。


PSoC Creater でのブロック設計はこんな感じで SPI 1個。
チップセレクトは SPI ブロックの SS 出力タイミングで良かったのだけれども、モジュールと H/L が逆なので NOT を追加している。PSoC 便利だねえ。
転送終了の割り込みを受け取れるかと ISR と追加したけれども、これは使っていない。

参考程度に PSoC Creater のプロジェクト
Download: hrtft-test.zip


反射型LCDなので暗いところでは見えないけれども、明るいところでは割と細かいのと黒が深いのとでかなり綺麗に見える。
特に黒い部分は格子が見えにくくてベタに見えるので文字表示とかは良さそう。

書き換えはライン単位で、横400pixel = 50byte にコントロール 4byte を一気に送る手法。部分矩形の更新とかは面倒なので全画面書き換えっぽくなるんじゃないかなあ。
そして全画面書き換えようとすると 2MHz シリアルではそんなに早くないという印象。
モノクロで細かい LCDモジュールなのはうれしいけれども、1画面分のバッファを持とうとすると 50×240 で 12000byte が必要になってしまうため、非力なマイコンだと辛いかもしれないです。

フレキコネクタの入手性が悪いのと、フレキコネクタ実装のための基板をどうするかという問題が案外ハードル高いのでそこをどうするかでしょうな。
実際に表示できるようになると、おーと思うぐらい視認性が高く面白いモジュールなり。


hatena bookmark


電子工作の試作や実験で使う電源のお話。
レギュレータで 5.0V と 3.3V を供給するBOXがあると便利かなと思って作ってみた。ついでなのでデジタル電流計もセットにしてある、どちらかというとこのデジタル電流計をつくってみたかったというのが一番の動機かも。

電子工作のさいに用いる電源としてメジャーなところとしては黒い色をした四角いACDCアダプタなのではないだろうか。特に秋月の小型スイッチング電源は多くの人が使っているんじゃないかと適当に推測する。
ACDCアダプタも良いのだけれども、あのジャックを毎回制作物につけるのが面倒だとか、5V以外の電圧を扱うようになったときとっかえひっかえが案外面倒だとかあるのです。特に取り違えは深刻で、うっかり12Vを食らわせてマイコンやLCDモジュールを破損させてしまったりするんですよ。これが。


あるとき「直流安定化電源が欲しー」という発作に見舞われ、そのときにアルインコの無線機用電源を電子工作用に購入した。安くてそこそこの直流が得られるし、実験で電流が欲しいときにも 10A まで出力してくれる。

この電源装置から4ピンコネクタに電源を引いてきて使っていた。なので私が作る実験基板はいつも4ピンコネクタが電源となっていたのはそのせい。

この形だとブレッドボードにもそのままさせるから案外便利なんだよ。

電源装置の方で 1~15V まで電圧可変できるので、必要に応じて調整していたがそのたびにテスターで計りながら合わせていた。それと接続ピンは写真の通りむき出しなのですぐ折れるのも問題であった。
3.3V と 5.0V の間を行き来することが多くなってきて、そのたびにテスターで見ながら合わせるのがだんだんと面倒になってきた次第。

そこで、5.0V と 3.3V の両方を出力する電源ステーションを作成することにした。
といっても面倒なことはなく、単に 5.0V と 3.3V 2つのレギュレータで電圧をそろえてジャックから出力するだけ。
それだけだと面白くないので、マイコンを使ったデジタル電流計をつけてみた。
電子工作中にプロダクトがどれくらいの電流を消費するかぱっとわかるようになるはず。

Read the rest of this entry »


hatena bookmark

小ネタ&突貫製作物。

ニコニコ動画で良くあるコメントをして『うすいG8』というネタがおもしろかったので旬なうちに工作をして動画を作ってみた。
その回路図とファームウェアを置いておく。

マイコンはストロベリーリナックスで買える CY8C24794 の USB-PSoC1 モジュール。
ファームは昔作った「ファミリーBASICALLYキーボードコンバーター」をベースに書き直した物。
最近は PWM と圧電ブザーでビープを鳴らすのが俺ブームなので音もつけてみた。

Read the rest of this entry »


hatena bookmark


前回に引き続き、ヒューマンデータの PLCC68 PLD シリーズと PSoC3 を載せた汎用プロトタイプボードの作成。主に俺用。
これで大体完成。

使えるピンは多くないけど、中央のブレッドボードでちょこっとテストしたりすることができるお気軽ボード。


ちょこちょこと修正したり、改良したりして 3代目。
使っていると「あ、こここうした方が良いかも」というところがあったり、微妙な問題があったりで作り直しを繰り返していた。
とくに PLCCソケットの向きを痛快に間違えていたというのは痛かった。

主な修正箇所は以下

  • 若干立て幅が足りなくてブレッドボードが収まらなかった
  • 電源ラインにパイロットLEDを追加
  • ブレッドボード脇のIOソケットに +3.3V と GND を引き出し
  • PSoC3 に RTC 用の 32.768kHz 水晶を追加

Read the rest of this entry »


hatena bookmark

AVR一本で音声合成出力をしてくれるLSIモジュール、AquesTalk picoを入手したので軽く発声テスト。
PSoC3 + I2C ボタン + I2C LCD と我が家のプロトタイプシリーズを使って、凄くありきたりな「現在時刻を読み上げる時計」をでっちあげてみた。

詳細は後で書く、つもり。

上の動画が見えない方は Youtube でどぞー。(→Youtube上の同じ動画)