Mục lục:

Cách sử dụng Dragon Rider 500 với AVR Dragon của bạn: 10 bước
Cách sử dụng Dragon Rider 500 với AVR Dragon của bạn: 10 bước

Video: Cách sử dụng Dragon Rider 500 với AVR Dragon của bạn: 10 bước

Video: Cách sử dụng Dragon Rider 500 với AVR Dragon của bạn: 10 bước
Video: Thanh niên lần đầu chưa có kinh nghiệm kiểu#funny #tiktok 2024, Tháng bảy
Anonim
Cách sử dụng Dragon Rider 500 với AVR Dragon của bạn
Cách sử dụng Dragon Rider 500 với AVR Dragon của bạn

Tài liệu hướng dẫn này là một khóa học về cách sử dụng một số tính năng của Dragon Rider 500 từ Ecros Technologies. Xin lưu ý rằng có một Hướng dẫn sử dụng rất chi tiết trên trang web của Ecros.

Dragon Rider là một bảng giao diện để sử dụng với một lập trình viên vi điều khiển AVR được Atmel gọi là AVR Dragon. Để biết thêm thông tin: Atmel's Wesite: https://www.atmel.com/ AVR Dragon link: https://www.atmel.com/dyn/products/tools_card.asp? Tool_id=3891 Dragon Rider 500 by Ecros Technology: http:: //www.ecrostech.com/AtmelAvr/DragonRider/index.htm Dragon Rider 500 lắp ráp có thể hướng dẫn: https://www.instructables.com/id/Assembling-the-Dragon-Rider-500-for-use-with- the-A / Tìm hiểu tất cả về bộ vi điều khiển AVR: https://www.avrfreaks.net Tài liệu hướng dẫn này có thể phát triển theo thời gian, vì vậy hãy kiểm tra lại ngay bây giờ và một lần nữa!

Bước 1: AVR Dude

Bạn cần một số phần mềm lập trình để sử dụng AVR Dragon để lập trình. Tôi sử dụng AVRdude với hệ điều hành Ubuntu (linux) và tôi rất hài lòng với kết quả. Nếu bạn không biết cách thiết lập hoặc sử dụng phần mềm lập trình, hãy xem phần hướng dẫn này để giúp bạn tăng tốc: https://www.instructables.com/id/Getting-started-with-ubuntu-and-the- AVR-dragon / Tôi đoán là nếu bạn đã mua và lắp ráp Dragon Rider 500, bạn đã biết cách lập trình chip với AVR Dragon….. trở đi!

Bước 2: ATtiny2313 - Nhấp nháy đèn LED

ATtiny2313 - Nhấp nháy đèn LED
ATtiny2313 - Nhấp nháy đèn LED
ATtiny2313 - Nhấp nháy đèn LED
ATtiny2313 - Nhấp nháy đèn LED
ATtiny2313 - Nhấp nháy đèn LED
ATtiny2313 - Nhấp nháy đèn LED

Hãy lập trình ATtiny2313 là một vi điều khiển 20 chân. Dragon Rider 500 có các ổ cắm cho một số vi điều khiển AVR có kích thước khác nhau. Chúng bao gồm: 8, 20, 28 và 40 chân cắm. Tùy thuộc vào việc bạn sử dụng ổ cắm nào, các jumper trên bảng Dragon Rider phải được đặt khác nhau.

Cài đặt Jumper

Đặt các jumper trên Dragon Rider để các shunts kết nối các chân sau. (pin4 là chân trung tâm của J22-J-24) Các chân: J5 - 23J6 - 23J7 - 12J16 - 23J22 - 41J23 - 41J24 - 41 Đây là thiết lập cơ bản cho phép ISP (Trong Lập trình Hệ thống).

Blinky Blinky

Lập trình không tốt, trừ khi bạn có thứ gì đó để lập trình. Tôi đã viết một ví dụ mã rất ngắn để nhấp nháy đèn LED của Kỵ sĩ rồng cùng một lúc. Sử dụng cáp ruy-băng để kết nối tiêu đề LED (J29) với tiêu đề PortB (J2).

Lập trình

