トドお父さん通信 -27ページ目

トドお父さん通信

北部九州在住 高BMI中高年のオタク趣味の活動記録

おもちゃ病院のCOB基板の故障入れ替え用のCPU基板を検討しています。
安価なCPUとして、前にを秋月から買ったATTINY202を使って赤外線リモコンを作りました。
 
続いて、少し容量とピン数の大きいATTINY402/816/1614 をマルツから入手しました。
 
それで今度はオルゴールを作りました。つつじが丘おもちゃ病院の大泉院長の力作です。
 
TINY402で実装するには、メモリが4kBしかないので1曲しか入りませんが、メモリの容量の大きなCPUを使えば数曲ははいりそうです。
 
ピンが少ないので、前回作った自作のHVP UPDIプログラマが活躍します。
今回の回路でも、起動/停止するSW0はUPDI信号を入力するPA0 RESETピンを使います。
なので、FUSEビットを書き換えてPA0をGPIOで入力ピンに設定すると、次に書き換えるために
は、PA0 RESETピンに12VのHVPを印加して、強制的にUPDIモードに切り替える必要があります。
 
手順としては、まずAVRDUDEでFUSE書き込みを行います。
デフォールトでPA0 RESETピンはUPDIになっていますので、ここでは普通に書けるはずです。
 
 
ここでは、クロック 16MHzでPA0 RESETピンをGPIOにする設定なので、
OSCCFG(FUSE2)を20MHz→ 16MHz、SISYCFG0(FUSE5)をUPDI→ GPIOに変更で
avrdude -Cavrdude.conf -c serialupdi -p t202 -P COM7 -U fuse2:w:0x01:m -U fuse5:w:0xC0:m
を書き込みます。
これでPA0 UPDIピンがGPIOになるので、次回よりファーム書き換えには事前にHVP印加が必要です。
【後日追記】
ファーム書き込み時のGUIアプリ、AVRDUDESSでもFUSE書き込みができることが分りました。
記事をここに置いています。
 
次はファームの書き込みです。
今度はGUIのAVRDUDESSを開いてATMEL STUDIOで開発したHEXファイルを選びます。
 
書き込み前に、プログラマの黄色いHVPボタンを押した状態で、赤いPORボタンをチョンと押します。
これで、PA0 RESETピンがGPIOに設定されても、強制的にUPDIになってプログラムできます。
 
下のデータシートを参照してくださいね。次のパワーオンリセットで無効化されます。
 
 
この手順で、大泉さんのTinyAVR電子オルゴールVer1_2 の書き込みができます。
プログラムの修正内容をお知らせしますね。
 
今回確認した回路図は下記です。外部メモリを付けてないので簡単です。
アンプを付けてないので音は小さいですが、あくまで今回は動作確認です。
 
 オルゴール動作確認 回路図
 
まず、つつじが丘 おもちゃ病院のtinyAVR電子オルゴールVer1_2(tiny402をサポート)をダウンロードし、自分のATMEL STUDIOのフォルダに展開します。
 
次は、TINY402用のプロジェクトを選択し、プロジェクトファイルをダブルクリックして
開きます。(もちろん ATMEL STUDIOをインストールしている前提です)
 
開いたorgel_SW_402プロジェクトの下にある、orgel_conf.hを開きます。
ここに各種設定が書き込まれるようになっているようです。
 
 
初期設定だと、外部Flashメモリに保存した音声再生(VOICE_S)になっているようです。
ここの設定を1 → 0(再生しない)にして、PART_N(オルゴール再生)を 0 → 3にします。
ここの数字で、オルゴール再生の和音数が決められるようです。 メモリ容量に関係するので
最初は2(和音数2)にした方がいいかもしれません。
 
次に再生されるオルゴールの曲を選択します。
オルゴールの音符データはプログラムメモリの中に書き込まれるので、TINY402の場合は
フラッシュが4kBしかありませんので、2kBくらいの曲を1曲しか書き込めません
(コンパイルエラーになる)
今回はTINY402でオルゴールの再生テストのため、2KBの『シャボン玉飛んだ』を選択します。
 
音符データの指定は、main.cの下にある、song_idx.sというアセンブラファイルにあります。
ATMEL STUDIOでこのファイルを開いて下さい。
デフォールトでは3曲くらい選択されているのを、一旦 全て // でコメントアウトします。
 
それから、455、456行にあるシャボン玉のファイル指定2行のコメントを外します。
son_mac (song_SYABONDAMA)
#define song_SYABONDAMA_DEF
 
