AVRマイコンで4bit分のデータをシリアルで送る方法

このQ&Aのポイント
  • AVRマイコン初心者がATtiny2313を使ってメロディICの入力端子に4bit分のデータをシリアルで送る方法について教えてください。データの送信方法にはUARTやタイマを使用する方法が考えられますが、具体的な手順や注意点などを教えていただけると助かります。
  • AVRマイコンを使用してSM11125ABVというメロディICの入力端子に4bit分のデータをシリアルで送る方法について教えてください。データシートには1bit分のパルス幅が2μsと書かれていますが、具体的な手順やプログラムの作成方法などを教えていただけると助かります。
  • ATtiny2313を使用してメロディICの入力端子に4bit分のデータをシリアルで送る方法について教えてください。データの送信方法にはUARTやタイマを使用する方法が考えられますが、具体的な手順や注意点などを教えていただけると助かります。また、WinAVRを使用する場合の手順やプログラムの書き方なども教えていただけると助かります。
回答を見る
  • ベストアンサー

AVRマイコンで4bit分のデータをシリアルで送る

お世話になります。AVRマイコン初心者です。 ATtiny2313 を使い、メロディICの入力端子に4bit分のデータをシリアルで送りたいです。 メロディIC → SM11125ABV (セイコーNPC製) データシート → ftp://ftp.npc.co.jp/pub/pdf_j/1125abv_nc0720a.pdf やりたいことは、SM1125ABVの入力端子SI, SCに選曲のためのデータを送り、選曲することです。 データシートにあるように、1bit分のパルス幅は2μsです。 ようは、この幅のパルスを出力できればいいのですが・・・・ 何から始めればよいのか・・・・ 検索したら、UARTというのが見つかりましたが、例がやたらと文字列の送受信で… 文字列の部分を0 ,1 に置き換えたら、H、Lのパルスが出力されてくれるのか??? それとも、タイマで割り込みのタイミングでH、LをI/Oポートから出力させればいいのか??? WinAVRを使います。 どうかアドバイスよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.1

UARTはPCなどとのデータ通信用のものであり、 5~9bitのデータを伝送するものですから、4bitのデータ伝送には使えません。 データシートを見ましたが、「パルス幅は2μs」というのは最小値であり、 それより長い分には問題なさそうですので、ソフトウェア的なポート制御で問題なさそうです。 タイマ割り込みでも、ポーリングでもどちらでも組みやすい方法で組めばいいかと思います。 ポーリングで組むなら、 #include <util/delay.h> しておいた上で、 SCが繋がっているピンをLに SIが繋がっているピンに1ビット目の値をセット _delay_us(3); SCが繋がっているピンをHに _delay_us(3); SCが繋がっているピンをLに SIが繋がっているピンに2ビット目の値をセット _delay_us(3); SCが繋がっているピンをHに _delay_us(3); …以下略。これを全部で4回繰り返す という処理でいいでしょう。 このコードでは、_delay_us(3); で3μs待たせています。 ですが、2μsというのはスペック上の最小値ですし、 内蔵RC発振器で動作させる場合、発振周波数に誤差があるので、ギリギリのタイミングで動作させるよりはある程度余裕を持たせるべきですから、これぐらいで十分でしょう。