Tôi đã bao gồm tệp C cũng như tệp makefile và tệp hex. Giống như tôi đã đề cập trong phần giới thiệu, tôi không thể đề cập đến khía cạnh phần mềm của lập trình trong Có thể hướng dẫn. Chương trình giống như bạn sẽ làm cho AVR Dragon, vì Dragon Rider hoàn toàn không thay đổi mặt phần mềm của mọi thứ.

Bước 3: Sử dụng Tiện ích bổ sung LCD

Sử dụng Tiện ích bổ sung LCD
Sử dụng Tiện ích bổ sung LCD

Đây là một cách đơn giản để sử dụng Tiện ích bổ sung LCD. Điều này sẽ ghi "Dragon Rider" vào màn hình LCD.

Phần cứng:

  • ATtiny2313
  • R / W Jumper: R / W nên được kết nối với "BIT1" trên Bảng Kỵ Sĩ Rồng (Xem phần giải thích trong Hội có hướng dẫn)
  • J23: Jumper này phải được cài đặt để lập trình ISP nhưng sau đó được gỡ bỏ để màn hình LCD hoạt động bình thường.
  • Kết nối LCD với PORT B bằng cáp ribbon (J31 đến J2)

Phần mềm

Tôi đang sử dụng thư viện LCD của Peter Fleury để điều khiển màn hình LCD ở chế độ 4-bit. Hãy xem Trang chủ của Peter để tải xuống thư viện. Bạn cần đảm bảo rằng lcd.c được biên dịch bằng mã của bạn và bạn thực hiện các thay đổi sau đối với lcd.h:

Chúng tôi đang sử dụng bộ dao động RC bên trong nên XTAL cần được đặt ở 1MHz:

