Lập trình viên song song LPT cho mk avr. Lập trình LPT cho vi điều khiển AVR

Hãy cùng tìm hiểu giao diện ISP là gì và xem xét một lập trình viên USB ISP tiện lợi và rẻ tiền. Chúng ta hãy nhìn vào sơ đồ của các lập trình viên đơn giản nhất để Bộ vi điều khiển AVR Với sử dụng COM và cổng máy tính LPT. Thông tin này khá đủ để flash hầu hết các mẫu vi điều khiển AVR không chỉ trong Linux mà còn trong các hệ điều hành khác.

Giao diện lập trình trong hệ thống của ISP

Để viết chương trình cho vi điều khiển AVR, bạn sẽ cần một lập trình viên.

Lập trình viên- Nó nhỏ mạch điện tử, cho phép bạn kết nối bộ vi điều khiển với một trong các cổng máy tính (COM, LPT, USB) để đọc và ghi phần sụn (lập trình) tiếp theo.

Có khá nhiều thiết kế khác nhau của các lập trình viên cho bộ vi điều khiển AVR kết nối với các cổng máy tính khác nhau.

Đáng tin cậy nhất và lựa chọn thuận tiện- đây là một lập trình viên kết nối với cổng USB, vì ở phiên bản mới máy tính để bàn và laptop không còn cài đặt cổng COM và LPT.

Trong các thiết bị đã hoàn thiện, người lập trình được kết nối với bộ vi điều khiển thông qua giao diện ISP(Trong Lập trình hệ thống) - Giao diện lập trình trong hệ thống. Giao diện ISP bao gồm một số dây dẫn qua đó nhận được tín hiệu đồng hồ và dữ liệu để kết nối người lập trình với bộ vi điều khiển.

Theo quy định, giao diện ISP được đặt trên các bo mạch dưới dạng mười hoặc sáu chân, mà lập trình viên được kết nối thông qua một đầu nối phù hợp qua cáp.

Cơm. 4. Giao diện ISP trên bo mạch.

Mục đích của các chân trong giao diện ISP:

  1. VCC - nguồn điện cộng, thường là +5V;
  2. GND - trừ điện, nối đất (Mặt đất);
  3. MOSI - dữ liệu đầu vào (Master Out Slave In);
  4. MISO - đầu ra dữ liệu (Master In Slave Out);
  5. SCK - tín hiệu đồng hồ (Đồng hồ nối tiếp);
  6. RST - để cung cấp tín hiệu đặt lại.

Để lập trình trong mạch của bộ vi điều khiển, chỉ cần 4 chân là đủ, vì bộ vi điều khiển có thể được cấp nguồn từ chính mạch nơi nó được lắp đặt.

Làm cách nào để kết nối bộ lập trình với chip vi điều khiển AVR nếu nó không được hàn vào mạch? - rất đơn giản, sử dụng cùng các chân của giao diện ISP, nếu cần, cấp nguồn cho vi điều khiển từ nguồn điện.

Lập trình viên USB ISP ASP

Để làm việc với chip AVR tôi đã mua USB rẻ tiền Lập trình viên ISP với giá khoảng 10 USD. Một thiết bị như vậy hiện đang được bán ở nhiều cửa hàng trực tuyến trong và ngoài nước, vì vậy việc mua hàng sẽ không có vấn đề gì.

Cơm. 5. USB ISP - lập trình viên có cáp nối mạch Lập trình AVR vi điều khiển của ATMEL.

Lập trình viên này an toàn để sử dụng và có kích thước nhỏ và được hỗ trợ bởi hầu hết các chương trình dành cho bộ vi điều khiển AVR flash. USB ISP hoạt động theo các hệ điều hành Linux, Mac OS X và Windows. Đối với Linux, bạn không cần cài đặt bất kỳ trình điều khiển nào, sau khi kết nối bộ lập trình với cổng USB Thiết bị sẽ ngay lập tức được phát hiện và sẵn sàng để sử dụng.

Dưới đây tôi sẽ đưa ra sơ đồ chân của các đầu nối của bộ lập trình USB ISP - nó sẽ hữu ích cho chúng ta sau này khi kết nối với vi điều khiển.

Cơm. 6. Vị trí các chân trên thiết bị kết nối USB ISP (sơ đồ chân).

Cơm. 7. Vị trí của các tiếp điểm trong ổ cắm đầu nối được kết nối với bộ lập trình USB ISP.

Phải làm gì nếu không mua được USB ISP lập trình viên?- bạn có thể lập trình bộ vi điều khiển bằng cách sử dụng các bộ lập trình tự chế đơn giản kết nối với cổng COM hoặc LPT, nhưng tốt hơn là bạn nên tự tạo một ISP USB và lập trình chip vi điều khiển cho nó một lần bằng bộ lập trình tự chế đơn giản qua cổng COM hoặc LPT.

Cơm. số 8. Sơ đồ lập trình viên tự chế ISP USB ASP.

