質問

最近、AVRとAVRと通信するUARTモジュールをすでに持っているMojo V3を購入しました。
私の問題は次のとおりです:私は他のモジュールとどのように接続するのですか?
Xバイトを受け入れるMD5コアがあるとしましょう。 わかりました、私は初心者です、MD5を持ってみましょう、私は単純なエコーを作りたいと言ってみましょう。
どこに始めるべきですか? FIFOを使う?シフトレジスタ?シンプルなアレイ? Bram?
これはAVRインターフェース(UART)です。

module avr_interface(
    input clk,
    input rst,
    input cclk,

    output spi_miso,
    input spi_mosi,
    input spi_sck,
    input spi_ss,
    output [3:0] spi_channel,

    output tx,
    input rx,

    input [3:0] channel,
    output new_sample,
    output [9:0] sample,
    output [3:0] sample_channel,

    input [7:0] tx_data,
    input new_tx_data,
    output tx_busy,
    input tx_block,

    output [7:0] rx_data,
    output new_rx_data
);
.

このチュートリアルをここで学ぶための基本として使用しています。 http://embeddedmicro.com/tutorials/mojo/hello-world/
私はすでにバイトで単純なエコーバイトを作りましたが、これはポイントではありません。 Enterが押されたときに文字列を反響したいだけです。 ありがとう。

更新:
Mojo開発者はここで素晴らしい例を作りました:
>> http://embeddedmicro.com/forum/viewtopic.php?f=2 &. ; T= 697&START= 10
ありがとうございました。

役に立ちましたか?

解決

任意の長さのブロックを復帰させるには、それを制御するためのFIFOといくつかの州マシンが必要です。 FIFO入力はUART RXモジュールからのバスに接続されます。 FIFO出力はUART TXモジュールに移動するバスに接続されます。バイトを送信しないように、FIFOのOUPTPUTを「ブロック」する方法も必要です。そのためには、FIFOに向かう「READY」信号がFIFOに移動し、FIFOからUART TXモジュールへの「有効な」信号を持つコントロール信号です。

その後、すべてのステートマシンはFIFOの両端のデータを見ることです。 Enter KeyPressが受信されるたびに、カウンタをインクリメントします。 EnterキープレスがFIFOから出てきたときはいつでも、カウンタを減らします。カウンタがゼロより大きい場合は、FIFO出力をブロック解除します。それ以外の場合は、データが表示されないため、ブロックされません。

特定のデータを特定のモジュールに送信したい場合は、何らかの形のバイナリパケット形式を定義することです。基本的には、フレーミング、おそらくおそらくある種のタイプの識別子が続き、その後にデータが続きます。その後、FPGAで開始区切り文字を待機し、タイプを確認してから、バイトを入力してから順にバイトにロードします。パケット全体を受け取ったら、コミュニケーションしているモジュールを送信できます。すべてのデータが準備ができているという信号。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top