Mục lục:

Bộ lập trình VUSBTiny AVR SPI: 3 bước
Bộ lập trình VUSBTiny AVR SPI: 3 bước

Video: Bộ lập trình VUSBTiny AVR SPI: 3 bước

Video: Bộ lập trình VUSBTiny AVR SPI: 3 bước
Video: Programming Flash Memory Using a USB to SPI Programmer 2024, Tháng mười một
Anonim
Bộ lập trình VUSBTiny AVR SPI
Bộ lập trình VUSBTiny AVR SPI

sau khi tạo ra một lập trình viên isp usbtiny và sử dụng nó trong 6 tháng, tôi đã xem xét việc tạo ra một cái khác để mang theo. Tôi thích sự đơn giản của thiết kế usbtiny isp nhưng muốn làm cho nó nhỏ hơn và chiếm ít bộ phận hơn. Một điều trong thiết kế ban đầu mà tôi muốn thay đổi là loại bỏ việc sử dụng tinh thể đồng hồ. một giải pháp mà tôi tìm thấy là trình điều khiển v-usb hỗ trợ bộ dao động nội bộ 16,5Mhz trên các thiết bị attiny25 / 45/85. vì vậy tôi bắt đầu dự án này để có usbtiny isp sử dụng v-usb cho giao tiếp usb. lợi ích trước mắt là nó tiết kiệm không gian và có ít số lượng thành phần hơn (không còn nhiều tinh thể).usbtiny description from https://www.xs4all.nl/~dicks/avr/usbtiny/ USBtiny là một phần mềm triển khai USB tốc độ thấp giao thức cho bộ vi điều khiển Atmel ATtiny. Tất nhiên, nó cũng sẽ hoạt động trên dòng ATmega. Phần mềm được viết cho AVR tốc độ 12 MHz. Ở tần số này, mỗi bit trên bus USB cần 8 chu kỳ xung nhịp, và với rất nhiều thủ thuật, người ta có thể giải mã và mã hóa các dạng sóng USB bằng phần mềm. Trình điều khiển USB cần khoảng 1250 đến 1350 byte dung lượng flash (không bao gồm các chuỗi nhận dạng tùy chọn), tùy thuộc vào cấu hình và phiên bản trình biên dịch, và 46 byte RAM (không bao gồm không gian ngăn xếp). Giao diện C bao gồm 3 đến 5 chức năng, tùy thuộc vào cấu hình. Bộ vi điều khiển AVR, giúp bạn có thể xây dựng phần cứng USB với hầu hết mọi bộ vi điều khiển AVR, không yêu cầu bất kỳ chip bổ sung nào. Video về cấu tạo và cách sử dụng

Bước 1: Tính năng và bộ phận

Các tính năng và bộ phận
Các tính năng và bộ phận

* lập trình logic từ usbtiny isp, hỗ trợ avr-dude trưởng thành * bản in nhỏ * thành phần tối thiểu * cấp nguồn cho thiết bị đích lưu ý rằng các dòng io tới mcus đích không được bảo vệ. bạn có thể thêm điện trở 1k-2k vào SCK và MOSI và bảo vệ khỏi các kết nối sai có thể xảy ra dựa trên các công trình được tìm thấy tại v-usb từ framework https://www.obdev.at/vusb/ usbtiny isp https://www.xs4all. nl / ~ dicks / avr / usbtiny / danh sách linh kiện * attiny45 / 85 (85 thì dễ mua hơn) * Điốt zener 3.6v (1n747, BZX79,.. loại bỏ 1W) * Điện trở 68ohm x 2 * điện trở 1.5K * mini breadboard 170 tiepoints * cáp usb (cáp usb máy in ở cửa hàng đô la cũng được) * điện trở 1k / 2k để bảo vệ dòng io (tùy chọn) công cụ cần thiết * một lập trình viên avr đang hoạt động (vâng, đó là một catch22, chúng tôi cần một cái để làm một cái) * môi trường lập trình avr làm việc

Bước 2: Bố cục, sơ đồ và xây dựng bảng mạch

Bố cục, sơ đồ và cấu trúc của bảng mạch
Bố cục, sơ đồ và cấu trúc của bảng mạch
Bố cục, sơ đồ và cấu trúc của bảng mạch
Bố cục, sơ đồ và cấu trúc của bảng mạch

sự thi công

* theo cách bố trí bảng mạch, có thể không có các thành phần, 3 điện trở, 2 điốt, 1 nắp, cộng với một mcu 8 chân. * Lấy cáp usb máy in của shop đô la cắt đầu máy in ra, sẽ có 4 dây tiếp xúc, cố định và làm chúng thành đầu cắm đực 4 chân, chúng ta sẽ sử dụng nó để kết nối với breadboard. tham khảo sơ đồ để bố trí và gán chân (J1). * coi chừng phân cực của diode.

xây dựng và nhấp nháy dự án

dự án được xây dựng trong một hộp sáng suốt linux ubuntu với chuỗi công cụ avr-gcc. giả sử bạn đã có một môi trường như vậy, hoặc bạn có thể tìm hiểu từ internet cách thiết lập một môi trường. mã nguồn là gnu gpl v2 được cấp phép từ kế thừa.