Thông tin chi tiết về việc sản xuất USB ASP, cũng như bảng mạch in, trình điều khiển và phần sụn cho vi điều khiển có thể được tìm thấy trên trang web chính thức: http://www.fischl.de/usbasp/

Ngoài ra, trên Internet có khá nhiều tài nguyên về lập trình viên miễn phí này, có rất nhiều bố cục bảng mạch in làm sẵn, kể cả trong chương trình SprintLayout, vì vậy chúng tôi sẽ không đề cập chi tiết về vấn đề này trong bài viết này.

Lập trình viên sử dụng cổng COM

Lập trình viên này còn được gọi là “lập trình viên Gromov”, để vinh danh người đã nghĩ ra sơ đồ này, người tạo ra chương trình Trình tạo thuật toán ( môi trường đồ họađể lập trình AVR trong Windows bằng cách sử dụng ngôn ngữ thuật toán) - G.L. Gromov.

Lập trình viên này cho phép bạn lập trình chip AVR bằng cách sử dụng cổng COM máy tính - giao diện RS232. Để lắp ráp một bộ lập trình như vậy, bạn sẽ cần tối thiểu các bộ phận - 3 điốt, 7 điện trở, đầu nối DB-9 hoặc DB-25 (tùy thuộc vào đầu nối giao phối nào được cài đặt trong máy tính của bạn) và đầu nối ISP để kết nối với vi điều khiển (hoặc chỉ một vài dây dẫn để chip). Bất kỳ điốt công suất thấp nào cũng có thể được sử dụng trong mạch.

Cơm. 9. Sơ đồ bộ lập trình vi điều khiển AVR qua cổng COM máy tính.

Để có thông tin đầy đủ, bên dưới tôi sẽ cung cấp sơ đồ chân của các cổng RS-232 cho các tùy chọn DB-9 và DB-25.

Cơm. 10.RS232 - Cổng COM, Bố trí chân DB-9.

Cơm. 11. Cổng COM RS232 DB-25 - vị trí các chân trên các đầu nối.

Lập trình viên sử dụng cổng LPT

Như chúng ta đã biết, cổng LPT của máy tính được thiết kế để kết nối máy in cục bộ(Cổng máy in cục bộ), tuy nhiên nó thường được sử dụng để kết nối nhiều thiết bị khác nhau và các sản phẩm tự làm. TRONG trong trường hợp này chúng ta có thể sử dụng nó để lập trình các bộ vi điều khiển AVR, sau khi đã lắp ráp rất sơ đồ đơn giảnđược đưa ra dưới đây.

Cơm. 12. Sơ đồ bộ lập trình cho vi điều khiển AVR với sử dụng LPT cổng máy tính.

Như bạn có thể thấy, mạch thậm chí còn đơn giản hơn so với phiên bản trước, ở đây chúng ta chỉ cần 4 điện trở công suất thấp và một đầu nối (đầu đực, có chân) để kết nối với cổng LPT của máy tính.

Cơm. 13. Vị trí các chân kết nối cổng LPT.

Tất cả các bộ phận và kết nối có thể được đặt trong vỏ đầu nối LPT và để kết nối với bộ vi điều khiển, có thể đưa ra một cáp có đầu nối cho giao diện ISP hoặc đơn giản là các dây dẫn cần thiết để kết nối với vi mạch.

Phần mềm và Ghi chú

Bằng cách kết nối COM hoặc Lập trình viên LPTĐối với vi điều khiển bạn cần nhớ cấp nguồn cho chính vi mạch. Bạn có thể sử dụng pin hoặc nguồn điện có bộ ổn định làm nguồn điện cho vi điều khiển; cách này sẽ an toàn nhất cho cả cổng máy tính và chip. Chúng tôi đã thảo luận về cách sử dụng nó.

Trong Linux có rất chương trình mạnh mẽ có thể hoạt động với các lập trình viên USB ASP, COM và LPT - đây là một chương trình AVRDUDE, nó sẽ được thảo luận trong các phần sau.

Để flash chip AVR trong Windows bằng cách sử dụng dữ liệu từ các lập trình viên COM và LPT, bạn cần có chương trình UniProf của Nikolaev, một chương trình lập trình phổ biến cho AVR (avr.nikolaew.org).

CHÚ Ý! Phải cực kỳ cẩn thận và cẩn thận khi lắp ráp và sử dụng lập trình viên sử dụng cổng COM hoặc LPT của máy tính, một sai lầm đơn giản có thể dễ dàngđốt cháy các cảng này. Vì hoạt động binh thươngĐối với những lập trình viên như vậy, bạn nên cố gắng sử dụng các dây ngắn nhất có thể từ đầu nối đến mạch lập trình viên và vi điều khiển. Bộ vi xử lý máy tính nên có tần số không quá 1-2 GHz và nên sử dụng Win2000 hoặc WinXP làm HĐH để lập trình chip.

Điều quan trọng cần biết là các bộ điều hợp USB-RS232 (Cổng USB-COM) rất có thể sẽ không hoạt động với bộ lập trình của Gromov; chỉ những bộ điều hợp có chip mới hơn mới hoạt động, vì vậy tốt hơn hết bạn nên tìm một máy có cổng COM gốc.

