FTDI突破与附加的ISP连接器


12

TL; DR-六个黄色ISP引脚可以用作普通ISP吗?


常见的USB-TTL FTDI转接板如下所示:

USB-TTL FTDI分支板

最近,我遇到了如下图所示的板子变体。但是,该板上另外的黄色接头引脚又有什么用呢?它们被标记为ISP。

带有ISP的USB-TTL FTDI分支板

这是后视图:

带ISP背面的USB-TTL FTDI分支板

那么,它们真的可以用作标准ISP / ICSP吗?

记录仪

但是,根据下图(标记了所涉及的6个引脚),我不确定信号线是否有效。

带ISP的USB-TTL FTDI分支板,带图例

也就是说,CTS到MISO,RI到RST,DSR到SCK和DCD到MOSI是否有效?还是这就是为什么需要FT232RL中提到的avrdude的特殊版本:USB至串行232 TTL适配器–和ISP?-帖子6

作为一项新功能,提供了6针ISP接头。借助它,avrdude和avrftdi,您可以对Atmels和Arduino引导程序进行编程。必须使用带有已编译FTDI驱动程序的avrdude的特殊版本。

但是,提供的指向该版本avrdude(带有已编译的FTDI驱动程序)的链接已失效。

在第7章中,也有人说这些引脚实际上等效于X3连接器,这在旧版Arduino Dicimila / NG / Duemilanove板上可以找到。

Diecimila上的X3标头

并且可以(显然)这样使用它们,如SPI那样,

将X3标头连接到Diecimila上的ISP标头

应当注意,沿着原始FTDI分支板的侧面,可以使用RI,CTS,DCD和DSR(标记为RSD)引脚。那么,带有ISP接头的分线板是否仅使用不同的接头提供对这些相同信号的访问?

我有些困惑-我是否刚刚考虑过这个问题,而该分线板只是一个ISP / ICSP接头一个FTDI连接器卷成一个板(当与适当版本的avrdude一起使用时)?还是不是通常的ISP标头?如第4条中所述,我找不到与此类突破板有关的任何特定文档。

谁能肯定地说这六个销子是干什么用的?如果它们不是普通的ISP标头,那么您能否提供使用它的详细方法?原理图将很有帮助。

Answers:


14

Arduino论坛有关于此的主题 -有人有类似的问题。


我找到了一个不适用于该电路板的原理图(下图),但是插头的引脚标记与您所找到的相同,因此看起来很相似。

FTDI电路板原理图

似乎标头用于“同步位转换模式”,如此处所述:FT232R和FT245R的位转换模式(应用笔记AN_232R-01,文档参考号:FT_000339)


实际上,您可以将该标头配置为SPI编程器,例如FT232R Bitbang Programmer中所述


我做了一个测试,因为零件抽屉中有一块类似的板子:

FTDI板正面

它提供了与您相似的6针接头。翻转木板,我们可以看到它们的标签与您的标签完全相同:

FTDI板背

我焊接在一个接头上(黄色,以便保持一致),给我这个:

FTDI板带接头

我添加了一个白点以指示引脚1(在边缘可见),因此我以正确的方式插入了电缆。


当我尝试使用开发板时,我从avrdude收到此消息:

avrdude:错误:不支持libftdi或libusb。安装libftdi1 / libusb-1.0或libftdi / libusb并再次运行configure / make

因此,必须从头开始编译!如果您尝试遵循,我正在使用Ubuntu 14.04。:)


下载avrdude

转到网站http://www.nongnu.org/avrdude/

我下载了6.3版本的源代码:http : //download.savannah.gnu.org/releases/avrdude/avrdude-6.3.tar.gz

安装libusb和libftdi

在编译之前,我必须抓住libusb和libftdi:

sudo apt-get install libusb-1.0-0-dev
sudo apt-get install libftdi-dev

编译avrdude

现在,在提取存档并导航到其文件夹之后,我们将制作avrdude:

./configure --enable-libusb --enable-libftdi
make

查找正确的配置

avrdude.conf我找到的avrdude随附的文件内(经过仔细考虑),这似乎是正确的条目:

# see http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html
# Note: pins are numbered from 1!
programmer
  id    = "arduino-ft232r";
  desc  = "Arduino: FT232R connected to ISP";
  type  = "ftdi_syncbb";
  connection_type = usb;
  miso  = 3;  # CTS X3(1)
  sck   = 5;  # DSR X3(2)
  mosi  = 6;  # DCD X3(3)
  reset = 7;  # RI  X3(4)
;

引脚到数字的映射是这样的...从上面提到的有关位爆模式的PDF中,我们有了这张表,蓝色的注释是我:

位爆炸模式引脚

数字指的是“位撞”数据字节中的位号(即,范围为0到7)。从较早的原理图中我们可以看到,例如,ICSP头上的MISO连接到FT232RL上的CTS。因此,MISO是数据位3,我们在上述配置中告诉了avrdude。同样,SCK是数据位5,依此类推。

我试图像这样测试:

./avrdude -C avrdude.conf -carduino-ft232r -pm328p  -v

修复权限

我遇到了一个权限错误,该错误已通过在/etc/udev/rules.d/名为的文件夹中创建文件而得到修复71-FTDI.rules。里面是:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE:="0666"

这些数字可能因您的主板而异。您需要找到供应商和产品ID。在Ubuntu中,您可以lsusb查看以下内容:

Bus 003 Device 061: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
                       ^^^^ ^^^^

请注意两个十六进制数字,它们将被复制到规则文件中。

之后,告诉系统重新加载规则:

sudo udevadm control --reload-rules

然后拔下并重新插入FTDI板,以使其注意到新的权限。

测试板检测

最后,上面的avrdude行可以工作并读取芯片:

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: safemode: hfuse reads as DE
avrdude: safemode: efuse reads as FD

avrdude: safemode: hfuse reads as DE
avrdude: safemode: efuse reads as FD
avrdude: safemode: Fuses OK (E:FD, H:DE, L:FF)

avrdude done.  Thank you.

我已将其插入ATmega328P。


示例连接到Diavolino

编程Atmega328P

一旦到此为止,您只需使用直通电缆将FTDI板连接到目标板即可。


摘要

如上所述,您拥有的FTDI板(以及我拥有的FTDI板)可以用作AVR芯片的ICSP编程器。因此,简单的电路板既可以是USB到串行转换器,也可以是ICSP编程器。

我看到类似的开发板在eBay上的售价约为5美元,因此这可能是一种相当便宜的编程选择。


谢谢尼克。是的,Arduino论坛上的那个线程是我在问题中引用的那个线程,但是关于如何使用它并不清楚,但是它有用地指向了X3标头博客。您提供的第二个链接似乎进一步扩展了该主题,非常感谢。但是,仍然没有专门为此特定委员会撰写的博客,这很奇怪。
Greenonline

我相信,如果这样做,您将以FTDI作为USB设备的身份在使用,而不再使用操作系统的串行端口API,因此可能会出现其他设置/驱动程序/权限问题,具体取决于一个主机所使用的系统它。FTDI功能更强大的FT4232H / FT2232H / FT232H部件通常以这种方式用作JTAG与更高级处理器的接口。
克里斯·斯特拉顿

3
参见修改后的答案。我让董事会担任ICSP程序员。
尼克金门

1
很棒,很棒。那就是我所需要的文档。
Greenonline
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.