Thông báo

Collapse
No announcement yet.

sự khó hiểu về nguốn của PIC18F46K22

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

  • sự khó hiểu về nguốn của PIC18F46K22

    chào các bác!

    Tình Huống:
    ++ tình hình là mình đang dùng pic18f46k22. mình cấp nguồn 3v3 vào chân VCC cho pic.( pic này dải hoạt động là từ 2v đến 5v5)
    trên pic mình định nghĩa mấy cổng A1,A2..là cổng vào digital và giao tiếp với ngoại vi 5V ( mức điện áp logic full vào cổng A1,A2 khoảng 4V)
    thì lập tức chân VCC của PIC cũng lên 3v8.
    khi mình gỡ ngoại vi ra thì điện áp trên chân VCC của PIC lại trở về 3v3.
    ++ cũng nguyên mạch đó mình tes với PIC18F4620 thì dù có cấp 5v vào A1,A2 thì điện áp ở chân VCC của pic vẫn là 3v3.

    Giải Pháp:
    + bác nào có giải pháp để dis chức năng tự nâng áp của pic lên khi áp cấp vào các PIN (IN digital) lớn hơn áp cấp vào VCC của pic thì cho mình cách giải quyết với.
    p/s: mình nghĩ là PIC18F46K22 có thanh ghi nào đó chứ bít dis chức năng đó nhưng tìm mãi ko ra

  • #2
    ka này quá khó và nan giải

    Comment


    • #3
      Hạ giao tiếp từ 5V xuống 3,3 V hoặc thấp hơn ( dùng điện trở phân áp chẳng hạn ) ... thì nó hết lên thôi mà chẳng phải tác động thanh ghi nào cả .

      --- Nếu bạn không cần ổn định ở 3,3V thì 3,8V mà không cháy hỏng các thiết bị , mạch khác thì cũng vẫn được chứ sao ?

      --- Một trường hợp khác bị dâng nguồn có thể lý do tồn tại dao động trong mạch khiến mạch đo không chính xác ... cái này thì cần phải mắc tụ lọc , làm nguồn tốt , thậm chí vẽ mạch tốt để không bị phát sinh dao động ( kiểu Buck )
      Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

      Comment


      • #4
        Lõi vi xử lý bên trong con chip PIC chạy ở điện áp thấp cỡ 1,8V. Khi cấp điện áp 3,3 hay 3,8 hay 5V gì gì thì thực tế nó vẫn phải qua LDO nội mới tới lõi vi xử lý. Thêm nữa, bất kỳ chân I/O nào của PIC cũng có diode nối tới chân Vcc. Vậy thì khi cấp điện áp Vio > Vcc thì đương nhiên Vcc bị kéo cao lên theo, điều này rất bình thường. Trên mạng có nhiều ông đã từng thử cấp nguồn cho PIC thông qua chân I/O.

        Kiểu gì thì kiểu, nếu điện áp tại chân I/O nhỏ hơn 6,4V (mặc dù nó chạy tối đa 5,5V) và dòng hoạt động dưới 20mA thì PIC chính hãng còn lâu mới hỏng.
        Phần mềm tự do hoặc không dùng máy tính nữa !.

        Comment


        • #5
          Nguyên nhân là do clamp-diode ở chân cổng (cặp diode nối từ GND đến Pin và từ Pin đến VDD - dùng đồng hồ để đo lại).
          Việc giao tiếp giữa chip 3V3 và ngoại vi 5V chỉ thực hiện được với các chân 5V-tolerant, hoặc có IC đệm mức, hoặc các biện pháp khác như bác queduong nói.

          Comment


          • #6
            cám ơn bác queduong đã trả lời em nhưng em đã test thử bằng con pic 18f4620 thì ko bị hiện tượng đó => mạch em layout là ổn
            bởi vì đã thành mạch rùi lên ko thể thêm bớp để phân áp xuống 3v3 được nữa nó mất thẩm mỹ.
            vì pic chạy từ 2v đến 5v5 lên nó vẫn chạy bình thường , nhưng em muốn hiểu rõ và muốn cố định là điện áp 3v3 sau này còn nhiều việc dùng đến. chứ mình cấp 3v3 mà đưa đồng hồ vào đo lại lên 3v8 thì hơi kỳ cục
            hy vọng tìm được đúng bệnh và nguyên nhân để còn kịp thời sửa chữa
            cám ơn bác !
            Nguyên văn bởi octo Xem bài viết
            chào các bác!

            Tình Huống:
            ++ tình hình là mình đang dùng pic18f46k22. mình cấp nguồn 3v3 vào chân VCC cho pic.( pic này dải hoạt động là từ 2v đến 5v5)
            trên pic mình định nghĩa mấy cổng A1,A2..là cổng vào digital và giao tiếp với ngoại vi 5V ( mức điện áp logic full vào cổng A1,A2 khoảng 4V)
            thì lập tức chân VCC của PIC cũng lên 3v8.
            khi mình gỡ ngoại vi ra thì điện áp trên chân VCC của PIC lại trở về 3v3.
            ++ cũng nguyên mạch đó mình tes với PIC18F4620 thì dù có cấp 5v vào A1,A2 thì điện áp ở chân VCC của pic vẫn là 3v3.

            Giải Pháp:
            + bác nào có giải pháp để dis chức năng tự nâng áp của pic lên khi áp cấp vào các PIN (IN digital) lớn hơn áp cấp vào VCC của pic thì cho mình cách giải quyết với.
            p/s: mình nghĩ là PIC18F46K22 có thanh ghi nào đó chứ bít dis chức năng đó nhưng tìm mãi ko ra

            Comment


            • #7
              bác bqviet : nếu như vậy thì ko có cách nào cố định điện áp thấp cho pic à? chẳng nhẽ lúc nào cũng phải chạy pic với điện áp 5v?
              híc nếu như thế rất chi là bất tiện.vì khi đo adc mà điện áp của PIC ko cố định thì sẽ sai tóe loe.
              em nghĩ nó có cách nào đó để giữ điện áp vdd của pic là cố định chứ.
              p/s: em đã thử pic8f4620 thì vô tư điện áp PIC luôn cố định bằng điện áp cấp vào VDD mặc dù VIO =5v

              Nguyên văn bởi bqviet Xem bài viết
              Lõi vi xử lý bên trong con chip PIC chạy ở điện áp thấp cỡ 1,8V. Khi cấp điện áp 3,3 hay 3,8 hay 5V gì gì thì thực tế nó vẫn phải qua LDO nội mới tới lõi vi xử lý. Thêm nữa, bất kỳ chân I/O nào của PIC cũng có diode nối tới chân Vcc. Vậy thì khi cấp điện áp Vio > Vcc thì đương nhiên Vcc bị kéo cao lên theo, điều này rất bình thường. Trên mạng có nhiều ông đã từng thử cấp nguồn cho PIC thông qua chân I/O.

              Kiểu gì thì kiểu, nếu điện áp tại chân I/O nhỏ hơn 6,4V (mặc dù nó chạy tối đa 5,5V) và dòng hoạt động dưới 20mA thì PIC chính hãng còn lâu mới hỏng.

              Comment


              • #8
                Ai lại đi lấy Vcc để làm điện áp tham chiếu cho ADC bao giờ. PIC18F46K22 có bộ FVR tạo điện áp chuẩn, không thay đổi theo Vcc, thay đổi rất rất ít theo nhiệt độ. Dùng FVR để cấp Vref cho ADC và DAC mới chuẩn chứ. Cái 5V nguồn "cố định" là đo bằng đồng hồ thường, thực tế nó trồi sụt đáng kể trong quá trình hoạt động. Chỉ cần nố trồi sụt độ 0,5% (rất nhỏ so với tiêu chuẩn của nguồn) thì ADC 10 bit về mặt hiệu dụng chỉ còn 8 bit có ý nghĩa. Trong quá trình hoạt động, Vcc trồi sụt (do đóng cắt tải nặng, do nhiễu, do chính nguồn cấp ...) vài % là chuyện bình thường.
                Phần mềm tự do hoặc không dùng máy tính nữa !.

                Comment


                • #9
                  chưa bao giờ dùng FVR . từ trước đến giờ toàn dùng VDD và GND thui. nên mỗi khi dùng adc là lại lo lơm lớp sụt về VDD ko ôn định dẫn đến đo sai tóe loe.chắc phải đổi mới tư duy 1 chút thui. Nếu thành công thì có lẽ đây là giải pháp hay cho vấn đề của mình.
                  cám ơn các bác nhiều!

                  Comment


                  • #10
                    các bác cho hỏi cách ráp mạch khi dùng bộ FVR.
                    ví dụ: với lm35 khi dùng VDD và GND để tham chiếu thì chân 1: nối GND, chân 2: out,chân 3: nối vdd.
                    vậy khi dùng bộ FVR thì cách mắc như nào bác nhỉ?( có phải bỏ bớt chân nào ko?) và chân 2 OUT có thể nối vào chân analog bất kỳ ko? hay phải nối vào chân analog đặc biệt nào?
                    thank các bác!
                    Last edited by octo; 18-04-2014, 00:40.

                    Comment


                    • #11
                      bác nào chỉ em các cấu hình và cách đấu nối pic18F46K22 với lm35 sử dụng chức năng (Fixed Voltage Reference ) với.
                      em sử dụng trình dịch c18
                      thank các bác!
                      Last edited by octo; 18-04-2014, 12:35.

                      Comment


                      • #12
                        hic. mình đã cấu hình như datasheet rùi mà ko sử dụng được FRV là sao?
                        +phần cứng:Click image for larger version