Phần kết luận

Các lập trình viên được thảo luận trong bài viết chỉ là một vài trong số những chương trình có giá cả phải chăng nhất và giải pháp đơn giản từ một danh sách lớn các lập trình viên AVR: lập trình viên USBTinyISP, AVR-Doper, AVR vusbtiny, AVRISP-MkII, FTDI và những người khác.

Bây giờ, trong mọi trường hợp, bạn có thể lắp ráp một lập trình viên có sẵn cho mình và flash ít nhất một con chip, trên cơ sở đó bạn có thể lắp ráp thêm một con chip khác. lập trình viên tiện lợi hoặc một số thiết bị khác.

Trong bài viết tiếp theo chúng ta sẽ tìm hiểu cách kết nối mô hình khác nhau Bộ vi điều khiển AVR cho người lập trình, tìm ra nơi lấy thông tin về sơ đồ chân của bộ vi điều khiển.

Các mạch lập trình sẵn có có thể được chia thành hai loại: những mạch được kết nối với cổng LPT của máy tính và những mạch được kết nối với cổng COM, và phép chia này rất có điều kiện. Ưu điểm của bộ lập trình LPT là tính đơn giản của nó: trong trường hợp đơn giản nhất, nó trông giống như một số dây kết nối trực tiếp các chân của cổng LPT và bộ vi điều khiển khả trình; một mạch phức tạp hơn là một trình điều khiển bus qua đó máy tính giao tiếp với bộ vi điều khiển. Bất chấp những thiếu sót của kế hoạch đầu tiên (tại máy tính khác nhau nó hoạt động khác do sự thay đổi về đặc tính của vi mạch cổng LPT, nhiễu trong cáp, nhu cầu ngắt kết nối bộ lập trình khỏi vi mạch lập trình sau khi lập trình) nó có thể hữu ích nếu bạn cần lập trình một hoặc hai vi mạch.

Tại công việc lâu dài với vi điều khiển bạn nên sử dụng nhiều hơn mạch phức tạp. Trình điều khiển bus cho phép bạn không ngắt kết nối bộ lập trình khỏi bộ vi điều khiển sau khi lập trình, bởi vì chương trình chuyển kết quả đầu ra của nó sang trạng thái Z sau khi hoàn thành công việc. Tuy nhiên, các lập trình viên kết nối với cổng LPT cũng có nhược điểm. Điều quan trọng nhất trong số đó là lập trình viên thường chiếm cổng duy nhất có sẵn trên máy tính, hơn nữa, trong hầu hết các hệ thống, máy in chiếm giữ và bạn phải mua một thẻ đa năng hoặc máy in mới, hoặc liên tục chuyển đổi máy in và lập trình viên, điều này không thuận tiện lắm. Mạch cổng COM không có nhược điểm này. Ngoài ra, giống như trường hợp của các lập trình viên LPT, có những mạch đơn giản và những mạch phức tạp hơn. Trong trường hợp đơn giản nhất, mạch biểu thị bộ chuyển đổi mức RS232 sang TTL và ngược lại cho tín hiệu riêng lẻ cần thiết cho ISP (cổng COM có ba đường vào và năm đường ra, lập trình IS yêu cầu ba đường ra (SCK, MOSI, Reset) và một đường vào (MISO)). Mạch của bộ lập trình phức tạp hơn trên cổng COM bao gồm chip giao diện RS-232 và bộ vi điều khiển chuyển đổi các lệnh chương trình trên PC thành các lệnh mà chip lập trình có thể hiểu được. Ngoài ra, thiết kế mạch này cho phép bạn tùy chỉnh mạch gần như không giới hạn - bạn có thể cài đặt bất kỳ số lượng chỉ báo nào để chỉ chế độ lập trình, bạn có thể kết nối vi điều khiển với RAM, để chương trình dành cho vi mạch lập trình được viết lại lần đầu tiên trong RAM, và sau đó, bất kể hoạt động của PC, nó được viết lại thành một vi mạch có thể lập trình, bạn cũng có thể tạo một lập trình viên với một ổ cắm chung cho tất cả các vi mạch có thể lập trình - tất cả phụ thuộc vào chương trình của vi điều khiển và trí tưởng tượng của người sản xuất.

Các lập trình viên cũng có thể được chia theo loại kết nối với vi mạch lập trình: nó được cắm vào ổ cắm của lập trình viên hoặc việc lập trình được thực hiện trong mạch (sử dụng đầu nối đặc biệt do nhà phát triển thiết bị cung cấp). Kiểu kết nối cuối cùng rất tiện lợi nhưng không phải vi điều khiển nào cũng hỗ trợ chế độ lập trình này; hơn nữa, với lập trình trong mạch thì không thể lập trình một số bit cấu hình và để thay đổi chúng bạn phải sử dụng bộ lập trình song song. Hơn nữa, hầu hết tất cả các Atmel MK đều hỗ trợ chế độ ISP công việc hàng ngày Với bộ vi điều khiển, một bộ lập trình viên tích hợp là khá đủ.

Mạch và bo mạch của phiên bản lập trình viên tự chế được hiển thị bên dưới. Bộ lập trình được cấu trúc trên một thiết bị nhỏ bảng mạch in, kết nối trực tiếp với cổng COM.

Tùy chọn lập trình viên đơn giản nhất cho AVRđây là năm dây được hàn vào cổng bộ điều khiển và cắm vào LPT Hải cảng. Tôi không tranh luận, điều đó là có thể. Nhưng Tôi vẫn không khuyên bạn nên nó cách này. Tôi thậm chí sẽ không cung cấp cho bạn sơ đồ nối dây - nếu bạn cần, bạn có thể tự tìm. Bởi vì phương pháp này không ổn định lắm, có thể sự cố phần mềm, chiều dài của dây được giới hạn ở mức hai mươi cm (nếu nhiều hơn sẽ bị rối), vì vậy bạn sẽ phải mò mẫm trong mông máy tính của mình. đúng và Cổng LPT dễ cháy. Nói chung, tôi không cai trị.

Tìm kiếm trên Internet, tôi tìm thấy một lập trình viên xuất sắc làm việc thông qua RS232 hay còn gọi là COM Hải cảng. Và chương trình tiện lợi cho phần mềm điều khiển Đại học từ Nikolaev. Mạch lập trình viên được phát minh bởi Gromov, người tạo ra Thuật toán Builder.

Để lắp ráp bộ lập trình, bạn sẽ cần:

  • Ba điốt, bất kỳ điốt nào có công suất thấp. Ví dụ 1N4148.
  • Bảy điện trở 1kOhm. Tôi có điện trở cỡ 1206
  • Nếu bạn làm theo bảng mạch in của tôi, bạn cũng có thể mua điện trở 3 0 ohm - jumper, họ không quan tâm.

Bảng mạch in được vẽ bằng bút đánh dấu, hoặc giống như của tôi, được làm bằng bàn ủi laser.

Tôi đã cài đặt đầu nối DB9 trong ảnh để thuận tiện. Tôi có các dây nhấp nháy khác nhau được kết nối ở đó hoặc bộ chuyển đổi như thế này:


Lập trình viên được hàn, bộ điều khiển được kết nối với nó. Đã đến lúc đảm bảo mọi thứ được thực hiện chính xác.

Phóng UniProf.exe và chọn một số COM cổng mà bạn đã kết nối với lập trình viên. Loại bộ điều khiển phải được xác định ngay lập tức và hiển thị phía trên cửa sổ mã bên trái.

Không thành công? Có ba lựa chọn:

  • Lập trình viên được hàn quanh co.
  • Bộ điều khiển chết.
  • Tôi hàn dây vào vi điều khiển không chính xác.

Một lần nữa bạn kiểm tra kỹ mọi thứ và thử lại. Nó sẽ hoạt động.

Tiếp theo, nếu bạn chưa từng làm việc với bộ điều khiển trước đây, bạn có thể cần chương trình kiểm tra. Nó sẽ không làm được điều gì hữu ích nhưng nó sẽ cho phép bạn chắc chắn rằng mọi thứ bạn đã làm trước đây đều được thực hiện chính xác.

Tải xuống Studio AVR Atmel là môi trường chính thức để phát triển chương trình cho vi điều khiển AVR. Studio hỗ trợ tất cả các vi điều khiển của dòng họ Atmel AVR. Tìm cô ấy phiên bản mới nhất có sẵn tại Atmel.com

Tạo tiếp theo dự án mới, chọn làm ngôn ngữ lập trình Trình biên dịch và cho biết thư mục và tên nơi dự án của bạn sẽ được đặt. Sử dụng nó như một trình gỡ lỗi AVR GIẢ LẬP và cho biết bạn sẽ làm việc với bộ điều khiển nào. Sau đó nhập một chương trình đơn giản vào cửa sổ văn bản.