関連するQ&A

  • 4bit のデータ生成するには??

    初心者です。 セイコーNPCのメロディIC「SM1125ABV」を使って 音を鳴らしたいです。 データシート : ftp://ftp.npc.co.jp/pub/pdf_j/1125abv_nc0720a.pdf このICには12曲内蔵されており、端子SIへの入力により選曲されます。 さて、この入力には4ビット分の信号を入力する必要があるのですが、 どういう方法がありますか。 PICで制御? よくわからないので何が必要か教えてください。 よろしくおねがいします。

  • シフトレジスタICのシリアルデータ出力にFET

    シフトレジスタICを基板渡しでカスケード接続する構成で、シフトレジスタICのシリアルデータ出力でFETを駆動して次の基板に入力、次の基板ではシュミット付きインバータの14で受けてシフトレジスタのシリアルデータ入力端子に入力、という回路で質問です。 ・ノイズに強くなる、と聞いたのですが、FETを使用することでどういった原理によりノイズに強くなるのでしょうか? ・また、FETや14を使用せずに直接接続する場合と比べてデメリットはないのでしょうか? 基板渡しでカスケード接続する場合、FET、14を使用するのはごく一般的なことでしょうか? 以上、よろしくお願いいたします。

  • メロディー

    量産で使っていたメロディーICが生産中止になって困っております。NPCに頼みカスタムICをおこそうとしましたが納期が間に合いません。 使っている製品は、半導体工場で働く搬送用ロボットなんですが、せっかくDOS/V互換の486のCPUCARDを積んでいるので、パソコンで取り込んで 鳴らしたいと考えおりますが、D/A、A/Dで取り込んで 出力するのはかなりメモリを食いそうなので 躊躇しております。DTMなど詳しい方見えましたら ご指導お願いします。ちなみにOSはVxWROKSです。

  • LEDドライバICについて(ICM7228)

    LEDのドライバICを動かすプログラムを書いているのですが、 ICM7228Bの動作は製造メーカーで入力信号のパルス幅等は変わるのでしょうか?(現在はインターシルを使っていますがマキシムとはデータシートでの値が異なります) また同じインターシル製でも製造ロットにより 入力信号は同じでも出力されるビットが異なることがありました。 何かご存知の方いらっしゃいましたらお願いします。

  • AVRマイコン

    AVRマイコンについて質問があります. AVRはスタートアップルーチンや ベクターテーブル等は 開発環境でコンパイルする際に自動的に 付加されると聞いたのですが 起動時にどのタイミングで スタートアップルーチンやベクターテーブルが 読まれ,どのように使われているのか 調べたのですが分かりません. どなたかご存知の方は教えていただけないでしょうか?

  • AVRマイコンの割り込みについて

    AVRマイコンの割り込みについて 初心者です。 ・AVRマイコンの割り込みの優先順位ですが、割込みベクターのアドレスが小さい順に優先度が高いでよろしいでしょうか? ・優先低の割り込みルーチンを処理している時に、優先高の割り込みが入った場合、  (1)優先低の割り込みルーチン処理中断→優先高の割り込みルーチンの処理、完了→優先低の割り込みルーチン処理再開(中断ヶ所から)  (2)優先低の割り込みルーチン処理、完了→優先高の割り込みルーチンの処理、完了  (3)その他 (1)、(2)、(3)のどの処理が行われますか? ・優先高の割り込みルーチンを処理している時に、優先高の割り込みを禁止し、ルーチン内で優先低の割り込みが入った場合、優先高の割り込みルーチンから優先低の割り込みルーチンにとばすことは可能でしょうか? 以上、よろしくお願い致します。

  • AVRマイコン

    AVRマイコン2313アッセンブリを機械語に変換するソフトをダウンロードしたいのですが詳細に指導ください、宜しくお願いいたします。

    • ベストアンサー
    • Java
  • AVRマイコン

    AVRマイコンで5分間だけある処理(例:LEDの点滅など)を繰り返し行い、処理が途中(例:LEDが点滅中)であっても5分たったらその処理を終了させたいのですが、どのようなプログラムを組めばよいのでしょうか。 ご回答よろしくお願い致します。

  • パララックス社超音波センサの使い方

    パララックス社の超音波センサーhttp://akizukidenshi.com/catalog/g/gM-05400/ の使い方について教えてください。 信号線に5μS(?)のパルスを入れると距離に応じたパルス幅が帰ってくるのでパルス幅(時間)をはかり音速(348m/s)で時間に相当する距離を算出するという方法かと思います。 この場合の出力と入力のタイミングはどのようにしたら良いでしょうか? また入力値には出力してからの入力に切替の時間など補正は必要ないでしょうか? データシートが英文だったので確証が持てませんでしたのでお願いいたします。

  • メロディーICについて

    簡単なメロディーICを探しています。 曲数は複数を選択できるようになっていなくて構いません。(一曲のみでも可) 簡単な回路で圧電スピーカに接続して使用しようと思います。よく、インターネット上でUM66Tという型式の3端子のメロディーICを見かけますが、メーカ名はどこに尋ねても分かりません。データシートも入手できない状況です。 希望に沿うようなICをご存知の方がおられましたら是非、ご紹介下さい。 よろしくお願いします。