Thông báo

Collapse
No announcement yet.

Vấn đề rắc rồi với thạc anh ngoài với ATmega16L

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

  • Vấn đề rắc rồi với thạc anh ngoài với ATmega16L

    chào tất cả mọi nguời,mình đang có vấn đề thắc mắc ,xin mọi nguời cho mình biết nguyên nhân nhé
    Mình đang dùng ATmega 16L để tính tốc độ động cơ ĐC,lúc đâu minh dao động RC nội,nhưng thấy mọi ngừoi và trên diễn đàn bảo rằng, nó sẽ chạy ko chính xác,mình fuse lại nó chạy với thạch anh ngoài nhưng khi mình đưa ra mạch chạy của mình ko đuợc,(do khi làm mạch mình để nhầm chân,hix nên phải dùng mạch nạp ngoài),mình dùng mạch nạp STK200/300,lần thứ mín sử dụng con thạch nah 11.0592MHz thì nạp lần đầu và fuse đuợc nhung cho vạo mạch chính của mình thì thấy ko chạy,thế là lật đật hỏi anh M,a bảo nên thay thạch anh trên mạch chính là 4M(lúc đầu mình hàn 8M,2 tụ là 22p).mình cũng làm theo nhưng cũng ko nhận,lại tháo chíp ra ,kiểm tra lại,nạp lại thì lân này lúc thì nó báo nhận chip,lúc thì ko(???),bực quá đi mua con chip khác,nhưng chưa đụng chip vừa mua mà mình vào Read đọc lại fuse thì thấy lần này,tất cả lên 1 trừ bit OCDEN=0(rõ ràn mình để trắng tất cả rồi mới Progam fuse) gọi điện hỏi anh Đ,thì nah ấy bảo mình nên thay thạch anh ở mạch nạp là 8M vì 11.0592 là cao,mình làm theo và nạp lại nhưng vẫn ko được nhưng tại sao lại như thế?,(lúc đấy máy hết tiền nên tit tit),vào nạp con thứ 2,để trắng tất cả thì khi Read lại thấy hiện bảng Read(ở trong External Xtal.doc),cắm vào mạch chính thấy ko chaỵ mà chả thấy có biểu hiện gì,chán ,bỏ đấy,tối về nạp lại vẫn ko được,lại đem con chip thứ 1 ra fuse lại với dao động nội 8M(ko biết có đúng ko,vì em đoc datasheet thấy khai báo CLKSE3..0 là 0100 tức là 8M),thì lại ok,và mình Read fuse kại thấy có bảng sau trong Internal Xtal.doc, cắm vào mạch chính lại thấy chạy
    Vấn đề mình cần hỏi là:
    Nguyên nhân tại sao mình ko dùng thạch anh ngoài đươc
    và Nếu dùng dao đông nội thì cách carlib nó như thế nào để hoạc động chính xác
    Con ATmega 16L có phải có dao động nội lên đến 8M nếu như ta fuse là CLKSE3..0 là 0100
    rất mong ý kiến đóng góp của mọi ngừoi
    Đặc biệt là các anh hoctro89xxx,VNarmy,blackmoon,Sphinx,vutricongbka,. ......cho em ý kiến với
    Attached Files
    Last edited by bk2012; 04-05-2008, 13:14.

  • #2
    Đừng nản chí, ai mới bắt đầu lập trình AVR đều bị mòng mòng với mấy cái fuse bit cả.

    Đây bác ạ, bác cứ làm cho giống, đảm bảo............work.

    Chúc bác chế ngự được mấy em nó.
    Attached Files
    Email: - Mobil: tạm thời ngừng liên lạc 1 thời gian
    Giới thiệu website kiếm tiền trực tuyến & tăng thứ hạng website.

    Comment


    • #3
      To nguyenhaiha

      Nguyên văn bởi nghaiha Xem bài viết
      Đừng nản chí, ai mới bắt đầu lập trình AVR đều bị mòng mòng với mấy cái fuse bit cả.

      Đây bác ạ, bác cứ làm cho giống, đảm bảo............work.

      Chúc bác chế ngự được mấy em nó.
      Cám ơn Hà nhiều,mình đã đọc file.doc mà Hà gửi,và cũng đã xem còn 8515L,chân cẳng thì mình ko biết,nhưng các tính năng thì giống hệt nhau,chỉ khác là 16L có chức năg Jtag Interface ở port C
      Ko biết bạn đã xem file.doc của mình chưa, nhưng mình thấy mình và bạn khai báo ko khác nhau,chỉ khác ở chỗ SUT1 ..0 của hà để 10(tức là Atmel khuyến cáo nên dùng thạc anh ngoài,và chế độ dùng nguồn tăng nhanh)và chỗ BOOTSZ0 và BOOTSZ1 là 00(tức là Hà để cấu hình kích cỡ boot là 1024 word,cái này để làm gì vây hix,ko hiểu) còn của mình là chỉ khác ở chỗ SUT1 ..0 của hà để 11(tức là Atmel khuyến cáo nên dùng thạc anh ngoài,và chế độ dùng nguồn tăng chậm)và chỗ BOOTSZ0 và BOOTSZ1 là 11(tức là mình để cấu hình kích cỡ boot là 128 word)
      Mình nghĩ hai cái khác này ko ảnh hửong đến khi mình dùng thạch anh ngoài cả,nhưng nguyên nhân ở đâu?
      Mà cậu post lên ,cái dao động nôi,tớ biết là khai báo là CLKSE 3...0 là 0001 là 1 M,nhưng tớ gửi lên mà tớ fuse là 0100,tức là dùng 8M,cái này dao động trong của dòng Atmega có ko,hay chỉ có 1 M là max(vậy thì daatasheet họ nói là thừa à????)và cách để carlib nó cho chính xác,nếu H biết,chỉ cho mình với
      Cám ơn Hà nhiều
      Last edited by bk2012; 04-05-2008, 13:15.

      Comment


      • #4
        FUSE External cho TA mình thấy bạn chọn đúng rồi. Vấn đề có lẽ nằm ở cách chọn SUT. Bạn thử chọn SUT như sau: CKSEL0=1 SUT1..0=10
        AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
        Xem thêm tại Online Store ---> Click here
        Mob: 0982.083.106

        Comment


        • #5
          Nguyên văn bởi bk2012 Xem bài viết
          Cám ơn Hà nhiều,mình đã đọc file.doc mà Hà gửi,và cũng đã xem còn 8515L,chân cẳng thì mình ko biết,nhưng các tính năng thì giống hệt nhau,chỉ khác là 16L có chức năg Jtag Interface ở port C
          Ko biết bạn đã xem file.doc của mình chưa, nhưng mình thấy mình và bạn khai báo ko khác nhau,chỉ khác ở chỗ SUT1 ..0 của hà để 10(tức là Atmel khuyến cáo nên dùng thạc anh ngoài,và chế độ dùng nguồn tăng nhanh)và chỗ BOOTSZ0 và BOOTSZ1 là 00(tức là Hà để cấu hình kích cỡ boot là 1024 word,cái này để làm gì vây hix,ko hiểu) còn của mình là chỉ khác ở chỗ SUT1 ..0 của hà để 11(tức là Atmel khuyến cáo nên dùng thạc anh ngoài,và chế độ dùng nguồn tăng chậm)và chỗ BOOTSZ0 và BOOTSZ1 là 11(tức là mình để cấu hình kích cỡ boot là 128 word)
          Mình nghĩ hai cái khác naymko ảnh hửong đến khi mình dùng thạch anh ngoài cả,nhưng nguyên nhân ở đâu?
          Mà cậu post lên ,cái dao đông nôi,tớ biết là khai báo là CLKSE 3...0 là 0001 là 1 M,nhưng tớ gửi lên mà tớ fuse là 0100,tức là dùng 8M,cái này dao động trong của dòng Atmega có ko,hay chỉ có 1 M là max(vậy thì daatasheet họ nói là thừa à????)và cách để carlib nó cho chính xác,nếu H biết,chỉ cho mình với
          Cám ơn Hà nhiều
          Bác cố gắng viết rõ ràng, chứ em đọc cố sức mà khó hiểu hết bác viết gì.

          1. BOOTSZ là cho phần Boot Loader, mình không quan tâm đến cái này làm gì.

          2. SUT là thiết lập thời gian start-up time cho AVR kể từ khi AVR thức giấc khi nó đang ở Power-down hay Power-save mode. Chọn thời gian này đủ lâu là để chắc chắn rằng nguồn dao động sẽ hoạt động ổn định trước khi bất cứ một lệnh nào trong AVR được thực thi. Em thì em cứ chọn lâu nhất có thể được (65ms) nếu không có nhu cầu gì đặc biệt.

          3. Dao đông trong 8MHz cho dòng Atmega là có. Bác set là 0100 là đúng. Chỉ có mặc định lúc xuất xưởng họ để 1MHz. Tuy nhiên theo quan điểm em, từ 4MHz trở lên, nên lắp thạch anh ngoài, không dùng dao động nội để làm gì.

          4. Khi đã xài thạch anh ngoài thì cái file doc em gửi cho bác đã ghi rất rõ cấu hình thạch anh ngoài từ 4MHz đến 16MHz rồi. Bác cứ nhắm mắt đu theo cho lẹ.
          Email: - Mobil: tạm thời ngừng liên lạc 1 thời gian
          Giới thiệu website kiếm tiền trực tuyến & tăng thứ hạng website.

          Comment


          • #6
            To nghaiha

            Trích:'' SUT là thiết lập thời gian start-up time cho AVR kể từ khi AVR thức giấc khi nó đang ở Power-down hay Power-save mode. Chọn thời gian này đủ lâu là để chắc chắn rằng nguồn dao động sẽ hoạt động ổn định trước khi bất cứ một lệnh nào trongAVR được thực thi. Em thì em cứ chọn lâu nhất có thể được (65ms) nếu không có nhu cầu gì đặc biệt."

            Bạn xem lại xem thế nào,mình đọc file.doc của bạn,rõ ràng bạn để CLSE0 là 1,và SUT1...0 la 10 tức là thiêt lập thời gian Start-up time cho AVR kể từ khi AVR thức giấc,nó đang ở Powwer-down hay power-save mode,bạn chọn như thế tức là 4,1ms,thời gian này nhanh=>Hà kiểm tra lại xem ???,,mâu thuẫn với ý của HÀ ở trên
            còn cái mình gửi lên,thì đúng như ý trên của HÀL -)
            Last edited by bk2012; 04-05-2008, 13:16.

            Comment


            • #7
              Nguyên văn bởi bk2012 Xem bài viết
              Trích:'' SUT là thiết lập thời gian start-up time cho AVR kể từ khi AVR thức giấc khi nó đang ở Power-down hay Power-save mode. Chọn thời gian này đủ lâu là để chắc chắn rằng nguồn dao động sẽ hoạt động ổn định trước khi bất cứ một lệnh nào trongAVR được thực thi. Em thì em cứ chọn lâu nhất có thể được (65ms) nếu không có nhu cầu gì đặc biệt."

              Bạn xem lại xem thế nào,mình đọc file.doc của bạn,rõ ràng bạn để CLSE0 là 1,và SUT1...0 la 10 tức là thiêt lập thời gian Start-up time cho AVR kể từ khi AVR thức giấc,nó đang ở Powwer-down hay power-save mode,bạn chọn như thế tức là 4,1ms,thời gian này nhanh=>Hà kiểm tra lại xem ???,,mâu thuẫn với ý của HÀ ở trên
              còn cái mình gửi lên,thì đúng như ý trên của HÀL -)
              Là ý em vậy thôi, chứ nếu set (mặc định) mà thấy nó hoạt động bình thường thì em cũng không để ý đến nó nữa. SUT=10 là mặc định mà.

              The device is shipped with CKSEL = “0001” and SUT = “10”. The default clock source setting is therefore the Internal RC Oscillator with longest start-up time. This default setting ensures that all users can make their desired clock source setting using an In-System or Parallel Programming.
              AVR được xuất xưởng với CKSEL="0001" và SUT = "10". Thiết lập nguồn clock mặc định này là cho chế độ dao động RC nội với thời gian start-up lớn nhất.

              Thế hiện nay bác đã set để AVR của bác chạy được với thạch anh ngoài chưa?
              Email: - Mobil: tạm thời ngừng liên lạc 1 thời gian
              Giới thiệu website kiếm tiền trực tuyến & tăng thứ hạng website.

              Comment


              • #8
                ???

                Mình Set được rồi! Nguyên nhân là chương trình ,mình cứ nghĩ là chương trình viết cho khi dùng dao động trong giống khi dùng thạch anh ngoài,chiều nay mình test thử từng cổng đê hiển thị thì Ok,=>set fuse đúng,ko co lỗi gì cả
                Nhưng vẫn chưa biết sửa chương trình như thế nào cho hợp lý để nó chay cho thạch anh ngoài kết quả theo ý muốn
                Rất cảm ơn Hà và mọi người
                Từ giờ đến lúc ngủ,nếu ko tìm ra lỗi,chắc lại phải post lên nhờ mọi người vậy

                Comment


                • #9
                  Nguyên văn bởi bk2012 Xem bài viết
                  Mình Set được rồi! Nguyên nhân là chương trình ,mình cứ nghĩ là chương trình viết cho khi dùng dao động trong giống khi dùng thạch anh ngoài,chiều nay mình test thử từng cổng đê hiển thị thì Ok,=>set fuse đúng,ko co lỗi gì cả
                  Nhưng vẫn chưa biết sửa chương trình như thế nào cho hợp lý để nó chay cho thạch anh ngoài kết quả theo ý muốn
                  Rất cảm ơn Hà và mọi người
                  Từ giờ đến lúc ngủ,nếu ko tìm ra lỗi,chắc lại phải post lên nhờ mọi người vậy
                  Cố lên nhé, anh không dùng loại L nên để thạch anh 11,0592. Ai dè em lại dùng con 16L.

                  email:mahaco@fpt.vn

                  Comment


                  • #10
                    Nguyên nhân do nhiễu sóng hài hoạc nguồn ko cùng đât

                    Cám ơn anh M,và mọi người
                    em dùng chường trình của đếm xung(rồi tính ra vận tốc sau) và hiển thị lên 2 port,1 port giá trị đặt,1 port giá trị đo từ động cơ về
                    Khi chưa cắm động cơ chạy thì thấy LED vẫn hiển thị bình thường
                    Khi cắm động cơ vào:
                    Lần 1 thì mình dùng 2 nguồn khác nhau(chả là có 2 biến áp,nhưng dòng yếu,động cơ chỉ chạy 1 lúc(20 phút) là sụt áp ngay),thì thấy các LED sáng nhưng được khoảng mấy lần lấy xung về là các LED sáng rực ở 1 trong các hàng,sau đó lại hiển thị ,nhưng số xung hiển thị 1 port thì thấp hơn so với khi quan sa và kết quả soi trên osillo,và đặc biệt sai lệhc rất lớn so với khi dùng dao động nội=>nghi ngờ ngay(có thể là do ko chung đất)=>dùng 1 nguồn
                    và dùng chung đất giữa đất encoder và dất của mạch,thấy số xung hiển thị lên port lớn như mong muốn và có sai lệch nhỏ so với khi dùng dao động nội,nhưng vẫn còn vẫn có hiện tượng là lấy mẫu được mấy lần xung là 1 trong các LED lại sáng rực và lại hiển thi tiếp
                    Hiện tượng sáng rực giữa các Led có phải là do nhiễu khi chạy động cơ(vi khi soi osilo của xung thấy có sóng hài đan xen các Xung) nên nó ảnh hưởng đến tần số quét LED?hay có 1 nguyên nhân khác,tần số quét LED mình dùng là 125Hz,nếu ai biết chỉ cho mình biết với
                    Mai phải dùng nguồn xịn hơn để xem thế nào?
                    Ah,nếu ai đã từng điều khiển động cơ theo phương pháp điều chỉnh điẹn áp phần ứng theo kĩ thuật điều chế độ rộng xung thì cho mình ít kinh nghiệm vơi,để tìm ra hàm PWM như thế nào,cách làm thôi
                    Cám ơn mọi người rất nhiều,

                    Comment


                    • #11
                      bạn có thể post cái mạch lên đây để mọi người tham khảo xem sao! chứ nói chữ ko thì cũng ko thấy được vấn đề.

                      Comment

                      Về tác giả

                      Collapse

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

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

                      Collapse

                      Đang tải...
                      X