Đây là văn bản ví dụ của nó:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 .BAO GỒM "m16def.inc"; điều này bao gồm một danh sách các định nghĩa macro; không có nó, trình biên dịch sẽ không biết cái nào; chính bộ xử lý là nơi chúng ta lắp ráp chương trình; nếu bạn có bộ điều khiển khác thì hãy thay thế nó; đưa vào tương ứng. Họ đang ở trong; Thư mục AVR Studio tại; "Công cụ AVR\AvrAssembler\Appnotes\" .MACRO outi LDI R16,@1 OUT @0,R16 .ENDMACRO ; Chúng tôi đặt một macro rất thuận tiện cho phép; viết một số tùy ý cho bất kỳ; đăng ký trong một dòng mã. .CSEG .ORG 0x0000 ĐẶT LẠI RJMP .ORG 0x0030 ; Lệnh bắt đầu mã từ địa chỉ 0x0030; địa chỉ được lấy với một mức chênh lệch lớn, bởi vì; cho các AVR khác nhau kích cỡ khác nhau bàn; ngắt quãng. Vì vậy, chắc chắn! CÀI LẠI: ; dấu bắt đầu OUTI DDRA,0xFF OUTI DDRB,0xFF OUTI DDRC,0xFF OUTI DDRD,0xFF ; Cấu hình hướng cổng đầu ra; Ví dụ: nếu bộ điều khiển này không có cổng; C thì dòng này sẽ được nhận xét. OUTI PORTA,0xAA OUTI PORTB,0xAA OUTI PORTC,0xAA OUTI PORTD,0xAA ; Chúng tôi xuất 10101010 để có được; một bức tranh rõ ràng về những gì đã xảy ra tại các bến cảng; những thay đổi. Sau khi hoàn thành chương trình; tại các đầu ra của vi điều khiển theo kiểu bàn cờ; Sẽ có điện áp cung cấp hoặc mặt đất. Cái gì; dễ dàng kiểm tra bằng vôn kế hoặc bằng một cái đơn giản; Đầu dò LED. THIẾT LẬP LẠI RJMP; Chúng tôi lặp lại chương trình.

BAO GỒM "m16def.inc"; điều này bao gồm một danh sách các định nghĩa macro; không có nó, trình biên dịch sẽ không biết cái nào; chính bộ xử lý là nơi chúng ta lắp ráp chương trình; nếu bạn có bộ điều khiển khác thì hãy thay thế nó; đưa vào tương ứng. Họ đang ở trong; Thư mục AVR Studio tại; "Công cụ AVR\AvrAssembler\Appnotes\" .MACRO outi LDI R16,@1 OUT @0,R16 .ENDMACRO ; Chúng tôi đặt một macro rất thuận tiện cho phép; viết một số tùy ý cho bất kỳ; đăng ký trong một dòng mã. .CSEG .ORG 0x0000 ĐẶT LẠI RJMP .ORG 0x0030 ; Lệnh bắt đầu mã từ địa chỉ 0x0030; địa chỉ được lấy với một mức chênh lệch lớn, bởi vì; các AVR khác nhau có kích thước bảng khác nhau; ngắt quãng. Vì vậy, chắc chắn! CÀI LẠI: ; nhãn bắt đầu OUTI DDRA,0xFF OUTI DDRB,0xFF OUTI DDRC,0xFF OUTI DDRD,0xFF ; Chúng tôi cấu hình hướng cổng đầu ra; Ví dụ: nếu bộ điều khiển này không có cổng; C thì dòng này sẽ được nhận xét. OUTI PORTA,0xAA OUTI PORTB,0xAA OUTI PORTC,0xAA OUTI PORTD,0xAA ; Chúng tôi xuất 10101010 để có được; một bức tranh rõ ràng về những gì đã xảy ra tại các bến cảng; những thay đổi. Sau khi hoàn thành chương trình; tại các đầu ra của vi điều khiển theo kiểu bàn cờ; Sẽ có điện áp cung cấp hoặc mặt đất. Cái gì; dễ dàng kiểm tra bằng vôn kế hoặc bằng một cái đơn giản; Đầu dò LED. THIẾT LẬP LẠI RJMP; Chúng tôi lặp lại chương trình.

Tiếp theo, nhấp vào nút biên dịch (hoặc F7) và đi tới thư mục dự án của bạn. Nó lẽ ra đã đợi bạn ở đó rồi ****.hex tập tin phần sụn.
Phóng UniProf.exe, nhấn nút bằng mở thư mục và dòng chữ HEX. Chọn dự án mới được biên dịch của bạn và nhấn ok.
Cửa sổ thứ hai Đại học sẽ yêu cầu bạn nhập dữ liệu EEPROM, chúng ta có EEPROM không được sử dụng, vậy hãy nhấn hủy.
Thế là xong, bây giờ bạn có thể flash nó. Bấm vào mũi tên màu đỏ với dòng chữ Prog và chờ đợi. Khi hoàn tất, bạn có thể nhấp vào đọc và xem nội dung được ghi vào bộ điều khiển của mình - nó sẽ hiển thị nội dung tương tự đã được tải vào cửa sổ.

Bây giờ tất cả những gì bạn phải làm là cấp nguồn cho bộ vi điều khiển của mình và xem những gì xuất hiện trên các cổng. Tôi nhìn thấy một “chiếc lược” cao và mức độ thấp Vôn? Tuyệt vời! Bạn đã flash bộ điều khiển đầu tiên trong đời! Bây giờ bạn có thể bắt đầu tìm hiểu về bộ vi điều khiển AVR.

Nếu nó không hoạt động thì đây là những giải pháp và giải pháp khả thi.

  • Các máy tính hiện đại, với bộ xử lý gigahertz, Vista và Seven mới lạ, là những người bạn rất kém với lập trình viên này. Bạn không chỉ có thể không có cổng COM mà ngay cả khi điều này xảy ra, thực tế không phải là mọi thứ sẽ hoạt động như bình thường. Đối với các thử nghiệm kỹ thuật vô tuyến, tôi khuyên bạn nên xây dựng một cái gì đó giống như PIII 800/Windows'98 từ những mảnh vụn có sẵn. Sẽ không có vấn đề gì khi đào được một điều kỳ diệu như vậy miễn phí và bạn không ngại đốt nó nếu có sự cố xảy ra
  • Đề án này không hoạt động thông qua bộ điều hợp USB-COM hoặc nó hoạt động, nhưng RẤT chậm. Giả sử phần sụn của một bộ vi điều khiển có thể tồn tại một tiếng rưỡi.
  • Lần đầu tiên nên ăn uống là tốt nhất từ khối máy tính. Ít có khả năng đốt cháy bất cứ thứ gì hoặc mắc lỗi
  • Kiểm tra sơ đồ 3-4 lần! Bởi vì, xét theo những bình luận, hầu hết vấn đề do cài đặt quanh co.
  • Trước khi bắt đầu chương trình ở MK BẠN CẦN TẮT LẬP TRÌNH và cấp điện áp +5 vôn cho đầu vào RESET thông qua điện trở 1,10 kOhm. Sẽ không có gì hoạt động với lập trình viên được kết nối, bởi vì... nó nhấn RESET và không cho phép tinh thể khởi động.
  • Nếu UniProf không phát hiện được MK, bạn cũng có thể gặp phải máy tính nhanh. Để bù đắp cho “nhược điểm” này bạn cần kích hoạt Hộp kiểm "Phanh" Nó hiện lên nếu bạn tắt nó đi bỏ chọn EEPROM Bảng hiển thị dữ liệu EEPROM.
  • Nếu hộp kiểm Phanh không giúp ích được thì hãy thử trên máy tính khác. Bởi vì ở đây cổng COM được xử lý ở chế độ bất thường, điều đó có nghĩa là thực tế không phải cổng COM của bạn sẽ hiểu mọi thứ một cách chính xác.
  • Tệ nhất, nếu vẫn thất bại, hãy thử lập trình viên 5 dây hoặc chương trình flash khác, chẳng hạn như avrdude. Giữ dây càng ngắn càng tốt! 10-15 cm là TỐI ĐA!
  • Đọc các bình luận trên bài viết. Nhiều vấn đề ở đó đã được giải quyết. Có lẽ bạn sẽ nằm trong số đó.

Bổ sung từ Người ngoài cuộc:
1. Nếu không có đầu nối cổng COM ở phía sau máy tính thì điều này không có nghĩa 100% là không có cổng đó trên bo mạch chủ về cơ bản. Trên bo mạch chủ vẫn có các đầu nối 9 chân xếp thành hai hàng - để biết thêm chi tiết, bạn cần xem tài liệu về bo mạch chủ. Tôi đã tìm thấy nó trên ASUS P5K SE của mình và sử dụng thành công.

2. Có, +5 và GND không được nối đất và một liên hệ từ cổng COM, cụ thể là cung cấp điện bên ngoài. Cách dễ nhất để lấy nó là trên máy tính của bạn - +5 nằm trong dây màu đỏ trên bất kỳ đầu nối nguồn điện nào Đĩa cứng. Và GND nằm ngay trên thân máy tính. Hoặc trên dây màu đen của cùng một đầu nối.

3. Nếu có điều gì đó không hoạt động với UniProf, bạn có thể thử avrdude. Để thực hiện việc này, bạn cần viết nội dung sau vào avrdude.conf:

lập trình viên
id = "nikolaew";
desc = "gặp cổng nối tiếp, reset=dtr sck=rts mosi=txd miso=cts";
gõ = serbb;
đặt lại = 4;
scck = 7;
mosi = 3;
tương miso = 8;
;

Và sau đó chạy avrdude với các tham số sau:

avrdude -n -c nikolaew -P com1 -p m16

Nếu mọi thứ đều ổn, chương trình sẽ thông báo:
avrdude: Thiết bị AVR được khởi tạo và sẵn sàng chấp nhận hướng dẫn

Bổ sung từ Riko
Thực nghiệm đã phát hiện ra rằng đối với vận hành chính xác cái này lập trình viên Điện áp cung cấp MK phải ít nhất là 5 volt(nhưng không cao hơn 5,5!!!). Nghĩa là, nếu MK được kết nối với ba pin AA, thì bạn bị ngắt điện vì có điện áp 4,5 volt! Cấp nguồn cho nó từ máy tính của bạn!!!

Bổ sung từ SLY_DEr
Không hoạt động. Tôi đã thay đổi điện trở từ 3k (không phải trên 1k) thành 460 ohm - nó hoạt động nhưng có lỗi.
Tôi quyết định, hoàn toàn vì mục đích thể thao, giảm bớt tốc độ cổng com trong trình quản lý thiết bị và ôi, phép màu, mọi thứ đều diễn ra như bình thường. Tôi đã giảm tốc độ cổng từ 9600k xuống 4800k và cũng giảm bộ đệm nhận và truyền (ibid.) xuống giá trị tương ứng là 4 và 6.

Nếu có điều gì chưa rõ ràng, đừng ngần ngại hỏi tôi trong phần bình luận.

ZY
Nếu nó hoàn toàn không hoạt động, thì có lẽ bo mạch chủ của bạn không hỗ trợ xử lý cổng COM không chuẩn như vậy và bạn có nên thử các lập trình viên khác không? Ví dụ, hoặc. Mặc dù chúng phức tạp hơn nhưng chúng hoạt động chính xác hơn, không bị biến dạng.

Bước đầu tiên để làm chủ một bộ vi điều khiển cho mọi người có lẽ là lắp ráp một bộ lập trình viên. Theo tôi, bạn cũng có thể mua một lập trình viên, nhưng với số tiền rất vô lý. Hãy xem xét một lập trình viên đang làm việc cho AVR mà tôi đã sử dụng được 4 năm. Có lần bố tôi cho tôi xem, tôi rất thích chương trình này và quyết định làm một lập trình viên cho nó. Lục lọi trang web của chương trình, tôi tìm thấy một mạch lập trình đơn giản ( cổng COM Tôi không xem xét chúng do chúng dễ cháy trong điều kiện tĩnh):


Việc lặp lại nó sẽ không mất hơn một giờ, nhưng sẽ đảm bảo tính toàn vẹn của bạn LPT cảng và làm việc cùng nhau Với Pony Prog 2000. Vi mạch là một bộ đệm. Điện trở R1– 100k, tụ điện C1– 0,1µF. Điốt D1- bất kỳ silicon nào. LPTđầu nối nam. Bây giờ chúng ta hãy giải quyết ISPđầu nối sẽ được sử dụng để lập trình. kết luận MISO, MOSI, SCK, CÀI LẠI– người quản lý, đầu ra DẪN ĐẾN– một đèn LED được kết nối với nó, báo hiệu phần mềm đọc/ghi cho vi điều khiển, VDDGND+5V và nối đất tương ứng.

Để kết nối bộ vi điều khiển, thuận tiện là sử dụng cáp 10 dây và cáp tương ứng. IDC, nhưng đây là vấn đề sở thích và mỗi người tự quyết định xem mình thích nó như thế nào, cái chính là không nên làm quá dài để tránh nhầm lẫn. Tôi đã nhận được nó như thế này:



Đối với những người vì lý do này hay lý do khác không có cổng LPT và quá lười chạy sang hàng xóm để flash firmware, tôi có thể giới thiệu một lập trình viên USB thông minh (trang web dự án prottoss.com). Nó chỉ đủ để lặp lại mạch và flash chính xác bộ điều khiển điều khiển (đối với điều này, sau tất cả, bạn sẽ cần LPT hoặc COM Hải cảng). Như thế này USB Lập trình viên tự lắp ráp:


Hãy chuyển sang phần phần mềm. Lúc đầu người ta nói rằng chúng ta sẽ lập trình bằng cách sử dụng Pony Prog 2000.

Khởi động và hiệu chỉnh lần đầu:
Khi sử dụng lập trình viên lần đầu tiên, đừng quên cấu hình chính xác: Setup->Interface setup, trong cửa sổ hiện ra, chọn LPT chọn cổng mà lập trình viên được kết nối API ISP của AVR trong danh sách thả xuống và không chạm vào các hộp kiểm Phân cực của dòng điều khiển, để trống chúng. Tiếp theo, chúng tôi hiệu chỉnh toàn bộ Thiết lập-> Hiệu chỉnh. Thế là xong, bây giờ chúng ta có thể lập trình AVR bằng bảng mạch của mình.

Lựa chọn môi trường viết chương trình:
Bây giờ tất cả những gì còn lại là chọn môi trường nào để viết chương trình và bằng ngôn ngữ nào. Tôi khuyên bạn nên viết bằng C nếu kích thước và tốc độ thực hiện chương trình không quan trọng.

Sự phát triển của nó dễ dàng hơn nhiều so với trình biên dịch mã, nhưng kiến ​​thức về trình biên dịch mã là không thể thiếu để viết ngắn gọn và chính xác. chương trình nhanh, hiểu hoạt động của vi điều khiển. Tôi viết chương trình của mình kết hợp chương trình miễn phí và tôi rất hài lòng với kết quả, nhưng không có đồng chí nào theo sở thích và màu sắc, sự lựa chọn là của bạn.

Gần thành công rồi =)) => =(

Tôi dường như đã hàn mọi thứ như trong sơ đồ)
Nghĩa là, có vẻ như không phải vậy, nhưng thực tế là vậy)
Nhưng thay vì D1, tôi đã cài đặt một diode IR, tôi không biết liệu nó có tác dụng gì không; tôi không có thứ gì khác trong tay)

Vấn đề đầu tiên là khi tôi cố gắng flash bằng cài đặt API AVR ISP (LPT2 không thể được chọn khác)
gặp lỗi 16, như không có cổng

