チカラの技術

電子工作やプログラミング

LPC1114を600mil→300milにする動画を投稿しました。

○動画投稿

こんばんわ。
ニコニコ動画【マイコン幅を】L4U【半分に斬る】」投稿しました。

イメージ 4


また英語の勉強のために英訳字幕で再編集してyoutubeにUPしました。
A crazy way to convert a 600mil DIP to 300mil.


○動画コメントしてくれた方へ

見て頂いてありがとうございます。
楽しんで頂けた方のコメントは励みになります。

また、特に動画の構成に関してコメントを頂いたのでここで応答したいと思います。

①最終加工前に動作の確認をするべきだった。

ご指摘ありがとうございます。
実は動作確認は樹脂で固めた時点で行っていたのですが、
動画の構成上カットしてしまいました。
今思えば、ご指摘のようにあのように過剰に演出されても
動かなければただのプラスチックの塊な訳ですから、
例えば全pinでLチカをさせてマイコンの回りをフラッシュさせるなど、
スピード感と動作確認を両立させるような演出の仕方も有ったと思います。
もう作りきってしまったので、やりなおしが出来ないのは残念ですが
次回以降活かしたいと思います。

②できたパッケージが偽モノっぽい。
確かにモッタリした形でとても似ていませんねw
自分の加工技術不足です。
ただ実際の話、いくら似せようとしてもそもそも生産方法が違うので
似せるのは限界が有ったと思います。
ですから下手に似せようとせずに奇抜な色やデザインにしてしまった方が
良かったのではと今では思います。
方向性を誤ってしまいましたね。


○技術的な補足
動画では時間の関係上、かなり端折って説明していたので
補足事項を説明したいと思います。
まずは動画後半の申し訳程度の電子工作部分から。

①SDカードからの音楽の読み出しと出力。

SDカードからのデータの読み出しはCHANさんがMARYボードに移植された
FATFSを使わせていただきました。(SPI接続です)
いつもお世話になっています。

音楽の出力はPWM出力の後段にローパスフィルタを置いて、擬似DAコンバータとして出力しています。
さらにLM386で信号を増幅してスピーカーに出力しました。

②ネギ振り

RCサーボモータをPWMで制御しているだけですw
イメージ 3


「音楽に合わせてネギ振り」と動画中では説明していますが
これは単純な時間同期ですw
ゲインや周波数でタイミングを合わせている訳ではないし、ましてやビートトラッキングなんて
僕のスキルではまだ無理ですw

---------------------------------------------------------------------------------
次に時間の都合で思いっきり端折った製作部分に関しての補足です。

①はんだ付け後の保護樹脂

実は工程自体を端折ってしまったのですが
はんだ付けした後、はんだ部分のみエポキシ樹脂を薄く充填しています。 
これは次の工程のパッケージ化の際に圧力負荷が掛かって、断線するのを防ぐためです。

イメージ 1



100円均一で買ったもので、出来ればこれだけでパッケージングしたかったのですが
切削性が悪く、やすりに掛けると脆く崩れてしまう為、あくまではんだ部のコーティングのみに使いました。

②パッケージング剤
ポリエステルパテのモリモリを使いました。

イメージ 2
 ただ、そのままでは作業性が悪かったので
粘性を下げる為にうすめ液(有機溶剤)を混ぜています。
うすめ液を使ったおかげでピン間の絶縁抵抗が1週間程度、数MΩに落ちましたw
今は揮発して絶縁が戻っていますが、あまりいい方法じゃないかも知れません。

あと、動画ではモリモリを盛った後即座に切削して整形が終わったようになっていますが
実際はこの間が製作において一番時間が掛かっていますw
欠けている所をモリモリや(TAMIYAの)エポキシパテで埋めて
乾くのを待ってヤスリにかけて、凹んでるところがまた見つかって、また埋めて・・・・
ある程度納得いく仕上がりになるのに5日間掛かりましたww
樹脂の選定など機械的な部分は本当に素人なので試行錯誤でした。

