Thông báo

Collapse
No announcement yet.

Đặt Fuse bit cho Atmega8

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

  • #16
    Nguyên văn bởi phucthinhel Xem bài viết
    STK500 chua chac la ngon dau ban ! Vi vi cai STK500 neu khong la bo xin thi cung tung tung lam !
    Nói vậy là sai rồi...

    Mạch nạp STK500 của TMe hoạt động rất tốt và chính xác. Vì sao? - Một điều đơn giản dễ hiểu nhất là Firmware nạp trong bo mạch chính là file stk500.ebn có đi kèm trong AVR-studio. mỗi khi có version mới thì chỉ cần nạp lại Firmware là có thể ung dung tận hưởng công nghệ mới của ATMEL rùi. ko bao giờ bị tụt hậu...hehe

    Tôi đã test rất nhiều AVR, bất cứ con nào tôi nhìn thấy tôi đều mua và thử không có lỗi nào.

    To phucthinh: sao cứ rao hoài mà chẳng thấy bóng dáng sản phẩm đâu ???

    Comment


    • #17
      Nguyên văn bởi phucthinhel Xem bài viết
      Con cai reset fuse thi moi con co gian do xung khac nhau mot it ! Vi con khac cau truc nua ! Vi byte chu fuse co phan hoi khac nhau .
      ........Mach minh nap rat nhanh to do nap la 57600 lan .
      Hi phucthinhel
      phucthinhel có thể nói rõ hơn về sự khác nhau về giản đồ xung của các AVR có 2 fuse bytes cho mọi người học hỏi không, ngoài ra bạn nói "Mach minh nap rat nhanh toc do nap la 57600 lan" là nhanh hơn so với cái gì ?, tôi cũng chỉ đọc sơ sơ về fuse bytes của mega8 thôi, theo tôi không quá khó như mọi người nghĩ về nó, chỉ vì khi bị Lock 1 con AVR do đặt sai fuse thì ai cũng hoảng hốt nên nhìn vấn đề có nghiêm trọng hơn, chỉ cần nghiên cứu datasheet của nó một chút và làm thử sẽ thấy rất đơn giản, toàn bộ chương trình edit fuse bytes của AVR chỉ đơn giản là set bit rồi delay rồi clear bit ...... !.
      Tôi có dịch lại phần programming fuse bytes trong datasheet của mega8, gởi các bạn tham khảo.
      Thân mến
      TCQuy

      Parallel Programming:
      Để có thể vào mode lập trình kiểu Parallel Programming theo các bước sau:
      1. Cấp điện áp 4.5 - 5.5V cho Mega8 và chờ ít nhất 100µs.
      2. Kéo chân RESET xuống “0” và cấp xung vào XTAL1 ít nhất là 6 chu kỳ.
      3. Set các chân Prog_enable được liệt kê trong bảng 92 tới giá trị logic = “0000” và chờ ít nhất là 100ns.
      4. Cấp điện áp 11.5 ~ 12.5V vào chân RESET.
      Lưu ý là bất kỳ sự thay đổi nào trên chân Prog_enable trong thời gian 100ns sau khi đã cấp nguồn cho chân RESET sẽ làm cho thủ tục vào mode Programming bị lỗi. Ngoài ra lưu ý rằng nếu chân Reset đã bị disabled bởi thiết lập RSTDISBL Fuse hoặc các thiết lập Fuse chọn External Crystal hay External RC trước đó thì không thể áp dụng các thủ tục như trên để vào mode Parallel Programming được mà phải theo các thủ tục như trình bày sau đây:
      1. Set các chân Prog_enable = “0000”.
      2. Cấp nguồn 4.5 ~ 5.5V cho Mega8 đồng thời với 11.5 ~ 12.5V vào chân RESET.
      3. Chờ 100 ns.
      4. Re-program lại các fuses sao cho External Clock được chọn là clock source cho Mega8 (CKSEL3:0 = 0’b0000) và chân RESET được dùng (RSTDISBL=0 unprogrammed). Nếu Lock Bits đã được lập trình trước đó thì phải thực thi lệnh xoá Chip trước khi đưa vào lệnh thay đổi các Fuses.
      5. Thoát khỏi mode Parallel Programming bằng cách ngắt nguồn hoặc đưa chân Reset xuống 0.
      6. Vào lại mode Parallel Programming theo các bước ban đầu.

      Programming the Fuse Low Bits:
      Thủ tục programming các bits của Fuse low như sau:
      Tham khảo thêm Programming the Flash về các thủ tục Load lệnh và Data vào Mega8.
      1. Set XA1, XA0 to “10” cho phép Load lệnh  nạp lệnh “0100 0000” vào port  đưa xung vào chân XTAL1 để thực thi.
      2. Set XA1, XA0 to “01” cho phép Load Data  đưa Data vào port  đưa xung vào chân XTAL1 để thực thi, lưu ý Bit n = “0” là programed và bit n = “1” là unprogramed (Xoá) Fuse bit tương ứng.
      3. Set bit BS1 = “0” và BS2 = “0”.
      4. Đưa mức thấp (Low) vào chân WR và chờ cho đến khi chân RDY/BSY đổi trạng thái từ mức thấp lên mức cao (high).

      Programming the Fuse High Bits:
      Thủ tục programming các bits của Fuse high như sau:
      Tham khảo Programming the Flash về các thủ tục Load lệnh và Data vào Mega8.
      1. Set XA1, XA0 = “10” cho phép Load lệnh, nạp lệnh “0100 0000” vào port  đưa xung vào chân XTAL1 để thực thi.
      2. Set XA1, XA0 = “01” cho phép Load Data  đưa Data vào port  đưa vào chân XTAL1 để thực thi, lưu ý Bit n = “0” là programs và bit n = “1” là unprograms ( Xoá ) Fuse bit tương ứng.
      3. Set bit BS1 = “1” và BS2 = “0” để chọn high data byte.
      4. Đưa mức thấp (Low) vào chân WR và chờ cho đến khi chân RDY/đổi trạng thái từ mức thấp lên mức cao (high).
      5. Set BS1 to “0” để chọn low data byte.

      Comment


      • #18
        Nói chung là nếu các bạn đọc wa datasheet thì sẽ có thể làm được việc nạp con này thôi .Vấn đề ở đây là khi làm không lẽ chỉ làm việc reset fuse cho nó thôi sao ! Còn nhiều việc lắm chứ . Như việc nạp con IC tốc độ nạp , ổn định hay không nữa ... Còn cái tốc độ mình nói 57600 thì nó chĩ là tốc độ giao tiếp RS232 với tốc độ này thì thời gian truyền một byte rất nhanh và lúc này chỉ còn phụ thuộc nhiều vào giản đồ nạp của con MCU .
        Mạch nạp Little Programmer
        MSC-51,AVR,EEPROM ... etc

        Site Fukusei shop :

        Comment


        • #19
          Nguyên văn bởi phucthinhel Xem bài viết
          Vấn đề ở đây là khi làm không lẽ chỉ làm việc reset fuse cho nó thôi sao ! Còn nhiều việc lắm chứ . Như việc nạp con IC tốc độ nạp , ổn định hay không nữa ... Còn cái tốc độ mình nói 57600 thì nó chĩ là tốc độ giao tiếp RS232 với tốc độ này thì thời gian truyền một byte rất nhanh và lúc này chỉ còn phụ thuộc nhiều vào giản đồ nạp của con MCU .
          Hi phucthinhel
          Tôi cũng từng viết một chương trình nạp ở mode parallel cho mega8, nhưng mà chương trình nạp ở mode parallel của tôi cũng không nhanh hơn ( hoặc nhanh hơn một chút thôi ) so với các programmer SPI có đầy trên mạng. Tuy nhiên tôi thấy như vầy, programmer bị khống chế bởi thời gian ghi flash, trong cả 2 mode đều mất khoảng 5ms để ghi 1 byte, trong khi thời gian xung nhịp để load data hoặc lệnh vào AVR chỉ yêu cầu khoảng 250ns, vì vậy dù có cố gắng viết chương trình tối ưu mấy đi nữa thì việc rút ngắn thời gian ghi cho AVR trong mode parallel không đáng kể so với mode SPI, ai cũng nói parallel programmer nạp nhanh hơn nhưng mà nhanh hơn bao nhiêu lần mới là đáng quan tâm đó. Như vậy có nên dùng parallel programmer với phần cứng quá phức tạp, tốn tiền, khi nạp phải tháo chip ra khỏi mạch, nạp xong lại phải gắn vào mạch đề test, cực chẳng đã lỡ set sai Fuse mà không edit trong SPI được thì người ta mới chịu tháo chip ra ngoài để edit lại Fuse bằng cái STK500 quý tộc kia thôi.
          Nhưng làm để nghiên cứu, học hỏi thì lại khác nha, cứ làm sẽ thấy, SPI programmer làm khó hơn Parallel programmer nhiều đó, bởi vì thủ tục load lệnh và data vào AVR phức tạp hơn, nhưng mà càng khó sẽ thấy càng khoái làm hơn.
          OK, lâu lâu ghé qua diễn đàn cho tớ nhiều chuyện một chút nha.

          Thân mến
          TCQuy

          Comment


          • #20
            Cái ISP thì mình nạp được rồi cũng không khó là mấy !
            Mạch nạp Little Programmer
            MSC-51,AVR,EEPROM ... etc

            Site Fukusei shop :

            Comment


            • #21
              Cách nạp và sửa Fuse Bít đây các cậu:
              Sửa lỗi AVR bị treo khi Set Fuse


              email:
              Giá mà mạch điện tử không có nhiễu (noise) thì mình bây giờ đã là ... đại gia

              Comment


              • #22
                mấy bạn cho mình hỏi là at89s52 có chế độ fuse bit không ?

                Comment


                • #23
                  AT89S52 không có chế độ fuse bit, cứ viết chương trình, nạp và chạy thôi.
                  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


                  • #24
                    Các bạn cho mình các fuse bit để ATmega328 chạy thạch anh ngoài 8Mhz bằng Burn-E với. Cảm ơn.

                    Comment

                    Về tác giả

                    Collapse

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

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

                    Collapse

                    Đang tải...
                    X