Sau khi tôi thay đổi cài đặt trên AVR ISP I/O LPT1, tôi gặp lỗi -24 loại Tôi không quen với thiết bị của bạn)
Và cố gắng flash nó. . . chưa có kết quả(((

cho tôi biết vấn đề là gì?
Bạn đã nghe nói rằng bạn cần thay đổi một số cài đặt trong BIOS chưa?
vậy chúng là gì?7?

Chúc mừng bạn đã mua hàng!

Tôi đã mua một thứ gì đó thu nhỏ, trên USB, không có vỏ và không có chuông & còi, hướng dẫn nói rằng nó là một chất tương tự của stk500, nó có thể được xác định là avr910, nhưng đối với tôi nó được xác định là avr doper.
Tôi chưa kết nối nó ở bất cứ đâu - khi tôi cố đọc cầu chì, chương trình ghi chương trình không phản hồi.
Tôi nghi ngờ rằng đây là cách nó nên được.
Bây giờ là câu hỏi thực tế. Trên bo mạch có các đầu nối cho 6 và 10 chân, nhưng cáp chỉ có 10. Để flash chương trình cơ sở của vi điều khiển, tôi chỉ cần kết nối các chân với các chân mosi, vcc, rst, miso và nối đất phải không? phần còn lại của các chân vi điều khiển có thể treo tự do không?

Để lập trình MK

Để lập trình MK, bạn cần kết nối MOSI, MISO, SCK, RESET với bộ lập trình và cấp nguồn. Phần còn lại có thể được giữ nguyên. Nhìn vào tài liệu lập trình viên để biết chân nào cần được xuất ra.

Tyx

Đối với tôi, nó từ chối hoạt động như avr910, như stk500, như stk500v1, nhưng nó đọc các cầu chì như stk2 và flash ổ đĩa flash trong vài giây. Tôi sẽ cố gắng lắp ráp thiết bị của mình và khởi chạy nó))
Mikruha đã được khâu lại!

lần đầu tiên lập trình viên, tôi sợ đốt cháy thứ gì đó)

Chúc mọi người một ngày tốt lành!
Cho em hỏi chân MISO, MOSI, SCK, RESET có phải là chân điều khiển không thì cần nối trực tiếp với MK hoặc như ở đây

Ý tôi là, các chân MISO, MOSI, SCK, RESET có cần được kết nối với nguồn điện và nối đất qua điện trở không?
Vấn đề là tôi có một mega16, trong đó chân RESET bị đảo ngược, về lý thuyết, việc đặt lại về 0 sẽ có tác dụng, tôi có nên ném R3 xuống đất không?


Cảm ơn nếu có ai phản hồi!
tái bút Tôi đã lấy bằng tốt nghiệp của MK, nhưng tôi không giỏi về nó :) Tôi muốn tìm hiểu nó, nhưng có rất nhiều điều tinh tế...

Để bắt đầu làm việc với bộ vi điều khiển AVR, bạn cần có các công cụ lập trình tích hợp. Ở giai đoạn đầu, bộ chuyển đổi STK 200/300 đơn giản khá phù hợp. Sơ đồ bên dưới chứa các nút nhảy để xác định sự hiện diện của cả bộ chuyển đổi STK200 (chân 2-12 của đầu nối X1) và STK300 (chân 3-11). Để tạo bộ chuyển đổi, bạn sẽ cần đầu nối DB25M có vỏ nhựa, cáp phẳng mười lõi, đầu nối IDC-10, sợi thủy tinh và các bộ phận. Sơ đồ nguyên lý của bộ lập trình LPT AVR được thể hiện trong hình.

Các bộ phận của thiết bị được gắn trên bảng mạch in một mặt, được sản xuất bằng công nghệ LUT. Sau khi cài đặt các phần tử phẳng, bạn có thể hàn chip 74HC244. Sử dụng dây lắp đặt mắc kẹt hoặc lõi đơn có tiết diện nhỏ, chúng tôi hàn các dây nhảy theo sơ đồ.

Sau khi hoàn thành việc nối dây của tất cả các jumper, chúng tôi hàn một sợi cáp phẳng mười lõi. Tiếp theo, cáp được gấp ngang phía sau thân vi mạch và chuẩn bị sẵn các dây dẫn, dây này phải được kết nối với dây chung. Việc chuẩn bị bao gồm việc điều chỉnh độ dài của các dây dẫn này để chúng có thể được hàn vào thân đầu nối. Sau đó, chúng được tước, xoắn, đóng hộp và hàn tại một điểm vào vỏ, giúp loại bỏ nhu cầu buộc chặt cáp bổ sung bên trong vỏ.

Mặc dù thực tế là chiều dài cáp không được quá nửa mét, nhưng để đảm bảo bộ chuyển đổi hoạt động đáng tin cậy, đôi khi bộ chuyển đổi được sử dụng ngay cả với cáp hai mét mà không gặp vấn đề gì. Mong kế hoạch này sẽ hữu ích cho những ai quyết định bắt đầu công việc với bộ vi điều khiển AVR bằng cách lắp ráp bộ chuyển đổi STK200/300. Đã kiểm tra mạch: serh7000.