Thông báo

Collapse
No announcement yet.

[TUT]- Lập trình Flash cho ARM với mạch nạp Wiggler LPT

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • [TUT]- Lập trình Flash cho ARM với mạch nạp Wiggler LPT

    1.Giới thiệu.

    Với những người mớt bắt đầu tìm hiểu về dòng vi điều khiển 32 bit ARM mạch nạp luôn là một vấn đề khá phức tạp. Bài viết dưới đây đề cập đến công cụ nạp Wiggler nổi tiếng và cực kì thông dụng trong cộng đồng những người sử dụng ARM. Hy vọng những kinh nghiệm mà chúng tôi cung cấp hữu ích cho các bạn trong quá trình tìm hiểu, học tập cũng như sử dụng dòng vi điều khiển mạnh mẽ này.

    Wiggler là một mạch nạp ARM dễ chế tạo kết nối với máy tính qua cổng cổng song song, Wiggler có khả năng nạp cho phần lớn các dòng ARM7 thông dụng của Atmel, NXP, TI, Freescale..vv... Hiện nay có một số phần mềm có thể sử dụng với mạch Wiggler như Embest Online Flash Programmer, Flash Programmer, IAR và H-JTAG.

    Trong đó H-JTAG có tích hợp sẵn H-Flasher rất thích hợp để nạp Flash cho các chíp Atmel dòng AT91 và các chíp họ LPC của NXP. Dưới đây là ví dụ hướng dẫn cấu hình và nạp chíp AT91SAM7S256 trên board AT91SAM7S-EB sử dụng phần mềm H-JTAG phiên bản 0.6.2 cùng với mạch nạp Wiggler ARM Programmer, phần cứng đều là các sản phẩm của PNLab Technologies.


    Từ ví dụ này các bạn có thể dễ dàng nắm bắt được cách thức sử dụng H-JTAG và Wiggler với các chíp ARM khác.

    2.Chuẩn bị phần cứng và phần mềm.
    - Trước hết, bạn cài đặt H-JTAG, tải phiên bản mới nhất trên website www.hjtag.com. Thao tác cài đặt phần mềm hoàn toàn cơ bản, bạn không cần thiết lập bất kì thông số nào.

    - Sau khi cài đặt xong phần mềm, kết nối mạch Wiggler với cổng LPT của máy tính, nên sử dụng cáp LPT kéo dài để tiện lợi khi làm việc (chú ý lựa chọn loại cáp tốt, có chống nhiễu và đảm bảo tất cả các chân của cổng LPT đều được kéo dài).

    - Tiến hành cắm Header JTAG của Wiggler vào mạch ARM của bạn (khi thiết kế nên sử dụng chuẩn 20 chân thông dụng).
    - Cấp nguồn cho KIT.
    - Trên máy tính, khởi động phần mềm H-JTAG. Khi khởi động, H-JTAG sẽ tự động kiểm tra loại chíp được kết nối, kết nối thành công sẽ hiện lên thông báo sau:


    Trong trường hợp kết nối có vấn đề, H-JTAG sẽ hiện lên thông báo:


    Khi đó, cần kiểm tra kỹ lại các kết nối, đảm bảo chíp ARM được cấp nguồn. Lưu ý rằng sau khi cài đặt H-JTAG đã mặc định cấu hình tương thích với mạch nạp Wiggler. Không nên sửa chữa gì nếu bạn không am hiểu về các thao tác mình làm.
    Trong trường hợp muốn detect lại chíp sau khi đã bật H-JTAG, vào menu Operations -> Detect Target.

    3. Sử dụng H-Flasher.
    H-Flasher là một công cụ hỗ trợ lập trình Flash đi kèm với H-JTAG, hiện nay H-Flasher chủ yếu hỗ trợ lập trình Flash ngoài là chính và chỉ hỗ trợ lập trình Flash nội cho dòng AT91 của Atmel và LPC của NXP. Ví dụ các bước cấu hình để nạp Flash cho AT91SAM7S256.

    - Khởi động H-Flasher trực tiếp hoặc từ menu của H-JTAG: Flasher -> Start H-Flasher.
    Quá trình cấu hình H-Flasher gồm 4 bước được liệt kê bên tay trái trong ô Program Wizard
    Trong phần Flash Selection, chọn Atmel->AT91SAM7S256.


    - Trong phần Configuration, chọn Flash Start Address bằng 0x100000, là địa chỉ bắt đầu bộ nhớ Flash của chíp AT91SAM7S256.


    - Phần Init Script không cần cài đặt (thao khảo tài liệu USER MANUAL đi kèm H-JTAG để biết công dụng của Init Script).

    - Trong phần Programming, click vào nút Check để H-Flasher kiểm tra định danh chíp và Flash. Kết quả đúng hiển thị như hình dưới.


    - H-Flasher có khả năng nạp các file .HEX và file .BIN, chọn kiểu file trong mục Type. Tiếp đó nhấn vào dấu “…” bên cạnh ô Scr File: để chọn file cần nạp. Chú ý nếu sử dụng kiểu file BIN bạn cần biết chắc địa chỉ bắt đầu của file (thao khảo format của file BIN để biết tại sao lại cần có địa chỉ bắt đầu). Nhập địa chỉ bắt đầu vào ô Dst Addr: đối với kiểu file BIN, nếu bạn nạp file HEX thì không cần quan tâm đến địa chỉ này.
    Nhấn Program, H-Flasher sẽ tiến hành nạp:


    Quá trình nạp thành công sẽ được thông báo:


    Sau khi nạp, Reset ARM trên mạch để kích hoạt chương trình.

    Ngoài khả năng Program, H-Flasher còn hỗ trợ Xóa chíp (Erase), kiểm tra chíp trắng (Blank Check) hoặc đọc về bộ nhớ Flash (Read). Tham khảo USER MANUAL đi kèm H-JTAG để biết thêm thông tin về các chức năng này.


    Chúng tôi sẽ tiếp tục cập nhật các công dụng khác của H-JTAG cũng như mạch nạp Wiggler như tính năng Debug qua RDI, sử dụng Wiggler với trình biên dịch IAR ...
    Last edited by sphinx; 10-07-2008, 02:01.
    PNLab
    Mạch nạp/debug ULink2, Jlink ARM USB
    Mạch nạp AVR, PIC, 8051, MSP430 USB
    Mạch phát triển STM32, ARM9, ARM11
    more...www.pnlabvn.com

  • #2
    Anh sphinx, cai nảy debug được LPC ko,nghe nói nó chỉ support cho GNU thôi đúng không anh! he nếu đại ca kiếm được driver share cho anh em với để anh em làm 1 cai JTAG cho vui!Em tinh làm 1 cai ULINK mà kiếm miết chưa có con IC AN2131Q!vả lại mạch ULINK phức tạp wa hà!mạch Jtag wiggler đơn giản hơn dễ vẽ và dễ ủi!

    Comment


    • #3
      Nguyên văn bởi hbaocr Xem bài viết
      Anh sphinx, cai nảy debug được LPC ko,nghe nói nó chỉ support cho GNU thôi đúng không anh! he nếu đại ca kiếm được driver share cho anh em với để anh em làm 1 cai JTAG cho vui!Em tinh làm 1 cai ULINK mà kiếm miết chưa có con IC AN2131Q!vả lại mạch ULINK phức tạp wa hà!mạch Jtag wiggler đơn giản hơn dễ vẽ và dễ ủi!
      Anh chưa làm việc với dòng LPC nhưng anh nghĩ là debug được, vì anh đã debug AT91SAM STR71x. Em có thể debug trên cả Keil RealView hoặc IAR. Với Keil, em phải sử dụng RDI của H-JTAG, và phải dùng HFlasher để nạp (hoặc nạp bằng 1 cách nào đó trước) rồi mới debug vì Keil nó ko lập trình Flash trước khi Debug.

      Còn với IAR, em có 2 lựa chọn, một là sử dụng OCD Commander đi theo IAR (cái Commander này của macraigor), hai là dùng RDI của H-JTAG. IAR nó luôn nạp chương trình xuống Flash trước khi Debug.

      Theo thử nghiệm của cá nhân anh thì Debug qua RDI của H-JTAG nhanh hơn rất nhiều so với OCD Commander (quá trình khởi động và nạp chương trình xuống Flash).

      Các dòng ARM như LPC hay AT91 đều có Bootloader cho phép lập trình Flash một cách đơn giản sử dụng cổng UART hoặc USB, do đó người dùng ít phải quan tâm đến việc có một công cụ JTAG, tuy nhiên các mạch JTAG không những có khả năng lập trình Flash mà còn có khả năng Debug, rất quan trọng khi làm việc với các bài toán phức tạp trên nền 32 bit.
      Last edited by sphinx; 11-07-2008, 15:36.
      PNLab
      Mạch nạp/debug ULink2, Jlink ARM USB
      Mạch nạp AVR, PIC, 8051, MSP430 USB
      Mạch phát triển STM32, ARM9, ARM11
      more...www.pnlabvn.com

      Comment


      • #4
        Sẵn tiện spinx làm luôn một cái tut hướng dẫn anh em xài cái Xlink luôn đi, cổng LPT thì hơi khó kiếm nên nếu xài được USB thì tốt hơn !

        NVT2
        Tín đồ AVR giáo.

        Comment


        • #5
          hee he,J link và Ulink thi em biết có thể làm tuto được chừ Xlink thi thua!chao thua thiệt sự!chưa sài lần nào nghe lạ wa ah!

          Comment


          • #6
            Nguyên văn bởi hbaocr Xem bài viết
            hee he,J link và Ulink thi em biết có thể làm tuto được chừ Xlink thi thua!chao thua thiệt sự!chưa sài lần nào nghe lạ wa ah!
            Bác này buồn cười, dù biết đó là Ulink clone nhưng Xlink là tên thương mại của người ta bác phải biết tôn trọng một tí chứ !

            Vào website chổ chữ ký của spinx mà xem lại nhé !

            NVT2
            Tín đồ AVR giáo.

            Comment


            • #7
              Đây là mạch JTAG cho ARM từ cổng parallel:

              loại 20pin:


              loại 14pin:


              Ulink: linh kiện khó tìm => SV tự làm là không khả thi. bạn muốn tự làm cái này thì PM tại đây
              Last edited by LoveMCUs; 08-08-2008, 17:56.

              Comment


              • #8
                Mạch nạp jtag

                Ghé thăm luồng này tí! Mạch nạp Jtag mình thấy tốc độ rất cao, mình nạp thủ một file hex 44KB mà chỉ mất 1.5s thôi. Nhưng nếu mọi người cảm thấy linh kiện khó tìm thì cần gì con đệm. KAKA Tui làm mạch nạp này chỉ 4 con điện trở và một cái cổng LPT chỉ mất dưới 25K. Có gì mấy bác chỉ giáo!

                Comment


                • #9
                  Jtag

                  Nguyên văn bởi laiquangtuye Xem bài viết
                  Ghé thăm luồng này tí! Mạch nạp Jtag mình thấy tốc độ rất cao, mình nạp thủ một file hex 44KB mà chỉ mất 1.5s thôi. Nhưng nếu mọi người cảm thấy linh kiện khó tìm thì cần gì con đệm. KAKA Tui làm mạch nạp này chỉ 4 con điện trở và một cái cổng LPT chỉ mất dưới 25K. Có gì mấy bác chỉ giáo!
                  Hi,

                  Chỉ dùng 4 con điện trở & 1 cổng LPT cho 1 cái Jtag chạy ổn định, tui thấy rất hay. Pác có thể post sơ đồ mạch lên để chia sẻ cùng mọi người?!!

                  Chúc zui...

                  ARM WILL BE THE "8051" OF THE 21th CENTURY

                  Comment


                  • #10


                    Tình hình là H-JTAG đã ra tới phiên bản 0.7.0 khá ngon, trong đó hỗ trợ thêm:

                    1. Updated all the flash drivers for NOR flash;
                    2. Fixed a bug for the debugging of CORTEX-M3. This bug may affect
                    the debugging when XPSR is not set appropriately;
                    3. Added the programming supports to all the Cortex-M3 chips from
                    Luminary and ST;
                    4. Added the programming support to STR7 and STR9;
                    5. Added the programming support to XSCALE + NOR FLASH;
                    6. Added the prgrammming support to INTEL NOR FLASH;
                    7. Added the programming support to muti-chip;
                    8. Added the verify button for manual verification;

                    Bây giờ đã có thể sử dụng tốt H-JTAG + Wiggler để nạp cho họ STR7 STR9, AT91SAMLPC2000

                    bà còn xem thêm thông tin và download ở đây: http://www.hjtag.com/forum/viewthrea...extra=page%3D1
                    PNLab
                    Mạch nạp/debug ULink2, Jlink ARM USB
                    Mạch nạp AVR, PIC, 8051, MSP430 USB
                    Mạch phát triển STM32, ARM9, ARM11
                    more...www.pnlabvn.com

                    Comment


                    • #11
                      Hiện nay H-JTAG đã lên tới V0.9.1 hỗ trợ nạp cả CORTEX-M3.
                      Các cải tiến đáng kể:
                      Released new version H-JTG V0.9.1 (Build 20090218)
                      1. Updated the flash ID of AT91SAM7S512;
                      2. Added a new target ID for ARM946E-S;
                      3. Added the programming support to SST39VF3201;
                      4. Added the programming support to EON Nor Flash;
                      5. Updated the flash ID of LPC2387;
                      6. Updated the programming driver for LPC2300 and LPC2400;
                      7. Added the display of current TCK speed in H-JTAG server;
                      8. Fixed a bug in H-Flasher, which may lead to incorrect check of programming addres;
                      9. Added the history record of programming address and source file;
                      10. Included H-Flasher Lite, which is same as H-Flasher but without the support to auto flash download. User now can run two instances with different configuration files.
                      download:
                      Part1: http://www.hjtag.com/forum/attachmen...310&sid=Z3b9cw
                      Part2: http://www.hjtag.com/forum/attachmen...311&sid=Z3b9cw
                      (tải về cùng 1 thư mục rồi giải nén)
                      PNLab
                      Mạch nạp/debug ULink2, Jlink ARM USB
                      Mạch nạp AVR, PIC, 8051, MSP430 USB
                      Mạch phát triển STM32, ARM9, ARM11
                      more...www.pnlabvn.com

                      Comment


                      • #12
                        cai mach nap nay that la don gian ,cac linh kine nay co day o viet nam ma sao anh ma sao anh em bao la khong co
                        co gi sai sot mong anh em chi giao cho
                        Tư vấn thiết kế hệ thống điện-điện tử theo yêu cầu.
                        Tel: 0903 702 417. Email: web:

                        Comment


                        • #13
                          Co bac nao ranh ve arm cho minh hỏi ti. :-)
                          Mình mới làm quen với arm thôi.
                          Tren kit at91sam256 cua PNLab, minh lay tin hieu từ ngõ ra mạch quang trở (bên ngoài) đưa vào chân I/O (PIOA), vi du PA7 thi minh phai setup config de chan PA7 nay la chan Input control. Minh đã đo chan nay trên kit AT91csam256 có điện áp 4.3V nen sợ khi đưa vao nó bị conflict.
                          Bác nào biết xin chỉ dùm mình với. Thanks

                          Comment


                          • #14
                            Nguyên văn bởi nvt2 Xem bài viết
                            Sẵn tiện spinx làm luôn một cái tut hướng dẫn anh em xài cái Xlink luôn đi, cổng LPT thì hơi khó kiếm nên nếu xài được USB thì tốt hơn !

                            NVT2
                            "tut" nghĩa là gì vậy các bác, là tutorial hả, lên diễn đàn gặp từ TUT hoài mà chẳng hiểu nó là gì, ặc ặc mới biết từ này luôn, bó tay.

                            Comment


                            • #15
                              tut là tutorial đó! tui đọc nhiều năm mới hiểu nổi! hướng dẫn cũng đâu có dài lắm đâu? trời ơi!

                              Comment

                              Về tác giả

                              Collapse

                              sphinx Tìm hiểu thêm về sphinx

                              Bài viết mới nhất

                              Collapse

                              Đang tải...
                              X