③塗装
塗装は以下の3つのスプレーを使いました。
1.サーフェイサー
2.つやなしブラック
3.つやけしクリア
クリアは動画から端折っています。


動画の為にモノを作るということ
この動画を作るために、DIPを作り直したのですが
色々学ぶことが多かったのでメモとして残しておきます。

①無駄素材

動画の為にこれでもかというくらい、写真と動画をとりましたが
7割は使いませんでした。
にも関わらず、欲しい絵が無く撮りなおしたりと色々予想外のことが起こりました。
動画のイメージをもっとしっかり持ってれば無駄も少ないのですが、
実際作るべきもの自体が自分のイメージ通りになる事ばかりじゃないので
その辺の折り合いをつけないといけない所が工作動画の特徴的なところですね。

②音楽に合わせて動画を作る面白さ、大変さ

今回は自分が尊敬しているMAD動画の「G4U」と「T4U」を元に
製作動画を作ったのですが、音楽のテンポに合わせて
工作のテンポを調整する作業が製作時間のかなりの割合を占めています。
製作部分の動画は全カットをフレーム単位で調整しています。
あと、1~50倍まで加減速してます。
今までここまで詰めて動画作ったことが無かったので色々新鮮でした。

感じたこと
ひょっとしたらこの動画を見て「なぜ300milに出来るのに、600milで販売したのだ」という感想を
持たれるかもしれません。

聞くところによると、NXPさんは28pinのDIPの型は600milしか持っていないので新たに300milの型を作ると
非常にコストが上がってしまうからだという話がありました。

しかし、僕はこの工作を経てそんな事はどうでもいいじゃないかと思うようになりました。
どの道DIPを製品として使うケースは稀で、本マイコンは主に教育やホビー用途で使われるのですから
300milにするところまで工作だと思えばいいんじゃないかと考えるようになりました。
(CNCが無くても鋸とヤスリで可能かも知れません!)

つまり僕にとってトラ技付録のLPC1114FNは600milマイコンではなく【300mil化キット】なのです。
手を動かすことによって物事の視点が変わるというのは貴重な経験ですね。

実は300mil化したマイコンは作り方や塗装方法を変えて合計3つ作りました。(今度写真を撮って貼ります)
600milのマイコンを8個買って、LPCxpressoも購入しました。
こんなにひとつのマイコンに没頭したのは久しぶりです。

重ねて本マイコンに感謝をしたいと思います。
600milでありがとう!

イメージ 8



エトセトラ
ここからは作っている間にいくつか出来た話のネタを書いてみたいと思います。

1.実際に製作するに至った経緯

実は@okamo41さんという方がツィッター上で【ある600milのDIP】のX線透過写真を掲載されているのを見て
もし、これがLPC1114だったら、ある程度は削りこめるんじゃ・・・・と思ったのがキッカケです。
また、昔見たテレビドラマに「電子立国日本」という番組があって、その中でDIPの中のICのコア(ダイ)を視聴者に見せるためにCNCで削り、薬液で露出させたシーンがありました。
イメージ 9
見事にダイが露出していますね。昔はリバースエンジニアリングの手法として用いられていたそうです。
この二つの事柄が結びついて、やってみるのも面白そうだと思って始めたのがキッカケです。

2.試行錯誤と構造確認

最初の一個はうまくいきました(前回の日記)。
それから失敗を2つ出してしまいました。(パターンが外れてしまった)
一個作るのに樹脂の硬化も含めると動作確認まで10時間以上掛かるので
非常に困ってしまいました。
原因としてはやはりDIPの構造をちゃんと把握していない為でした。
そこで仕方なく、CNCで一個を全部削ってみました。
イメージ 5

中々壮観ですね。
中央に見えるのがダイです。
噂ではQFNパッケージが入っているのではないかという話も有りましたが、実際はダイでした。
さらにパターンを外しました。
イメージ 6

上に見えるのが中央のパターンです。
これはダイを載せると同時に冷却する役割があったと思われます。

分解したおかげでダイとパターンの接続は切削面の上部で行われている事がわかりました。
また、どこまでが削ってもいい所かを検討するのにも有効でした。

こうした知見から歩留まりが向上し次の2個の製作は成功しました。
そのうちの1個が動画に使われました。

3.カロリーメイトみたいな

前回の日記でカロリーメイトみたいになったと言ったのでちょっと確認してみました。
イメージ 7
チョコレート味です。
似てるっちゃあ似てるか・・・・
600milでした。


マイコンとしての評価

LPC1114を実際に使ってみて感じた長所と短所を挙げます。
ただ、私がメインで使用しているマイコンはSTM32ですので、
どうしてもそれとの比較になってしまう点はご了承ください。

●長所
①非常に安い。マルツパーツで120円。PIC等の8bitマイコンと比較しても安い部類に入る。
②タイマのレジスタが素直で扱いやすい。(自分はペリフェラルの中でタイマが最も重要だと思っています。)
DIPをひっくり返しブレッドボードに差し込んでも壊れない電源ピンの配置になっている。
(例えばPICの場合はブレッドボードを道連れにして焼けてしまったりする。)
④Lpcxpressoは2000円程度で高機能のデバッグ環境が手に入る。
開発環境もかなりリッチで容易に構築できる。。
(128kByteは事実上無制限。)

●短所
①PWMがLow→Highの論理で反転ができない。
例えば100クロックの周期でコンペアを20クロックに設定すると
デューティー比は80%になり感覚的にかなり扱いづらい。
反転する為には周期とデューティー比の差を計算する必要がある。  

ペリフェラルを設定する関数のライブラリが少ない。
つまり多くの設定はレジスタを直接叩く必要がある。
レジスタ直叩きのコードから動作を理解する為には
レジスタを調べる必要があるのでで、コードの可読性が低くなる。

③タイマのコンペアレジスタ(カウント値と比較されるコンペア値を示したレジスタ)に
シャドウレジスタ(コンペアレジスタがカウント一致時に更新される為にある、バッファ的なコンペア値レジスタ
が無い。
つまり、コンペア値は直接書き換える他に無いのでカウントの一致と非同期になる。
NE555PさんがMARY基板を用いられた動画で音楽再生に対してノイズが発生すると説明していたのも、
これが原因。

分かりにくいと思うので例を挙げる。
例:16bitカウンタにおいて、,コンペア値が20000で設定され,プリスケール値が40000に設定されている場合、
現在のカウント値が10000だとする。
このとき、コンペア値を5000に書き換えると、即座に書き換わるので、コンペア値<カウント値となる。
仕様上、このときコンペア一致動作は起こらないのでカウント値は
一致動作が起こらないまま一度40000までカウントされてから0に戻り、
それから5000まで再び上昇したときにコンペア一致動作が起こる。
    コンペア動作だけでなく、PWMも同様。

無理やり解決するとしたら、下記のような方法だろうか。
Ⅰ.コンペア値を変更するときカウント値を常にソフトで監視する。
Ⅱ.0付近になった時に、コンペア値を更新するようにする。
(一回の監視ルーチンに必要なクロック数の幅を持たせる。また、それが最小のデューティ比になる。)
まぁ、CPUパワーを大きく使う事になるし、監視中は割り込みが出来なくなるので
応答が問題になるアプリケーションには使えなくなります。

④DMAが無い。
DMAはとっても便利だ・・・安価なマイコンにこれを求めるのは贅沢ではあるけど、
欲しい機能では有る・・・・・

以上です。
安価なマイコンとは言え、8bitマイコンに比べると非常に高性能(50MHzとか32bitタイマーとか)であるので
価格分の価値は十分にあると思います。