Build → Rebuild Solution を実行してコンパイルできました。生成されたHEXファイルはReleaseに入ってます。
 
 
ちなみに、上のサイズが少し大きい音符ファイルを選ぶと下記のようにエラーになります。
 
 
Could not allocate program memory プログラムメモリ不足です。
 
project → propaty → device で 仮にATTINY402より容量の大きいATTINY804とかを
選んでリビルドするとエラーが出なくなるので確認できますね。

さて、今回の演奏をYouTubeに登録しました。
電源を入れて、SW0を押すとオルゴール曲の再生が始まります。長押しすると停止します。
プログラムメモリが大きければ、複数曲入れることができ曲順にループ再生するとのことです。
 
 
アンプがあるともっと迫力のある音になるのですが、CPUとスピーカ直結のため
すこし音質がしょぼいですよね。今回テストなので許して下さいね。
 
でも、さすが 糸魚川の「おもちゃクリニックゆりかご」のDr.わたなべさんが作成した音源、きれいな和音がでていますね。
次は、すこし容量の大きいATTINY1614で、アンプを付けて試験しましょうかね?
 
それでは、おやすみなさい。
 

関連記事 

ATTINY202/402のFUSEビットをAVRDUDESSを使って書く方法
おもちゃ修理用のSOUND PLAYER基板の小型版 V2を設計しました!
[Part2ピエゾアンプ]ATTINY用Sounds Player基板を作って動作確認しました!
[Part1] ATTINY用Sounds Player基板を作って動作確認しました!
[Part2 テスト終了です] ATTINY402で音声再生のテストをしました
[Part1] ATTINY402で音声再生のテストをしました
ATTINY402に電子オルゴールのHVPプログラム書き込みテストをしました
[Part2 完成しました!]HVP対応のUPDI プログラマーを作成中です
[Part1] HVP対応のUPDI プログラマーを作成中です
[Part4 IRリモコン完成!] ATTINY202への書き込みとプログラムをやっています!
[Part3] ATTINY202への書き込みとプログラムをやっています!
[Part2] ATTINY202への書き込みとプログラムをやっています!
[Part1] ATTINY202への書き込みとプログラムをやっています!
ATTINY85 CPUを使って小型の赤外リモコンを作りました!

 

こんにちは、トドお父さんです。

前回は基板データとして回路図からネットリストでアノテートした部品フットプリントと

接続情報をラッツネットとして出力した所まででした。

 

今回は、これから基板外形を入力して基板パターンを設計していきます。

今回はこちらのサイトを参考にしました。

KiCADの達人 「PCBレイアウトエディター」で基板外形を描く

レイヤーをedge cutsに切り替えて、

座標を(X、Y)=(100,100)を基準に線を引いていきます。

今回は、y=40mm、x=33mmの大きさで外形を入力します。

この大きさにしたのは、JLCPCB等の中華基板メーカのお得サイズが100x100mmのため

縦を2枚x横を3枚の6枚取りに面取りしても、80x99mmになるためです。

 

四角ができたら、角の面取りをするために、プロパティで縦横1mmずつ短く設定します。

すると、角が1mmずつかけた図形ができるので、これをつなぎます。

角をつないで、角を1mm面取りした外形図ができました。

 

Altiumとかの有料CADだと、この辺は自由にできるのですが、Kicad面倒ですね。

でも、無料なので文句を言ってはいけません。

閉じた図形で外形ができたら、3D表示で確認できますよ。

 

外形の線を全て選択して、右クリックでロックを選択します。

ピンクでキープアウト領域(配線できない領域)が表示されます。

レイヤーをUser.Drawingsに切り替えて、寸法線も入れましょう。

 

 

ここまでできたら、いよいよ部品のレイアウトを開始します。

回路図を見ながら、電源周りと信号線が短くなるように、部品の配置を

 

 

配置ができたら、電源・GNDからつないでいきます。

自分は配線・ネットクラスの幅に0.3mm/0.5mm/0.8mm/1mmを登録し

ビアに0.6mm/0.3mm、0.8mm/0.4mm、1mm/0.6mmを登録しました。

 

電源系は0.5mm幅以上で配線、信号線は0.3mmで配線します

横方向は表面で配線し、縦方向でパターンが引けない部分はビアを打って

裏面に配線します。CAD上では表面は赤線、裏面は青線で表示されます。

 

配線が終わりました。

DRC(デザインルールチェック)をかけてみましょう。

 

おっと、配線でいくつか未接続のエラーが出ています。

