「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



相変わらずAVRのDDSを進行中。

プログラムを念のため再度シミュレーションに
掛けて確認してみる…。
SPI出力にからむCS信号のタイミングがヤバイこと
に気づく。うーん。CSの立ち上がりが早すぎ。

ハードウェアSPIモジュールを使ってデータ出力
してるのに、出力レジスタへの書き込み直後に
ポーリングでCS信号を戻しちゃっているんだから、
CSの立ち上がりが早すぎてアタリマエ。

SPIからの出力完了を待ってからCS立ち上げを
するように変えてみると、思ったとおり割り込み
間隔(200クロック)以内に収まらなくなった(T.T)

仕方ないので、若干の拡張性を犠牲にしつつ
数十クロックの削減をしてなんとか170クロック
程度に収めた…。
それでもメインループが1周期あたり30クロック程度
しか取れないから、処理の大部分は割り込み処理が
占めちゃうってこと。
(あとでUARTのストックとフローを見直しておかないと)


で、ようやくDDS用のプログラムが書きあがったのは
いいんだけど、mega328シリーズが載せられるボード
っていうのがそれほど手持ちに無いので(もちろん
arduinoとして使っているものはいくつかあるけど)、
以前買い込んであった秋月のarduino互換ボードを
用いてmega328ボードを増産することに。パオー。
http://akizukidenshi.com/catalog/g/gP-04399/

このボードはもともと秋月のFT232RL-USBシリアル
変換ボード
を搭載して使うもの。しかも厚みの
都合上変換ボードを半田付けしてしまわないと
いけないので、何だかんだでボード1枚仕上げると
そこそこのお値段になっちゃう。

で、以前毛が3本足りない頭で思いついてたアレを
試してみようかな…と。

sparkfunのArduino-ProとPCを接続する変換ボード
(FTDI-Basic)なら薄型だし、半田付けする必要
もないし、FTDI-Basicは使い回しが効きやすい。

うまい具合にFTDI-Basic用の6ピンを生やすことが
できれば大幅に部品代が安く仕上がる…と。

で、やってみたのがこれ。


裏面。


特別に追加の穴あけも必要なく、数本のジャンパー線
とL型のピンヘッダだけでok。パターンカットも不要。

さらに、外部電源は秋月製の5Vスイッチングアダプター
(センタープラス)専用と割り切ることで、7805や
ブリッヂダイオードも端折り、さらにTX/RX用のLED
もFTDI-Basicボード上にLEDがあるので省略。

かなり部品を減らすことができた。ok。
約1千円くらい?

電解コンは、外部電源用は100uFの背が低いやつを使用。
背が低いヤツが1個しかなかったので、USB供給の
電源用には10uFの積層セラコンで済ますことに。
7805を端折った代わりに7805の1番3番を挿すはずの
穴をジャンパーでショート。


そのほか、FTDI-Basic用の配線はこんな感じ。


U1用の7から12番のところにL型6ピンヘッダを挿す。

U1の1番を挿すはずだったところからX3の1番にジャンパー
を経由してFTDI-Basicの3番(TXO信号)へ。白いジャンパー。

U1の2番だったところからFTDI-Basic端子の1番(DTR信号)
へ。黄色いジャンパー。
U1の5番だったところからFTDI-Basicの2番(RXI信号)へ。
水色のジャンパー。

裏面へ。


U1の14番だったところとFTDI-Basicの4番(Vcc)を
接続。赤いジャンパー。

U1の7番は元々GNDラインなのでFTDI-Basicの
6番が直結。U1の8番と7番をショートさせて、
FTDI-BasicのCTS端子(5番)を共にGND電位に。

といった感じ。これでarduinoのIDEから自動リセット
も掛けられる仕様。

もちろん、ブリッヂダイオードや7805をそのまま
使えば外部9V電源とUSBの5Vを切り替えて使うことも
可能。

とりあえず激安かつ超簡単なarduino互換ボードの
出来上がり!ISP端子も付いてるので、あとは
ここからブートローダの書き込みとか設定をすれば
準備完了。


とりあえず、arduino-IDEからLEDチカチカのスケッチ
を流し込んでみて動作確認。リセットボタンも効く。

ok。ok。

これでCPUコア、クロック、UART、電源、リセット、
LEDがちゃんと動くことはわかった。よしよし。
毛が3本足りないわりにうまく行った。


で、別にarduinoの実機を増やしたかったわけじゃ
なくて、mega328搭載の実機ボードが欲しかった
だけ。ここにアセンブラで書いたDDSのプログラム
を書き込んで、SPI経由でD/A変換ICを動かしてみる
っていうのが当初の目的。

この場合のシリアルI/F端子はPC上のターミナル
ソフトと繋いで

ちょっとずつ進めていこう。


あれからもう1ヶ月か…。まだまだ余震が頻繁で
安心できない日々だな。

そんな中でもちょっとずつでも被災地支援。


福島の純米酒。西郷に酒蔵があったのか…知らなかった。
なんにしても、東北3県+茨城が産地のモノがあったら
当面はそっちを優先しよう。



コメント ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする