Tôi sử dụng một Boarduino và một bảng bánh mì 30 hàng để lập trình ATtiny của tôi. Tôi tải một bản phác thảo không quá phức tạp có tên ArduinoISP (được bao gồm theo mặc định bây giờ trong Arduino IDE) và đột nhiên tôi có một lập trình viên đang làm việc. Atmel bán một lập trình viên xinh đẹp với giá từ 30 đến 40 đô la, và có rất nhiều bộ dụng cụ để làm những cái rẻ hơn.
Tôi đã rất hạnh phúc khi tôi có được lập trình viên làm việc của mình và làm cho một vài cái nháy mắt nhỏ xíu. Tuy nhiên, bây giờ boarduino tội nghiệp của tôi bị mắc kẹt trong nhiệm vụ lập trình viên.
Theo như tôi có thể nói với lập trình viên này giữ nút đặt lại, sau đó truyền và nhận trên các chân MOSI và MISO. Tôi nghĩ rằng SCK không được sử dụng hoặc ít nhất là không cần thiết. (SCK là cần thiết theo bảng dữ liệu ATtiny, lập trình viên của tôi không hoạt động mà không có nó và tôi không thể tìm thấy nơi tôi nghĩ rằng tôi đọc nó là không cần thiết.)
Tại sao tôi cần một lập trình viên phần cứng để truyền nối tiếp? Ý tôi là, giả sử tôi sẵn sàng giữ nút đặt lại bằng ngón tay thay vì sử dụng IC. Tất cả những gì còn lại là gửi và nhận nối tiếp, vì vậy tất cả những gì tôi cần là ba dây GND, RXD và TXD. Heck, nếu tôi có dòng "DTR" hoặc bất cứ điều gì, bạn thậm chí có thể giữ nút đặt lại bằng cáp nối tiếp.
Tại sao có tất cả các giải pháp phần cứng này cũng yêu cầu phần mềm ưa thích (như AVRdude, hoặc phòng thu AVR, hoặc bất cứ điều gì)?
Ý tôi là tôi có thể hiểu một cáp USB nhỏ đã trình bày vi điều khiển như một thiết bị lưu trữ dung lượng lớn và cho phép bạn kéo các tệp nhị phân qua để lập trình (như bảng dev của ARM này ). Chỉ phần cứng, sử dụng trình điều khiển phần mềm tiêu chuẩn.
Tôi cũng có thể hiểu một giải pháp chỉ dành cho phần mềm (modulo móc dây từ USB vào chip, sử dụng một cái gì đó như chip FTDI để đơn giản hóa những gì đi xuống dây). Tất cả các giao thức lập trình ưa thích sẽ được xử lý bằng phần mềm trên máy tính và phần cứng sẽ chỉ là một số dây.
Tại sao chúng ta có cả phần mềm và phần cứng (phức tạp) liên quan? Ý tôi là, theo như tôi có thể nói, lập trình vi điều khiển khá dễ dàng, nhưng khi tôi mới bắt đầu, tôi thực sự lo lắng về việc tôi sẽ mua chip từ mouser hoặc digikey như thế nào mà không trả tiền cho một bậc thầy để lập trình bộ tải khởi động cho tôi.
Tôi chắc chắn có một lý do chính đáng (không giống như tôi đã viết phần mềm hoặc bắt đầu sản xuất bộ lập trình USB kéo-thả), nhưng là một người mới, tôi không biết nó là gì.