#define XTAL 1000000

  • Cài đặt cổng cần được điều chỉnh thành PORTB:
  • #define LCD_PORT PORTB

  • Sơ đồ chân cho 4 dòng dữ liệu cần được điều chỉnh:
  • # xác định LCD_DATA0_PIN 4 # xác định LCD_DATA1_PIN 5 # xác định LCD_DATA2_PIN 6 # xác định LCD_DATA3_PIN 7

  • Sơ đồ chân cho RS, RW và E cần được điều chỉnh:
  • # xác định LCD_RS_PIN 3 # xác định LCD_RW_PIN 1 # xác định LCD_E_PIN 2

    Chương trình chính rất đơn giản nhờ vào công việc mà Peter Fleury đã làm trong thư viện LCD của mình.

    #include #include "lcd.h" int main (void) {lcd_init (LCD_DISP_ON); // Khởi tạo LCD bằng con trỏ tắt lcd_clrscr (); // Xoá màn hình LCD lcd_gotoxy (5, 0); // Di chuyển con trỏ đến vị trí này lcd_puts ("Dragon"); // Đặt chuỗi này trên LCD lcd_gotoxy (6, 1); // Di chuyển con trỏ đến vị trí này lcd_puts ("Rider"); // Đặt chuỗi này trên màn hình LCD for (;;) {// Không làm gì mãi mãi (Thông báo đã hiển thị trên màn hình LCD)}}

    Mã đính kèm

    Mã đính kèm bao gồm thư viện LCD của Peter Fleury (lcd.c và lcd.h) với sự cho phép của anh ấy. Cảm ơn Peter! Thay đổi duy nhất tôi đã thực hiện đối với nó là đặt các chân thích hợp trong Xác định. Vui lòng truy cập trang web của anh ấy để tải xuống gói: https://www.jump.to/fleury Tôi cũng đã bao gồm một tệp trang điểm mà tôi sử dụng được viết bởi Eric B. Weddington và, Jorg Wunsch. Tôi đã gửi một PM cho Jorg qua avrfreaks.net nhưng không bao giờ nhận được phản hồi từ anh ấy. Có một vài thay đổi trong makefile để phù hợp với việc sử dụng Linux và Dragon. Cảm ơn cả hai bạn, xin vui lòng cho tôi biết sở thích của bạn về việc tôi chia sẻ công việc của bạn.

    Bước 4: Lập trình UC ISP 28 chân (ATmega8)

    Lập trình UC ISP 28 chân (ATmega8)
    Lập trình UC ISP 28 chân (ATmega8)
    Lập trình UC ISP 28 chân (ATmega8)
    Lập trình UC ISP 28 chân (ATmega8)

    Quá trình giải điều khiển dự án tiếp theo sẽ sử dụng ATmega8 là một trung bình 28 chân. Đây là bộ jumper cơ bản để ISP lập trình vi điều khiển 28 chân.

    Cài đặt Jumper

    Đặt các jumper trên Dragon Rider để các shunts kết nối các chân sau. (chân 4 là chân trung tâm của J22-J-24) Các chân: J11 - 23J12 - 23J13 - 12J16 - 23J22 - 42J23 - 42J24 - 42

    Thông tin kĩ thuật

    • Kết nối J11 và J12 theo cách này cho phép bạn sử dụng các chân đó làm chân I / O. Giải pháp thay thế sẽ là định tuyến các chân này để tạo kết nối với tinh thể bên ngoài.
    • Kết nối J13 theo cách này cho phép chúng tôi sử dụng nó làm chốt đặt lại. Phương án thay thế sẽ định tuyến chân này tới tiêu đề PORTC để sử dụng làm chân I / O. (điều này sẽ có nhiều hạn chế, bao gồm cả việc không thể lập trình chip này bằng ISP).
    • J16 & J22-J24 được kết nối theo kiểu này để định tuyến các chân thích hợp (Reset, MISO, MOSI và SCK) tới tiêu đề ISP của AVR Dragon.

    Bước 5: Sử dụng màn hình LCD và nút nâng cao: Đồng hồ lớn

    Sử dụng màn hình LCD và nút nâng cao: Đồng hồ lớn
    Sử dụng màn hình LCD và nút nâng cao: Đồng hồ lớn

    Đây là một dự án thú vị sử dụng màn hình LCD và các nút. Chúng tôi sẽ giải quyết các chức năng Đồng hồ thời gian thực và các ký tự tùy chỉnh trên màn hình LCD. Trong hình ở phía dưới, bạn có thể thấy thời gian 7:26:07 tối được hiển thị với số lượng lớn trên màn hình LCD. Mỗi số đang sử dụng lưới 2x2 các ký tự được hiển thị để hiển thị số lớn. Điều này sử dụng một phông chữ ban đầu được viết bởi Xtinus cho dự án XBMC. Các nút được sử dụng để đặt đồng hồ. Trái tăng giờ, Lên tăng phút, Phải chuyển đổi giữa 12 và 24 giờ thời gian và Enter đặt lại giây về 0. Đồng hồ không giữ thời gian tốt vì chúng ta đang sử dụng bộ dao động bên trong rất không chính xác, nhưng chương trình này có thể dễ dàng được thay đổi để sử dụng một tinh thể bên ngoài chính xác hơn nhiều. Hãy xem điều này hoạt động trong video bên dưới. Giải thích về cách mã này hoạt động theo thứ tự, nhưng tôi không có thời gian ngay bây giờ. Hiện tại, hãy kết nối tiêu đề LCD (J31) với PORTD (J4) và tiêu đề nút (J30) với PORTB (J2). Đảm bảo rằng bạn có cả SW1 và SW2 ở vị trí tắt. Kết nối AVR Dragon với cáp USB và cắm đầu kia của cáp đó vào máy tính của bạn. Bật SW2 và lập trình ATmega8 bằng phần mềm lập trình bạn chọn (tệp hex bên dưới; cầu chì bị cháy về cài đặt gốc). điều này trong khi nguồn điện bị tắt.

    Bước 6: Lập trình điện áp cao

    Tôi đã sử dụng Lập trình song song điện áp cao để phục hồi ATtiny2313 mà tôi đã đặt sai cài đặt cầu chì. Tôi cần nó lần thứ hai khi làm việc với hướng dẫn này vì tôi đã vô tình viết cài đặt lfuse mà tôi muốn vào thanh ghi hfuse….. ooops. Lập trình song song điện áp cao là một công cụ tiện dụng để bạn sử dụng! Dưới đây là danh sách các cài đặt jumper của tôi: SỬ DỤNG RỦI RO CỦA RIÊNG BẠN, LOẠI LẬP TRÌNH NÀY CÓ THỂ LÀM HẠI PHẦN CỨNG CỦA BẠN NẾU BẠN KHÔNG BIẾT BẠN ĐANG LÀM GÌ !! Lập trình song song điện áp cao: ATtiny2313 trong socket U3: SW1 - OFFSW2 - ONJ5, J6, J7 - kết nối pin1 và pin2XTAL1 - kết nối pin1 và pin2J16 - Kết nối pin1 và pin22x5 Cáp IDC: PROG_CTRL với PORT D, PROG_DATA đến PORT BA tất cả các jumper khác không được kết nối (J8-J13, J18, J19, J20, J22-J28, J24) Đối với các chip khác, bạn có thể tìm ra các cài đặt bạn cần từ hướng dẫn sử dụng của Atmel cho STK500 của họ.

    Bước 7: Mở rộng ra ngoài bảng

    Mở rộng ra ngoài bảng
    Mở rộng ra ngoài bảng

    Tôi thấy nó khá dễ dàng để giao tiếp với breadboard. Điều này cho phép bạn linh hoạt hơn rất nhiều trong việc tạo mẫu và phát triển mã cùng một lúc. Tôi kết nối cáp ruy-băng với các cổng thích hợp ở một đầu. Mặt khác, tôi sử dụng dây jumper để kết nối dây dẫn ICD thích hợp với bảng mạch.

    Bước 8: Kết luận

    Còn nhiều hơn thế nữa có thể liên quan đến Tài liệu hướng dẫn này. Chỉ tối nay, tôi đã hoàn thành một bộ điều hợp cho phép bạn sử dụng tiêu đề lập trình 6 chân mà không cần tháo con rồng khỏi Dragon Rider. Tôi sẽ cung cấp thông tin về cách tự xây dựng một cái … sắp ra mắt.

    Bước 9: Thêm ISP 6 chân

    Thêm ISP 6 chân
    Thêm ISP 6 chân
    Thêm ISP 6 chân
    Thêm ISP 6 chân
    Thêm ISP 6 chân
    Thêm ISP 6 chân

    Tôi thường xây dựng trong tiêu đề ISP 6 chân cho tất cả các dự án của mình để tôi có thể lập trình lại chip nếu cần và không phải tháo nó ra khỏi bảng dự án. Đáng buồn là, kỵ sĩ rồng không có sẵn tiêu đề ISP 6 chân nhưng tôi đã tìm ra cách làm cho một tiêu đề này có sẵn.

    Cảnh báo!!

    Đây là một vụ hack. Nếu bạn không biết chính xác cách thức hoạt động, đừng làm điều đó

    Bạn đã được cảnh báo, tôi đã tạo bo mạch bộ điều hợp và cầu nhảy 3 chân của riêng mình để cung cấp đầu cắm isp 6 chân. Những gì bạn làm là thiết lập Dragon Rider thành lập trình và vi điều khiển 8 chân. Sử dụng ổ cắm 3 chân Tôi đang nhảy J8 để kết nối chân 1 và 3. Điều này định tuyến tín hiệu đồng hồ đến đầu nối PortB. Sau đó, tôi chạy một cáp jumper từ tiêu đề PortB đến bảng điều hợp của tôi và thì đấy! Có những hình ảnh bên dưới…. làm ơn, làm ơn, xin vui lòng, không làm điều này trừ khi bạn thực sự hiểu những gì bạn đang làm vì bạn có thể làm hỏng AVR Dragon của bạn hoặc tệ hơn nếu bạn làm điều này sai.

    Sơ đồ chân: PortB ISP1 42 13 34 NC5 NC6 57 NC8 NC9 610 2

    Bước 10: Đầu đọc RSS sử dụng kết nối nối tiếp và màn hình LCD

    Đầu đọc RSS sử dụng kết nối nối tiếp và màn hình LCD
    Đầu đọc RSS sử dụng kết nối nối tiếp và màn hình LCD
    Đầu đọc RSS sử dụng kết nối nối tiếp và màn hình LCD
    Đầu đọc RSS sử dụng kết nối nối tiếp và màn hình LCD

    Tôi đang tiếp tục chơi với bảng phát triển này. Lần này, tôi đã dành một phần buổi chiều để phát triển một trình đọc RSS (chủ yếu ở khía cạnh python của mọi thứ). Tôi không nghĩ rằng nó đảm bảo có thể hướng dẫn riêng nên tôi sẽ thêm nó vào đây.

    Phần cứng

    Chúng tôi đang sử dụng Dragon Rider 500 làm bảng phát triển. Điều này cung cấp tất cả phần cứng bạn cần (giả sử bạn có tất cả các bộ bổ trợ). Điều đó đang được nói rằng bạn chắc chắn có thể làm điều này với thiết lập phần cứng của riêng bạn:

    • Bộ vi điều khiển ATmega8 (hoặc bất kỳ bộ vi điều khiển nào có USART và đủ chân cho tất cả các kết nối
    • Một cách để lập trình vi điều khiển (tôi sử dụng AVR Dragon)
    • Chip MAX232 cho các giao tiếp nối tiếp
    • Đầu nối DB9
    • Màn hình LCD HD44780
    • Pha lê (tôi đã sử dụng tinh thể 8MHz)
    • Các loại tụ điện và điện trở

    Dưới đây là một lược đồ, trong Dragon Rider, chúng ta sẽ cần sử dụng một số tính sáng tạo để định tuyến các kết nối. Thông thường Cổng D có thể được kết nối trực tiếp với tiêu đề LCD. Đây không phải là trường hợp ở đây vì USART cần thiết cho kết nối nối tiếp sử dụng PD0 và PD1. Hơn nữa, không thể sử dụng Cổng B vì PB6 và PB7 đang được sử dụng cho tinh thể bên ngoài. Hình dưới đây là giải pháp của tôi cho vấn đề này. Tôi cắm cáp ruy-băng vào đầu cắm cho màn hình LCD, Cổng B và Cổng D, sau đó sử dụng dây jumper để tạo các tuyến thích hợp. Đừng quên nối điện áp và nối đất với tiêu đề LCD.

    Phần mềm

    Phần mềm cho dự án này có hai phần, phần sụn cho bộ vi điều khiển và tập lệnh python để quét các nguồn cấp RSS và gửi chúng qua kết nối nối tiếp. / fleury). Nó mạnh mẽ và ngắn gọn, linh hoạt và dễ thay đổi cho thiết lập phần cứng của bạn. Nếu bạn nhìn vào tệp tiêu đề được đính kèm (lcd.h), bạn sẽ thấy rằng tôi đang chạy ở chế độ 4 bit với Cổng D là các bit dữ liệu và Cổng B là các bit điều khiển.:

    • Sau khi được cấp nguồn, bộ vi điều khiển sẽ hiển thị "RSS Reader" và sau đó đợi dữ liệu nối tiếp.
    • Mỗi byte dữ liệu nối tiếp nhận được làm cho một bộ đệm gồm 16 ký tự dịch chuyển sang trái và thêm byte vào bộ đệm, sau đó hiển thị bộ đệm.
    • Ba lệnh đặc biệt được chấp nhận bởi vi điều khiển: 0x00, 0x01 và 0x02. Đây là màn hình rõ ràng, di chuyển đến dòng 0 và chuyển đến dòng 1 tương ứng.

    Python ScryptI đã viết một tập lệnh pyton để quét dữ liệu RSS và gửi nó qua kết nối nối tiếp. Điều này yêu cầu mô-đun python "pyserial" mà bạn có thể sẽ phải cài đặt trên hệ thống của mình để nó hoạt động. Nguồn cấp dữ liệu RSS có thể được định cấu hình ở đầu tệp pyton. Lưu ý rằng bạn cần nhập tên cho nguồn cấp dữ liệu cũng như url nguồn cấp dữ liệu. Có ba ví dụ ở đó, tôi chắc chắn bạn có thể làm theo những ví dụ đó để có ngữ đoạn thích hợp.

    • Lắp ráp phần cứng
    • Lập trình vi điều khiển (có thể sử dụng dragon_rss.hex nếu bạn không muốn tự biên dịch). Cài đặt cầu chì cho ATmega8 sử dụng tinh thể 8 MHz: lfuse = 0xEF hfuse = 0xD9
    • Cấp nguồn cho Dragon Rider và đảm bảo rằng cáp nối tiếp đã được cắm vào (màn hình LCD sẽ đọc: "RSS Reader")
    • Thực thi chương trình python (python serial_rss.py)
    • Thưởng thức

    Đề xuất: