ENCYCLOPEDIA VỀ ĐIỆN TỬ TRUYỀN THANH VÀ KỸ THUẬT ĐIỆN Lập trình PIC16, PIC12 hiện đại trên PonyProg. Bách khoa toàn thư về điện tử vô tuyến và kỹ thuật điện Bách khoa toàn thư về điện tử vô tuyến và kỹ thuật điện / Bộ vi điều khiển Như bạn đã biết, bộ lập trình PonyProg được thiết kế để lập trình một số loại vi điều khiển PICmicro hạn chế của Microchip (PIC12C50x PIC16F8x, PIC16F87x). Tuy nhiên, nó có thể được sử dụng để lập trình cho các thiết bị khác, bao gồm các bộ vi điều khiển mới thuộc dòng PIC12 và PIC16. Bài viết mô tả cách thực hiện việc này. Nhiều người nghiệp dư về radio xây dựng thiết kế của họ dựa trên bộ điều khiển PIC phổ biến PIC16F84 (PIC16F84A). Tuy nhiên, thời gian không đứng yên và phạm vi vi điều khiển PICmicro (MCU) được sản xuất không ngừng mở rộng. Các MCU mới, tiên tiến hơn của dòng PIC16F và PIC12F đã xuất hiện (ví dụ PIC12F629, PIC12F675, PIC16F628, PIC16F630, PIC16F676). Chúng chứa một bộ so sánh có khả năng hoạt động với điện áp đầu vào gần bằng 10, điều này rất hấp dẫn với nguồn cung cấp một lần. ADC 16 bit có trong thành phần của chúng có độ chính xác không thua kém các vi mạch chuyên dụng, cùng với khả năng xử lý và hiển thị thông tin cao hơn, cho phép bạn tạo ra các thiết bị độc đáo với số lượng phần tử bên ngoài tối thiểu. MK mới có bộ nhớ lớn hơn, bộ hẹn giờ bổ sung, cổng giao tiếp đa năng và các cải tiến khác. Hơn nữa, giá thành của chúng thấp hơn đáng kể so với PIC84F16 và FLASH PIC630F16 rẻ hơn PIC505C14 (cả hai đều ở dạng gói 12 chân). Tổ chức bộ nhớ của PIC16Fx giống như của PIC84FXNUMX (một trang), giúp dễ dàng điều chỉnh các chương trình không yêu cầu sử dụng MCU trong các gói nhiều chân. Nếu bạn quyết định sử dụng bộ vi điều khiển mới trong thiết kế của mình thì trước khi nghiên cứu chúng và viết chương trình, hãy suy nghĩ xem nên lập trình chúng trên cái gì. Việc mua một lập trình viên có thương hiệu với chi phí tương đương với giá của một bộ phận hệ thống máy tính là điều gần như không thể đối với những người nghiệp dư trên đài. Tuy nhiên, nhiều người trong số họ đã lắp ráp bộ lập trình PONYPROG [1]. Hãy tìm hiểu cách bạn có thể sử dụng nó để lập trình MK mới. Tất cả các MK đều được lập trình thông qua bus ba dây. Để lập trình, cần có các tín hiệu Upp (chuyển sang chế độ lập trình), CLK (đồng bộ hóa) và DAT (dữ liệu). Những người có sở thích không có lập trình viên có thể sử dụng một thiết bị đơn giản được lắp ráp theo sơ đồ trong Hình. 1. Nó được kết nối với cổng COM của PC; một nguồn riêng có điện áp đầu ra 5 V được sử dụng để cấp nguồn cho MK. Trong "Cài đặt thiết bị" chỉ ra loại lập trình viên - API JDM. Các thiết bị đầu cuối được kết nối theo bảng. Việc lập trình có thể được thực hiện trực tiếp trong thiết bị đã hoàn thiện bằng cách sử dụng nguồn điện của nó (chỉ cần loại bỏ sự lệch hướng của các chân lập trình MK bởi các thành phần sản phẩm). Điện áp cung cấp trong quá trình lập trình phải nằm trong khoảng 4,5...5,5 V (nếu cần, hãy chọn diode zener VD1). Bảng cho thấy mục đích của các chân PIC16F84 và PIC16F628 được sử dụng trong quá trình lập trình là như nhau nên có thể lập trình trong cùng một socket của lập trình viên. Đối với các vi mạch khác, bạn sẽ phải lắp thêm ổ cắm kết nối với bộ chuyển đổi theo bảng. Thông tin chi tiết hơn về bộ điều khiển PIC có thể được tìm thấy trên trang web [2]. Các giải thích sâu hơn được đưa ra bằng cách sử dụng PIC16F628 làm ví dụ, vì nó không yêu cầu sửa đổi phần cứng đối với bộ lập trình PonyProg và có sẵn ở các cửa hàng hơn các loại khác. Như đã lưu ý, tất cả PICmicro MK đều được lập trình thông qua ba dây (chính xác hơn là hai). Giao thức lập trình (lệnh) cũng giống nhau. Bộ nhớ chương trình bắt đầu ở địa chỉ 0000 và kết thúc tùy thuộc vào dung lượng của nó trong một loại chip cụ thể. Điều này có nghĩa là bằng cách chọn MK phù hợp với tham số này từ danh sách PonyProg, bạn có thể ghi lại chương trình mong muốn. Trong trường hợp của chúng tôi, PIC16F871 là phù hợp. Cần lưu ý rằng dòng dưới cùng của cửa sổ PonyProg cho biết dung lượng bộ nhớ tính bằng byte và đặc tính kỹ thuật của MK thường chỉ ra số lượng từ (14 bit). Nói cách khác, người lập trình hiển thị âm lượng lớn hơn. PIC16F871 và PIC16F628 có dung lượng bộ nhớ 2048 từ. Ngoài ra, điều này có thể được kiểm tra trong tệp .Ikr của MK tương ứng (nằm trong thư mục cài đặt MPLAB) bằng cách đọc nó bằng chương trình Notepad tiêu chuẩn. Địa chỉ bộ nhớ chương trình được chỉ định như sau: CODEPAGE NAME=vectơ START=0x0 END=0x4 ĐƯỢC BẢO VỆ (chuyển có điều kiện) CODEPAGE NAME=trang START=0x5 END=0x7FF (chuyển có điều kiện) Ở giai đoạn này, bạn đã có thể thử ghi thông tin vào bộ nhớ chương trình. Bất kỳ tệp HEX nào không lớn hơn 2048 từ đều phù hợp cho việc này. Sau khi khởi chạy chương trình dịch vụ, kết nối thiết bị với cổng máy tính, cắm MK vào ổ cắm thích hợp, sau đó bật nguồn của bộ lập trình. Chọn PIC16F871 từ menu, tải tệp HEX đã chọn và nhấp vào nút "Viết bộ nhớ chương trình (FLASH)". Một thông báo lỗi sẽ xuất hiện thông báo cho bạn về các vấn đề với MK và có ba nút (Hình 2): “Abort” (hủy bỏ), “Thử lại” (lặp lại), “Bỏ qua” (bỏ qua). Nhấp vào cái cuối cùng ("Bỏ qua") và quá trình lập trình sẽ bắt đầu. Sau khi hoàn thành, một thông báo cho biết ghi thành công sẽ xuất hiện. Nếu lập trình viên tạo ra "Lỗi ghi", hãy kiểm tra nội dung của bộ nhớ chương trình, coi đó là lệnh tương ứng. Sự hiện diện của lỗi cho thấy rằng lập trình viên có thể đang làm việc quá nhanh (điều này xảy ra nếu hệ điều hành WINDOWS XP được cài đặt trên máy tính; với WINDOWS 98, chương trình chạy chậm hơn và ghi đáng tin cậy hơn). Nguyên nhân cũng có thể là do nhiễu (nếu dây kết nối quá dài) và trong một số trường hợp hiếm hoi là do chương trình chống vi-rút và các chương trình nền khác. Nếu mục này bị thiếu hoàn toàn thì phần cứng của lập trình viên bị lỗi hoặc chương trình được cấu hình không chính xác (trong menu). Giai đoạn tiếp theo, quan trọng nhất là viết từ cấu hình. Địa chỉ của nó cũng có thể được tìm thấy trong tệp .Ikr của MK tương ứng. Dòng trong tập tin trông như thế này: CODEPAGE NAME=.config START=0x2007 END=0x2007 ĐƯỢC BẢO VỆ (chuyển có điều kiện). Từ cấu hình nằm ở địa chỉ 0x2007. Trong trường hợp của chúng tôi, PIC16F871 và PIC16F628 có địa chỉ 2007, tức là chúng thích hợp để thay thế (cần lưu ý rằng từ cấu hình cho tất cả PIC16 và PIC12F đều nằm ở địa chỉ này). Không nên đặt các bit cấu hình trực tiếp trong bộ lập trình, vì ký hiệu của chúng trên bảng lập trình cho PIC16F628 và PIC16F871 là khác nhau và có thể xảy ra lỗi, đồng thời một số bit bị chuyển sang màu xám và không thể đặt trực tiếp. Tốt hơn là bạn nên ghi lại cấu hình MK khi biên dịch chương trình. Đối với MPLAB, những dòng này có thể trông giống như thế này: trong lude p16f628.inc> danh sách p=16f628 _config H'0242" Giá trị '0242' được biên dịch theo mục đích của từng bit trong từ cấu hình và có thể khác trong trường hợp cụ thể của bạn. Bạn có thể tìm thấy mô tả chi tiết về tất cả các bit trên trang web [2]. Các chữ viết tắt cho các bit cấu hình có trong tệp .INC của MK tương ứng trong thư mục cài đặt MPLAB. Xem gần đúng: BODEN TRÊN THIẾT BỊ H'3FFF' BOEN TẮT THIẾT BỊ H'3FBF' CP TẤT CẢ THIẾT BỊ H'03FF' CP 75 THIẾT BỊ H'17FF' CP 50 THIẾT BỊ H'2BFF' CP TẮT THIẾT BỊ H'3FFF' CP DỮ LIỆU TRÊN THIẾT BỊ H'3EFF' DỮ LIỆU CP TẮT THIẾT BỊ H'3FFF' PWRTE TẮT THIẾT BỊ H'3FFF' LÒ NÉN TRÊN THIẾT BỊ H'3FF7' WDT TRÊN THIẾT BỊ H'3FFF' WDT TẮT THIẾT BỊ H'3FFB' LVP TRÊN THIẾT BỊ H'3FFF' LVP TẮT THIẾT BỊ H'3F7F' MCLRE TRÊN THIẾT BỊ H'3FFF' MCLRE TẮT THIẾT BỊ H'3FDF' ER OSC CLKOUT THIẾT BỊ H'3FFF' ER OSC NOCLKOUT THIẾT BỊ H'3FFE' INTRC OSC CLKOUT THIẾT BỊ H'3FFD' INTRC OSC NOCLKOUT THIẾT BỊ H'3FFC EXTCLK OSC THIẾT BỊ H'3FEF' LP OSC EQUI H'3FEC XT OSC EQUI H'3FED' HS OSC EQUI H'3FEE' Sử dụng ký hiệu này, dòng nhập có thể trông như thế này: __config CP_ALL & WDT TẮT & BẬT BODEN & _PWRTE_ON & _HSJ3SC &_LVP TẮT ; (chuyển khoản có điều kiện). Bằng cách này, bạn có thể viết từ cấu hình cho bất kỳ MK nào bằng tệp .INC của nó. Điều này thuận tiện khi điều chỉnh một chương trình làm sẵn, chẳng hạn như trong trường hợp thay thế PIC16F627 bằng PIC16F627A rẻ hơn. Khi bạn đưa cấu hình vào văn bản chương trình, nó sẽ được đưa vào tệp HEX và các bit được tô bóng cũng sẽ được đặt. Sau khi bạn nhập từ cấu hình vào bộ lập trình bằng cách đọc tệp HEX của chương trình chứa nó, quá trình ghi được thực hiện theo cách thông thường, bằng cách nhập lệnh thích hợp. Tương tự, nó có thể được đọc từ MK. Bạn có thể đảm bảo rằng cấu hình được ghi bằng cách xóa bảng lập trình cấu hình lập trình viên sau khi ghi, sau đó đọc cấu hình từ MK hoặc bằng cách đọc bộ nhớ chương trình từ chip được bảo vệ đọc: trước khi ghi cấu hình, nó sẽ được đọc , nhưng sau khi ghi thì không (nếu cài đặt bảo vệ), trong trường hợp này, cấu hình cũng được đọc trong vi mạch được bảo vệ. Không nên thiết lập các bit bảo mật trừ khi thực sự cần thiết. Thực tế là một số MK có các lệnh xóa khác nhau và bạn sẽ không thể lập trình lại chúng vì các bit bảo vệ trên PonyProg sẽ không bị xóa. Tuy nhiên, khi ghi vào một con chip không được bảo vệ trên “chương trình cơ sở” chứa trong đó, mã được ghi sẽ xóa thông tin trước đó và không cần phải xóa. Tuy nhiên, điều này không áp dụng cho PIC16F627, PIC16F628; thông tin trong đó có thể được bảo vệ mà không cần lo lắng. Dữ liệu được ghi vào EEPROM theo cách thông thường, vì dữ liệu trong MCU PIC16F và PIC12F được đặt từ địa chỉ 2100p. Bạn cũng có thể xem nội dung này trong tệp .Ikr. Một dòng ví dụ: CODEPAGE NAME=eedata START=0x2100 END=0x217F ĐƯỢC BẢO VỆ (chuyển có điều kiện). Linh tinh dành cho bộ điều khiển PIC - chỉ phần cuối của vùng dữ liệu (do các khối lượng khác nhau): đối với PIC16F628 - 128, đối với PIC16F871 - 64 byte, nhưng nếu khối lượng bạn cần cho công việc không vượt quá kích thước của EEPROM của bộ thay thế đã chọn chip (dành cho PIC16F871 - 64 byte), sau đó bạn có thể lập trình mà không cần chuyển loại MK trong menu: đơn giản là bộ nhớ dư thừa của PIC16F628 sẽ không được sử dụng. Nếu bạn cần ghi âm lượng lớn hơn, thì trong menu lập trình viên, bạn nên thay thế loại MK có dung lượng bộ nhớ tương tự PIC16F628 (trong trường hợp của chúng tôi là PIC16F874 với EEPROM 128 byte) và ghi theo cách thông thường. Bạn có thể thay đổi loại MK trong menu ở bất kỳ giai đoạn lập trình nào. Cần lưu ý rằng mặc dù PIC16F874 có bộ nhớ chương trình lớn gấp đôi PIC16F628 nhưng bạn có thể ghi thông tin vào nó bằng cách cài đặt PIC16F874 và thậm chí PIC16F877 (16K) trong menu, tuy nhiên khi kiểm tra ghi, lập trình viên sẽ hiển thị một thông báo lỗi. Thực tế là khi đọc một phần bộ nhớ không được triển khai trong PIC16F628, MK sẽ tạo ra thông tin được ghi ở địa chỉ thấp hơn (các bit địa chỉ cao bị bỏ qua), tức là bộ nhớ chương trình sẽ được đọc hai lần (trong PIC16F877 - bốn lần). Nói cách khác, đây không phải là lỗi trong chương trình mà là việc đọc lại bộ nhớ; chương trình được ghi bình thường. Văn chương
Tác giả: A. Sizov, Ivanovo Xem các bài viết khác razdela Bộ vi điều khiển. Đọc và viết hữu ích bình luận về bài viết này. Tin tức khoa học công nghệ, điện tử mới nhất: Máy tỉa hoa trong vườn
02.05.2024 Kính hiển vi hồng ngoại tiên tiến
02.05.2024 Bẫy không khí cho côn trùng
01.05.2024
Tin tức thú vị khác: ▪ Băng trên một tiểu hành tinh ▪ Xe đưa đón hoàn toàn tự động Nguồn cấp tin tức khoa học và công nghệ, điện tử mới
Tài liệu thú vị của Thư viện kỹ thuật miễn phí: ▪ phần trang web Điều khiển âm lượng và âm lượng. Lựa chọn bài viết ▪ bài báo Lấy nó, lấy nó, hoặc thậm chí làm bẩn móng vuốt của bạn! biểu hiện phổ biến ▪ Điều Medlar bình thường. Truyền thuyết, canh tác, phương pháp áp dụng ▪ bài viết Thiết bị SRT. Bách khoa toàn thư về điện tử vô tuyến và kỹ thuật điện ▪ Bài viết của Philadin. Bách khoa toàn thư về điện tử vô tuyến và kỹ thuật điện
Để lại bình luận của bạn về bài viết này: Tất cả các ngôn ngữ của trang này Trang chủ | Thư viện | bài viết | Sơ đồ trang web | Đánh giá trang web www.diagram.com.ua |