// FT2232C open & initial
procedure TForm1.SPI_start;
var
res : FT_Result;
passed : boolean;
begin
Set_USB_Device_BitMode($00, $00 );
res := Set_USB_Device_BitMode($df, $02 ); // 02: MPSSE MODE
if res = FT_OK then begin
passed := Sync_To_MPSSE;
if passed then
FT2232OPEN.Checked := True
else
Close_USB_Device;
end;
end;
|
モード 02 がMSSPEモードになります。 |
procedure TForm1.Button10Click(Sender: TObject);
begin
if FT2232OPEN.Checked then begin
OutIndex := 0;
//---------------
AddToBuffer($80); // LowByte設定
AddToBuffer($00); // DATA
AddToBuffer($FB); // GPIO11-14設定
Saved_Port_Value := $08;
//---------------
AddToBuffer($82); // HighByte設定
AddToBuffer($0F); // DATA
AddToBuffer($0F); // GPIO21-24設定
//---------------
AddToBuffer($86); // clk divisor設定
AddToBuffer($04); // 1.2MHz
AddToBuffer($00);; //
//---------------
AddToBuffer($85); // turn off loop back
//---------------
AddToBuffer($19); // 11/MSB 19/LSB first
AddToBuffer($04); //
AddToBuffer($00);
AddToBuffer(Word('A'));
AddToBuffer(Word('B'));
AddToBuffer(Word('C'));
AddToBuffer(Word('D'));
AddToBuffer($0D); // CR
//---------------
SendBytes(OutIndex); // send
end;
end;
|
GPIOのビットは1とすると出力モードになります。
GPIOにより、CSやその他の信号に割り付けます(任意)。
AddToBufferでFT2232へ送信するデータを用意して
まとめて送信してます(SendBytes)。
AddToBufferでOutIndexは加算されます。
これらの関数はFTDI社のサンプルそのままです。
コマンド11hがMSB firstでの送信、コマンド19hがLSB firstでの送信となります。
レングスは0で1バイト送信となります。 |