mã nguồn tuân theo quy ước do v-usb khuyến nghị, bạn có thể tải xuống gói nguồn vusbtiny.tgz và chưa được đánh dấu vào thư mục dự án. trong thư mục nguồn của bạn, có một main.c, là phiên bản của tôi về lập trình viên usbtiny đã sửa đổi. và một thư mục con usbdrv, chứa lớp v-usb. Vui lòng tuân thủ thời hạn cấp phép của hai dự án trên khi xây dựng công trình này. nguồn của tôi về logic lập trình dựa trên phiên bản Dick Streefland chứ không phải phiên bản ladyada (mặc dù chúng gần như giống nhau).

đối với những người không có quá chuỗi xây dựng, bạn có thể sử dụng tệp nhị phân sau

bấm để tải vusbtiny.hex

và sử dụng avrdude để flash firmware

avrdude -c usbtiny -p t45 -e -V -U flash: w: usbtiny.hex

(nếu thiết bị của bạn là tiny85, hãy thay thế -p t45 w / -p t85)

nguồn có thể được tải xuống tại đây nhấp vào để tải vusbtiny.tgz

mở gói nguồn vào thư mục làm việc của bạn

tar -zxvf vusbtiny.tgz

* làm cd vsubtiny, để thay đổi thành thư mục làm việc vusbtiny * ajust makefile cho thiết bị đích theo chip bạn sẽ sử dụng. tức là PROGRAMMER_MCU = t45 hoặc t85 * thực hiện * đính kèm lập trình viên ISP yêu thích của bạn * sửa đổi makefile và thay đổi thông số avrdude của bạn nếu cần. cổ phiếu giả định là lập trình viên USBTiny. tức là AVRDUDE_PROGRAMMERID = usbtiny * flash firmware thông qua thực hiện cài đặt

sau khi flash firmware, chúng tôi cần đặt cầu chì đúng cách, chúng tôi đang sử dụng thiết lập lại pin 1 làm io trong dự án này

* đồng hồ ppl được sử dụng theo yêu cầu của lớp v-usb để định thời gian usb * đặt lại pin bị vô hiệu hóa khi chúng tôi cần sử dụng nó như io

avrdude -c usbtiny -p t45 -V -U lfuse: w: 0xe1: m -U hfuse: w: 0x5d: m -U efuse: w: 0xff: m

cài đặt này vô hiệu hóa lập trình thêm qua 5V SPI vì chúng ta cần chân ĐẶT LẠI (pin1) cho io. bạn sẽ cần quyền truy cập vào một lập trình viên HVSP để khôi phục cầu chì.

Bước 3: Sử dụng và ứng dụng

Sử dụng và ứng dụng
Sử dụng và ứng dụng
Sử dụng và ứng dụng
Sử dụng và ứng dụng
Sử dụng và ứng dụng
Sử dụng và ứng dụng

nhấp nháy trực tiếp trên breadboard

nếu bạn đang sử dụng vusbtiny để flash các thiết bị AVR 8 pin, bạn có thể chỉ cần nhấn thiết bị mục tiêu của mình lên trên thiết bị lập trình viên. lập trình viên đã được thiết kế để các chân lập trình khớp với w / target. Tuy nhiên, có một mẹo nhỏ, bạn sẽ cần phải cách ly chân 2 và 3 trên mcu của lập trình viên, vì chúng là các chân D + và D của USB kết nối với PC. Tôi sử dụng một đoạn băng dính scotch để đạt được điều này, bạn có thể thấy nó trên các bức ảnh. hiển thị bên dưới là một tiny13v "cưỡi" trên tiny45, sẵn sàng nhận firmware.

ISP nhấp nháy qua jumper

để lập trình mạch đích thông qua ISP (lập trình trong hệ thống), bạn cần có cáp ISP. ở đây tôi không sử dụng tiêu đề pin 2x3 hoặc 2x5 tiêu chuẩn. thay vào đó tôi đang sử dụng jumper 1x6 thân thiện hơn với breadboard, bạn có thể tạo tiêu đề pin 2x3 hoặc 2x5 bằng cách ánh xạ chúng tới J2 như được hiển thị trên sơ đồ và bố trí breadboard. bức ảnh sau đây cho thấy một tiny2313 đã sẵn sàng để được chiếu qua ISP.

xử lý sự cố

* không thể flash firmware? kiểm tra lập trình ban đầu của bạn, có thể cần điều chỉnh thời gian thông qua cờ -B trong avrdude. cố gắng đọc chip đầu tiên, có thể là một cầu chì kém, có thể là chip của bạn cần một tín hiệu đồng hồ bên ngoài. bạn có thể cần phải sửa chip của mình trở lại mặc định đầu tiên. * kiểm tra kết nối * nếu sử dụng các chân io khác nhau, kiểm tra mã và kết nối * bạn có thể thay thế điốt zener loại w / 500mw, 400mw * bạn có thể thử giảm giá trị R3 xuống 1,2K hoặc ít hơn * bạn có nhiều khả năng gặp phải sự cố về thời gian avrdude, hãy thử -B cờ của avrdude, có cáp USB ngắn hơn, tất cả đều hữu ích

Đề xuất: