AVRに関するブログ記事

SDアダプタ作成中

先週基板ができたので、今日はジャンパを通しました。 およそ30本。 面倒ですが、全部手配線に比べたら圧倒的に楽です。 ちなみにUEWを使って半田面に配線したので、部品面は未だにスッカスカです。 ISP用に背の高いコネクタをつけたくらい。 プログラミングはCPLD、tiny2313、mega88の3種...

なんちゃってROM(その4)

  • 投稿日:
  • 更新日:2015/03/09
  • by Taka Matsutsuka
  • カテゴリ: ,
AVR Tiny2313をROMとして動作させられるかどうか、ここのところ試行しているわけですが。 どうも、20MHz動作でも必ずアクセスが成功するというわけではないようです。 ごく稀にですが、誤動作することがあります。 ...

なんちゃってROM

  • 投稿日:
  • 更新日:2015/03/09
  • by Taka Matsutsuka
  • カテゴリ: ,
ATtiny2313を使ってROMエミュレータ こんなものを試作してみました。 ATtiny2313をROM代わりに使おうというものです。 アドレスバスのピン数の都合で、64バイトまでしかハンドルできません。 あとは全部イメージになりますが、起動時だけなので問題ないでしょう。 やはりスピードがかなり...

AVRで映像信号

  • 投稿日:
  • 更新日:2009/03/24
  • by Taka Matsutsuka
  • カテゴリ:
AVRで音声を出すことができたので、今度は映像信号に挑戦中です。 映像信号の詳細についてはこのへんに詳細な説明があるので、いろいろ調べながらトライしてますが、まだきちんと理解しているわけではありません。 基本的には、PWMを使って正確なタイミングで同期信号を出して、それに映像信号を載せればいいみた...

PCM-PWM変換でステレオサウンド再生

  • 投稿日:
  • 更新日:2015/03/09
  • by Taka Matsutsuka
  • カテゴリ:
ATtiny2313でのステレオサウンド再生テストです。 FT245RLモジュールと、ATtiny2313を使い、きわめて簡単な回路でやってみました。 データは単に垂れ流しているだけです。 これで少しだけBitBangモードの使い方がわかったような気がします。 回路はこんな感じ。 端子はすべてFT2...

FT245RLのテスト

  • 投稿日:
  • 更新日:2009/03/22
  • by Taka Matsutsuka
  • カテゴリ:
CPLDも書けるようになったので、そちらはブレッドボードからユニバーサル基板へ実装を移したあといったん終了。 んで、秋月のFT245RLモジュールをテストしました。 とりあえず何をしたってわけでもないですが、秋月のサンプルプログラムを動かしてみました。 自分でUSBデバイスをいじれるってのはなかな...

JTAGでCPLDに書けない

  • 投稿日:
  • 更新日:2009/03/21
  • by Taka Matsutsuka
  • カテゴリ:
パラレルポートからXilinxのCPLDに書き込めるようにJTAG用の回路を作ったのですが、これがうまく動いてくれません。 回路は次のようになっています。 WebPack 9.2iのiMPACTから通信させようとすると、デバイスIDがオール0またはオール1になってしまいます。 明らかに通信不良で...

PWMを実験

  • 投稿日:
  • 更新日:2009/03/19
  • by Taka Matsutsuka
  • カテゴリ:
ATtiny2313の実験回路を作ったので、ちょいと回路を変更してPWM出力をしてみました。 変更はきわめて簡単で、実験回路のPB2/OC0A(14番ピン)をD2から外し、RCAコネクタの信号線(内側)に入れます。 RCAコネクタのもう片方はGNDに接続します。 本体からの入力が1ビット使えなくな...

ATtiny2313で実験

  • 投稿日:
  • 更新日:2015/02/09
  • by Taka Matsutsuka
  • カテゴリ: ,
私の手元にはATmega88は一個しかなく、やたら使い回ししまくって壊すのも怖いので、先日買ってきたATtiny2313で実験を始めました。 まず、ラッチを使わずにデータをハンドルできるかどうかです。 次のような試験回路を使いました。 使っているORゲートはHC32です。 この回路では3段入れてい...

同時再生テスト

  • 投稿日:
  • 更新日:2015/02/09
  • by Taka Matsutsuka
  • カテゴリ: ,
一応同時再生ができるようになったので、例によりニコニコ動画からムービーを適当に拾ってきて録画してみました。 <a href="http://www.nicovideo.jp/watch/sm6446981">【ニコニコ動画】PC-6001で再生してみた「もじぴったん」</a>...