これを修正しましょう。タクトスイッチの横方向は部品内で接続されているので

無視してOKです。

 

 

さて、直りました。タクトスイッチの横方向の未接続エラー3点のみですね。

 

ここから、余った領域を銅箔で埋めるベタ処理(cupper poring)を行います。

まず表面パターン(F.Cu)を選びます。

 

右メニューから塗りつぶしゾーンを追加を選んで、原点をクリックします。

 

すると、上のようにどの信号で塗りつぶすかのメニューがでるのでGNDを選んでOK。

その後、4隅を順にクリックして完成です。次にDRCを掛けると銅ベタが現れます。

 

 

次に、裏面も同様にGNDの銅ベタにしました。

今回のように、小さい基板でそんなに稠密でない場合は、裏面だけ銅ベタ

にしたほうがいいかもしれません。

もし、パターン配線が間違っていた場合、GND線はGNDベタで接続されるので

手直し修正が困難餡になりますので。(個人の感覚です)

 

あとは、表面と裏面の間の接続に大目にビアを打って、接続抵抗を減らします。

ビア1個では0.0何Ωかありますので、これを並列接続で減らすわけです。

 

その後シルクを追加して、基板名やら信号名が第三者にわかるようにします。

できあがったのがこれです。

 

3D図面です。

 

これから基板製造用のGerber dataを生成して、JLCPCBやFUSION PCBなどの

中華メーカに出図する手順は、いろんな資料がありますので割愛します。

ガーバーデータについては、下記資料を参考にしてください。

KiCADの達人 ガーバーデータ(Gerber Data)とは?

 

実際の手順については基板メーカの資料が一番確実ですね。

JLCPCB

How to generate Gerber and Drill files in KiCad 7

FUSION PCB

KiCADからガーバーファイルを出力する方法

 

基板メーカは結局JLCPCBを選びました。

なんと5枚で送料込み550円くらいで作ることができました。

 

基板が$2、送料がOCS NEPというANA系の運送会社の軽量パックでなんと約$1

通常のOCS Expessでも約$2という安さです。

5月14日の19時過ぎに注文して、2日後の夕方にはもう製造終了、送付済みとの

連絡があり、基板製造の経過は逐一自分のアカウントで見ることができるスピード感

も魅力です。(Fusionより体感的にかなり早い)

 

OCSの納期は6~8日ということなので、届いたらまた報告しますね~

それでは、お休みなさい

 

 

 

 

 

 

 

 

 

 

 

 

 

みなさん、こんばんは

トドお父さんです。

 

前回は、ATTINY202用のHVP対応UDPIプログラマを手作り試作した所でしたね。

今回、KiCadを使って基板設計を行って、基板発注まで実施しましたのでその内容です。

 

回路図を書くCADが必要だったので、無料のKICadを使い始めました。

昔はEagle Cadが無料CADで有名だったんですが、機構Cadで有名なAutoⅾeskに買収されて

有料化になってしまいました。

KiCadはまだ無償で使えるので、こちらのサイトを参考に今回基板CADも使ってみることにしました。

【KiCAD】PCB設計(初期設定から部品配置まで)

 

回路図はV17まで進化しています。 接続確認用のLEDも付けました(NMですが)。

回路図にまずERC(エレクトリカルルールチェッカー)を掛けます。エラーが出なければOKです。

 

今回下記のようにエラーは出ましたが、内容を確認して問題がなければOKです。

アノテーションも実行しておきますね。

部品のリファレンスが重複してないか等の確認です。

 

 

おっと、フットプリントの登録も必要ですね。ツール→ フットプリントの割り当て

ひとつひとつの部品にフットプリントを割り当てていきます。

抵抗とかコンデンサは、いろんな大きさのフットプリントがありますので間違えないように

しましょう。

 

 

さて、ここからいよいよ基板設計です。

起動画面からPCBエディターをクリックします。

 

このように、PCBエディター画面が起動します。

初期セットアップについては、さきほどのサイトを参考にしてくださいね。

 

この画面に、さきほどの回路の部品を置いていきます。

 

まず回路図エディターに戻って、ネットリストを生成(エキスポート)します。

 

つぎに基板エディタで、ネットリストをインポートします。

これで回路図の各部品のフットプリントと結線情報が取り込まれました。

これをラッツネットと呼んでいます。

 

ここから基板外形を入力して、パターンの配線を開始します。

 

きょうは、この辺で終わりにしますね。

この続きは明日ポストします。

おやすみなさい。 #電子工作 #おもちゃ病院 #基板