มีกระทู้เกี่ยวกับสิ่งนั้นในArduino Forum - บางคนมีคำถามคล้ายกัน
ฉันพบแผนผัง (ด้านล่าง) ซึ่งไม่ใช่สำหรับบอร์ดนั้น แต่หมุดส่วนหัวมีป้ายกำกับเหมือนที่คุณพบดังนั้นจึงมีความคล้ายคลึงกัน
ปรากฏว่าส่วนหัวใช้สำหรับ "โหมดบิตซิงโครนัส" ตามที่ระบุไว้ที่นี่: โหมดบิตแบงสำหรับ FT232R และ FT245R (หมายเหตุแอปพลิเคชัน AN_232R-01, หมายเลขอ้างอิงเอกสาร: FT_000339)
คุณสามารถในความเป็นจริงการกำหนดค่าที่ส่วนหัวจะเป็นโปรแกรมเมอร์ SPI ตามที่อธิบายไว้ตัวอย่างเช่นในFT232R Bitbang โปรแกรมเมอร์
ฉันทำแบบทดสอบเนื่องจากฉันมีบอร์ดที่คล้ายกันอยู่ในลิ้นชักชิ้นส่วนของฉัน:
มันมีบทบัญญัติสำหรับส่วนหัว 6-pin ที่คล้ายกับของคุณ เมื่อพลิกกระดานเราจะเห็นว่าพวกเขามีป้ายกำกับเหมือนกับคุณทุกประการ:
ฉันบัดกรีบนหัว (เป็นสีเหลืองเพื่อให้สอดคล้อง) ให้ฉันนี้:
ฉันเพิ่มจุดสีขาวเพื่อระบุว่าพิน 1 (มองเห็นได้ที่ขอบ) ดังนั้นฉันจึงเสียบสายเคเบิลอย่างถูกวิธี
เมื่อฉันพยายามใช้กระดานฉันได้รับข้อความนี้จาก avrdude:
avrdude: ข้อผิดพลาด: ไม่มีการสนับสนุน libftdi หรือ libusb ติดตั้ง libftdi1 / libusb-1.0 หรือ libftdi / libusb และรันการกำหนดค่า / ทำอีกครั้ง
ดังนั้นจึงต้องรวบรวมตั้งแต่เริ่มต้น! ฉันใช้ 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) ในไบต์ข้อมูล "บิตกระแทก" เราสามารถเห็นได้จากแผนผังก่อนหน้านี้ตัวอย่างเช่น MISO บนส่วนหัว ICSP นั้นเชื่อมต่อกับ CTS บน FT232RL ดังนั้น MISO คือ data bit 3 ซึ่งเราบอก avrdude ในการกำหนดค่าข้างต้น SCK ในทำนองเดียวกันคือ data bit 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"
ตัวเลขอาจแตกต่างกันไปสำหรับบอร์ดของคุณ คุณต้องค้นหาผู้ขายและรหัสผลิตภัณฑ์ ใน 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
เมื่อเราได้มาไกลขนาดนี้คุณเพียงแค่เชื่อมต่อบอร์ด FTDI กับบอร์ดเป้าหมายของคุณด้วยสายเคเบิลตรง
สรุป
บอร์ด FTDI ที่คุณมี (และที่ฉันมี) สามารถใช้เป็นโปรแกรมเมอร์ ICSP สำหรับชิป AVR ดังที่อธิบายไว้ข้างต้น ดังนั้นบอร์ดง่าย ๆ สามารถเป็นได้ทั้ง USB เป็นซีเรียลคอนเวอร์เตอร์และโปรแกรมเมอร์ ICSP
ฉันเห็นกระดานคล้ายกันที่ขายบน eBay ราคาประมาณ 5 เหรียญซึ่งอาจเป็นตัวเลือกการเขียนโปรแกรมที่ค่อนข้างถูก