これはFT2232Dチップであり、LEDはBDBUS6に接続されています。
ライブラリは私が望むよりも文書化されていません(ただし、FTDI独自のライブラリよりも優れていますが、最新のカーネルでは機能しません)、これを行う唯一のサンプルコードは非推奨の関数を使用しています(私は試しましたが、そうではありません)動作しているようです)、そして私は絶対に困惑しています。
私がこのことを一生懸命やろうとすればするほど、それは難しく見える。正しい方向に少しずつ動かす必要があるので、宿題をしてくれる人を探しているわけではありません。どんな助けでも感謝します(投機的でさえ)。
更新:ftdi_enable_bitbang()は非推奨ですが、私はこれを試してきました。次のコードはコンパイルされ、barfingなしで実行されますが、blinkenlightenは実行されません。問題のデバイスの回路図は、http://www.semtech.com/images/datasheet/sx1211ska_v1_std.pdf、23ページで入手できます。BDBUS6およびBDBUS7はLEDに接続されています。
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <ftdi.h>
#define FTDI_VID 0x0403
#define FTDI_PID 0x6010
static struct ftdi_context ftdic_context;
int main(void) {
int ret;
unsigned int i;
unsigned char c = 0;
// Initialize bitbang.
// ret = ft2232_bb_init();
ftdi_usb_open(&ftdic_context, FTDI_VID, FTDI_PID);
ftdi_set_interface(&ftdic_context, INTERFACE_B);
ftdi_enable_bitbang(&ftdic_context, 0xb0);
// Trying to blink some lights.
printf("\nNow let's try to blinkenlights...\n");
for (i = 0; i < 20; i++) {
c ^= 0x80;
ftdi_write_data(&ftdic_context, &c, 1);
sleep(1);
}
return EXIT_SUCCESS;
}