Name:	AAAA.jpg
Views:	1
Size:	151.8 KB
ID:	1394792
                        +phần mềm:

                        unsigned int temp;
                        void main()
                        {
                        ANSELA=0;
                        ANSELB=0;
                        ANSELC=0;
                        ANSELD=0;
                        ANSELE=0;
                        TRISAbits.TRISA0=1;//DAU VAO LM35
                        ANSELAbits.ANSA0=1;

                        REFCON0bits.FVRS1=1;
                        VREFCON0bits.FVRS0=0;// fix deian ap tham chieu =2.048

                        VREFCON0bits.FVREN =1;
                        while(!VREFCON0bits.FVRST);// Wait for FVR to be stable

                        ADCON2bits.ADCS2=0;
                        ADCON2bits.ADCS1=1;
                        ADCON2bits.ADCS0=1;

                        ADCON1bits.PVCFG1=1;//FVR BUF2
                        ADCON1bits.PVCFG0=0;//

                        ADCON1bits.NVCFG1=0;//gnd
                        ADCON1bits.NVCFG0=0;//gnd

                        ADCON2bits.ADFM=1;// Result Right justified

                        ADCON0bits.ADON=1;// A/D Converter module is enabled

                        //----chon AN0 //
                        ADCON0bits.CHS0=0;
                        ADCON0bits.CHS1=0;
                        ADCON0bits.CHS2=0;
                        ADCON0bits.CHS3=0;
                        ADCON0bits.CHS4=0;
                        while(1)
                        {
                        DelayMs(500);
                        ADCON0bits.GO_DONE=1;
                        while(ADCON0bits.GO_DONE);
                        temp=(ADRESH<<8)|ADRESL;
                        //--hien thi temp--//
                        }
                        }
                        ++Khi mình thay đỏi điện áp cấp vào PIC từ 3v3 đến 5V thì (temp) cũng hiển thị khác nhau. ( trong khi đó mình fix điện áp tham chiếu là 2.048 rùi thì dù VDD cấp vào pic có là bao nhiêu đi nữa thì kết quả (temp) luôn ko đổi chứ nhỉ?
                        bác nào có kinh nghiệm góp ý với

                        Comment

                        Về tác giả

                        Collapse

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

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

                        Collapse

                        Đang tải...
                        X