[AVR] 8MHzの限界

  • 投稿日:
  • 更新日:2009/03/13
  • by Taka Matsutsuka
  • カテゴリ: ,
現在、AVRは内蔵の8MHzクロックで動作させています。 もともと手持ちのものが古い(2世代目)ATmega8Lで、2.7V~5.5Vでの駆動が可能な代わりに8MHzまでの動作となっているためです。 姉妹品のATmega8は最高16MHzですが、4.5V~5.5Vでないと動作しません。 3.3V動...

[AVR-SD] 次のステップ:ブートアップ

  • 投稿日:
  • 更新日:2015/03/08
  • by Taka Matsutsuka
  • カテゴリ: ,
SDカードインタフェースはほぼ期待通りに動作しています。 ハードを設計して、作って、ソフトを設計して、作ってというのは結構長い道のりですが、動いたときはうれしいものですね。 いつもはソフトしか作らないので、またこれも格別なものがあります。 とはいっても、今回は西田さんにもかなり助けられていますが。 ...

[AVR-SD] とりあえず動いた

  • 投稿日:
  • 更新日:2015/03/08
  • by Taka Matsutsuka
  • カテゴリ: ,
なかなか苦しんでいたAVR版SDカードインタフェースですが、ファイルのデータ読み込みまで動作させることに成功しました。 結局outの割り込み(INT1)の最後でペンディングしているin割り込み(INT0)を解除し、かつステータスデータをINT0割り込みで出すようにすることでタイミングが取れるようにな...

AVRの割り込み要求の保留

  • 投稿日:
  • 更新日:2015/02/09
  • by Taka Matsutsuka
  • カテゴリ: ,
AVRでは、割り込み処理中にも割り込み"要求"自体が禁止されていなければ、外部からの割り込みに対して要求が発生するようです。 コメントにもあるように、その割り込みは保留(pending)され、現在処理中の割り込み処理が終了した後で処理されるようなのです。 このあたりが情報源です。 概念として、「割...

I/Oタイミングの考察

  • 投稿日:
  • 更新日:2015/02/09
  • by Taka Matsutsuka
  • カテゴリ: ,
どうもうまく動いてくれないSDカードインタフェースですが、問題はクリアになりました。 わかりにくいので、シーケンス図にします。 この図で、PCからのリクエストがin/out命令で、OUT buffer/IN bufferがそれぞれフリップフロップやラッチです。 最初にコマンドをout命令で送出し、...

I/Oタイミング再来

  • 投稿日:
  • 更新日:2015/02/09
  • by Taka Matsutsuka
  • カテゴリ: ,
SDカードインタフェースのハードウェアが出来上がったので、早速実際のSDカード入出力を作り始めています。 まずは、試しにディレクトリ情報を読み出しています。 今回は、AVR側にFATシステムを入れることにより、高速化を狙っていますが、1ポートのインタフェースで通信するのはなかなか難しいことがわかり...

描いてみた(SRAM混載バージョン)

  • 投稿日:
  • 更新日:2015/02/09
  • by Taka Matsutsuka
  • カテゴリ: ,
ROMレスシステムの回路を試しに描いてみました。 複雑度の雰囲気を掴むだけなので、正しい保証はありません。 まずは40ピン系(ATmega164/324/644)。 次に、28ピン系(ATmega8L/88/168/328)。 カウンタはATtiny2313を使ったほうが安くなりますが、わかりやす...

ROMレスシステム

  • 投稿日:
  • 更新日:2015/03/09
  • by Taka Matsutsuka
  • カテゴリ: ,
西田さんからのコメントがあったので、ROMレスシステムについて考えてみました。 基本的な考えは、 SRAMをROM領域(0x4000-0x7fff)に確保しておく (実際には32kB分のSRAMを0x4000-0xbfffに配置してRAM拡張を兼ねる) 起動時にSRAMにブートアップ用のプログラムを...

AVR-SD拡張回路(また改良)

  • 投稿日:
  • 更新日:2015/03/08
  • by Taka Matsutsuka
  • カテゴリ: ,
前回の回路がまた間違ってました。 アドレス線を使いたければ、データ線と同様ラッチしなければいけない これまでデータ線のみでアドレスのラッチを忘れていました。データのタイミングがAVRの割り込みからは間に合わないので、同然アドレスもラッチする必要があります。 ラッチではなくてフリップフロップを使う必要...