今日、MT9D111用基板が到着しました。
12月9日に発注したので、13日で届きました。2週間かかっていないので、早いです。頼んだのはFusionPCBです。
下に基板の写真を示します。
MT9D111の取付穴位置もOKの様です。
後は2列のピンヘッダをハンダ付けして、ZedBoardのPMODに入れば、大丈夫だと思います。
明日、FPGA-CAFEで2列のピンヘッダを購入してハンダ付けします。
- 2012年12月22日 20:09 |
- ZedBoard
-
| トラックバック:0
-
| コメント:0
・
Transmit FIFO (TX_FIFO)(C_BASEADDR + 0x108、すべてRead/Write、Reset Valueは[31:8]が0、[7:0]がIndeterminate)
・[31:10]bit - Reserved.
・[9] - Stop : Stop. ここに1を書くとストップ・シーケンスを生成する。
・[8] - Start : Start. ここに1を書くとMSMS (CR[2]) = 0 の時はスタート・シーケンスを生成して、MSMS = 1の時はリピート・スタート・シーケンスを生成する。
・[7:0] - AXI IIC Transmit Data. Start = 1の時に、0ビット目が0だとWriteアドレス、0ビット目が1だとReadアドレスとなる。Readアドレスの次にStop = 1として、ここにReadするバイト数を書くと受信する。
・
Receive FIFO (RX_FIFO)(C_BASEADDR + 0x10C、[7:0]はRead、[7:0]のReset ValueはIndeterminate)
・[31:8]bit - Reserved
・[7:0] - Read : IIC Receive Data.
・
Transmit FIFO Occupancy Register (TX_FIFO_OCY)(C_BASEADDR + 0x114、[3:0]はRead、[3:0]のReset Valueは0)
・[31:4]bit - Reserved
・[3:0] - Occupancy Value : [3]がMSB、値が”1001”だったら10個のデータがFIFOに入っている。つまり読んだバイナリ値+1。
・
Receive FIFO Occupancy Register (RX_FIFO_OCY)(C_BASEADDR + 0x118、[3:0]はRead、[3:0]のReset Valueは0)
・[31:4]bit - Reserved
・[3:0] - Occupancy Value : [3]がMSB、値が”1001”だったら10個のデータがFIFOに入っている。つまり読んだバイナリ値+1。
・MT9D111のレジスタ設定例 ・AXI IICの初期化 Control Register (C_BASEADDR + 0x100) : 0x0002 をWrite(Transmit FIFO Reset. )
Control Register (C_BASEADDR + 0x100) : 0x0001 をWrite(AXI IIC Enable.)
・Write(R0x09:0 に 0x1234 をWriteする) Status Register (C_BASEADDR + 0x104)をReadして、TX_FIFO_Empty [7] が1、Bus Busy [2] が0になるのを待つ(TX_FIFO_Emptyは、必ずしも待たなくても良いかもしれない)
AXI IIC Transmit FIFO (C_BASEADDR + 0x108) : 0x1BA をWrite(MT9D111の Write アドレス, Start bit=1 )
AXI IIC Transmit FIFO (C_BASEADDR + 0x108) : 0x09 をWrite(R0x09:0)
AXI IIC Transmit FIFO (C_BASEADDR + 0x108) : 0x12 をWrite
AXI IIC Transmit FIFO (C_BASEADDR + 0x108) : 0x234 をWrite( Stop bit = 1 )
・Read(R0x9:0 をReadすると 0x1234 が返る) Status Register (C_BASEADDR + 0x104)をReadして、TX_FIFO_Empty [7] が1、Bus Busy [2] が0になるのを待つ(TX_FIFO_Emptyは、必ずしも待たなくても良いかもしれない)
AXI IIC Transmit FIFO (C_BASEADDR + 0x108) : 0x1BA をWrite(MT9D111の Write アドレス, Start bit=1 )
AXI IIC Transmit FIFO (C_BASEADDR + 0x108) : 0x09 をWrite(R0x09:0)
AXI IIC Transmit FIFO (C_BASEADDR + 0x108) : 0x1BB をWrite(MT9D111の Read アドレス, Start bit=1 )
AXI IIC Transmit FIFO (C_BASEADDR + 0x108) : 0x202 をWrite([7:0]にReadするバイト数をセット、Stop bit=1 )
Status Register (C_BASEADDR + 0x104)をReadして、RX_FIFO_Empty [6] が0になるのを待つ。
Receive FIFO Occupancy Register (C_BASEADDR + 0x118)の[3:0] が 0x0001 になるのを待つ。(2バイト受信できた)
Receive FIFO (C_BASEADDR + 0x10C)を読む。0x12 が読めるはず。
Receive FIFO (C_BASEADDR + 0x10C)を読む。0x34 が読めるはず。
- 2012年12月22日 07:01 |
- IP
-
| トラックバック:0
-
| コメント:0