추가 ISP 커넥터가있는 FTDI 브레이크 아웃


12

TL; DR-6 개의 노란색 ISP 핀을 일반 ISP로 사용할 수 있습니까?


일반적인 USB-TTL FTDI 브레이크 아웃 보드는 다음과 같습니다.

USB-TTL FTDI 브레이크 아웃 보드

최근에 나는 아래에 표시된 보드의 변형을 발견했습니다. 그러나이 보드의 추가 노란색 헤더 핀은 무엇입니까? ISP라고 표시되어 있습니다.

ISP가있는 USB-TTL FTDI 브레이크 아웃 보드

후면은 다음과 같습니다.

ISP 후면이있는 USB-TTL FTDI 브레이크 아웃 보드

그렇다면 실제로 표준 ISP / ICSP로 사용될 수 있습니까?

AVR-ICSP

그러나 문제의 6 핀에 레이블이 지정된 아래 다이어그램에 따르면 신호 라인의 유효한 상관 관계가 있는지 확실하지 않습니다.

범례가있는 ISP가있는 USB-TTL FTDI 브레이크 아웃 보드

즉, CTS에서 MISO로, RI에서 RST로, DSR에서 SCK로, DCD에서 MOSI로 작동합니까? 또는 FT232RL 에서 언급 한 것처럼 avrdude의 특수 버전이 필요한 이유는 다음과 같습니다. USB to Serial 232 TTL Adapter –? 및 ISP? -게시물 # 6 :

새로운 기능으로 6 핀 ISP 헤더를 사용할 수 있습니다. avrdude 및 avrftdi를 사용하면 Atmels 및 Arduino 부트 로더를 프로그래밍 할 수 있습니다. 컴파일 된 FTDI 드라이버가있는 특별한 버전의 avrdude가 필요합니다.

그러나 컴파일 된 FTDI 드라이버와 함께 해당 버전의 avrdude에 대한 링크제공되지 않습니다 .

또한,라고 포스트 # 7 이러한 핀은, 실제로 X3 커넥터에 해당하는 것으로, 기존의 아두 이노 Dicimila / NG / Duemilanove의에서 발견 보드.

Diecimila의 X3 헤더

그리고 그것들은 비트 뱅킹 SPI로 (아마도) 그렇게 사용될 수 있습니다.

Diecimila의 ISP 헤더에 X3 헤더 연결

RI, CTS, DCD 및 DSR (RSD 표시) 핀은 원래 FTDI 브레이크 아웃 보드의 측면을 따라 제공됩니다. 그렇다면 ISP 헤더가있는 브레이크 아웃 보드는 다른 헤더를 사용하여 동일한 신호에 액세스 할 수 있습니까?

나는 약간 혼란스러워-방금 생각했던이 브레이크 아웃 보드는 단순히 ISP / ICSP 헤더 이며 FTDI 커넥터는 하나의 보드로 롤백됩니다 (적절한 버전의 avrdude와 함께 사용되는 경우)? 아니면 일반적인 ISP 헤더가 아닙니까? 게시물 # 4에 명시된 바와 같이이 유형의 브레이크 아웃 보드와 관련된 특정 문서를 찾을 수 없습니다 .

누구든지이 6 핀이 무엇인지 말할 수 있습니까? 이들이 일반적인 ISP 헤더가 아닌 경우이를 사용하는 자세한 방법을 제공 할 수 있습니까? 회로도가 도움이 될 것입니다.

답변:


14

에 그것에 대해 스레드있다 아두 이노 포럼 - 누군가가 비슷한 질문을했다.


해당 보드 가 아닌 회로도 (아래)를 찾았 지만 헤더 핀에는 찾은 것과 동일한 레이블이 붙어 있으므로 유사하게 유사합니다.

FTDI 보드 회로도

여기에 설명 된대로 헤더는 "동기 비트 플레이 모드"를 사용하는 것 같습니다 : 비트 플레이 모드에 대한 FT232R 및 FT245R (애플리케이션 노트 AN_232R-01, 문서 참조 번호 : FT_000339)


실제로 FT232R Bitbang Programmer 에 설명 된대로 해당 헤더를 SPI 프로그래머가되도록 구성 할 수 있습니다 .


부품 서랍에 비슷한 보드가있어 테스트를했습니다.

FTDI 보드 전면

그것은 당신과 비슷한 6 핀 헤더를 제공했습니다. 보드를 뒤집 으면 그것들과 정확히 같은 레이블이 붙어 있음을 알 수 있습니다.

FTDI 보드 백

헤더를 납땜하여 (노란색으로 일관되게) 나에게 이것을 제공합니다.

헤더가있는 FTDI 보드

핀 1 (가장자리에 있음)을 나타내는 흰색 점을 추가하여 케이블을 올바른 방향으로 꽂습니다.


보드를 사용하려고 할 때 avrdude에서 다음 메시지를 받았습니다.

avrdude : 오류 : libftdi 또는 libusb가 지원되지 않습니다. libftdi1 / libusb-1.0 또는 libftdi / libusb를 설치하고 configure / make를 다시 실행하십시오.

따라서 처음부터 컴파일해야했습니다! 따라하려고하면 우분투 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.confavrdude와 함께 제공 되는 파일 내부 에서 (어떤 숙고 한 후) 이것이 올바른 항목 인 것 같습니다.

# 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 에서 파란색으로 주석이 표시된이 테이블이 있습니다.

비트 뱅 모드 핀

숫자는 "비트 뱅 (bit banged)"데이터 바이트의 비트 번호 (즉, 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를 찾아야합니다. 우분투에서는 lsusb(다른 것들 중에서) 할 수 있고 볼 수 있습니다 :

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

규칙 파일에 복사되는 두 개의 16 진수를 참고하십시오.

그런 다음 시스템에 규칙을 다시로드하도록 지시하십시오.

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 보드 (및 내가 보유한 보드)를 AVR 칩의 ICSP 프로그래머로 사용할 수 있습니다. 따라서 간단한 보드는 USB- 직렬 변환기 및 ICSP 프로그래머가 될 수 있습니다.

비슷한 보드가 약 5 달러에 eBay에서 판매되는 것을 보았으므로 아마도 저렴한 프로그래밍 옵션 일 것입니다.


고마워 닉. 예, Arduino 포럼의 스레드는 내 질문에서 언급 한 스레드이지만 사용 방법에 대해서는 분명하지 않지만 X3 헤더 블로그를 유용하게 지적했습니다. 당신이 제공하는 두 번째 링크는 그 주제에 대해 훨씬 더 훌륭하고 감사합니다. 그러나이 게시판을 위해 특별히 작성된 블로그는 아직 없습니다.
Greenonline

이 작업을 수행하면 FTDI를 USB 장치로 사용하고 더 이상 운영 체제의 직렬 포트 API를 사용하지 않으므로 호스트하는 데 사용하는 시스템에 따라 추가 설정 / 드라이버 / 권한 문제가있을 수 있습니다 그것. FTDI의 더 유능한 FT4232H / FT2232H / FT232H 부품은 종종 이러한 방식으로 고급 프로세서에 대한 JTAG 인터페이스로 사용됩니다.
Chris Stratton

3
수정 된 답변을 참조하십시오. ICSP 프로그래머로 일할 보드를 얻었습니다.
Nick Gammon

1
환상적이고 훌륭한 작품. 그게 내가 뒤따른 문서입니다.
Greenonline
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.