Thông báo

Collapse
No announcement yet.

nhờ mọi người chỉ cho cách lập trình hộp thu FAE381-A07

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

  • nhờ mọi người chỉ cho cách lập trình hộp thu FAE381-A07

    Em đang muốn lập trình cho cái này mà không biết làm sao
    trên diễn đàn có ai đã từng làm hay biết cách lập trình cho nó chỉ bảo em với
    nếu ai có code cho em xin tham khảo được không ạ. hoặc có thể để lại cho em

  • #2
    có ai biết chỉ bảo e vs

    Comment


    • #3
      Thì xem datasheet của con PLL trong đó rồi lập trình thôi . Trong đó có mấy con đại loại như LC72131 , LC72137 ... mấy con PLL này cách lập trình đều như nhau cả, giao tiếp serial nên khá dễ !

      --- Mấy cái code , đồ này nó dính đến hàng thương mại ... nên chắc chẳng ai post lên đây "cho" đâu .
      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
        datasheet thì em có đọc rồi, thấy có cái bảng tần số theo giá trị R1-R4 mà chưa rõ là làm sao thôi, vậy mới phải đi hỏi chứ.
        anh làm rồi có thể vd cho em xin 1 đoạn code để lấy được 1 tần số thôi cũng được, từ đó em làm tiếp

        Comment


        • #5
          Nguyên văn bởi huuson0502 Xem bài viết
          datasheet thì em có đọc rồi, thấy có cái bảng tần số theo giá trị R1-R4 mà chưa rõ là làm sao thôi, vậy mới phải đi hỏi chứ.
          anh làm rồi có thể vd cho em xin 1 đoạn code để lấy được 1 tần số thôi cũng được, từ đó em làm tiếp
          Tần số REF thì bạn tự chọn . Lấy ví dụ giờ làm FM có các bước nhảy tần số là 50Khz : 88.05 , 88.10, 88.15 .v.v. thì ref chọn 50/2 = 25Khz

          - theo bảng chọn ta sẽ tìm được giá trị R .
          - tiếp tục ta tính toán tần số VCO từ tần số thu : Chẳng hạn thu đài Hà Nội 90.0 Mhz thì tần số VCO = RF + IF = 90 + 10.7 = 100.7Mhz

          - Từ tần số VCO và REF ta tính được giá trị của bộ chia N : N = VCO / REF /2 = 100.7 Mhz / 25Khz /2 = 2014 . Đưa giá trị này vào IC PLL đúng vị trí đồng nghĩa ta khởi tạo cho PLL điều khiển bộ VCO sinh ra tần số 100.7Mhz ... tần số này đưa vào PLL , qua bộ chia 2 , chia 2014 tạo ra 1 tần số bằng 25Khz ( dúng bằng tần số REF ) nên IC PLL ( LOCK )
          - Có đủ dữ liệu cần thiết thì ta viết giao thức gửi vào IC PLL thôi
          Click image for larger version

Name:	fmpll [1024x768].jpg
Views:	1
Size:	196.2 KB
ID:	1396472

          Xem (Serial Data Input) Structure trong datasheet ta thấy Protocol của nó gồm 32 bit dữ liệu . 8 bit đầu quy định địa chỉ , 18 bits tiếp theo xác lập bộ chia chính , các bit cuối cùng xác lập bộ chia REF.

          --- Cách lập trình giao tiếp SPI , serial thì quá đơn giản rồi :

          CE = 0 ;
          for(i=0; i<8; i++)
          {
          if(address & 0x80) DI =1; else DI=0;
          CLK =1;
          CLK=0;
          address = address<<1;
          }
          for(i=0; i<.......... )
          {
          // làm tương tự
          }

          sau khi đã truyền xong 32 bit vào PLL thì
          CE =1 ; // CHốt dữ liệu
          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


          • #6
            vâng cám ơn anh đã hướng dẫn,

            Comment


            • #7
              Nguyên văn bởi queduong Xem bài viết
              Tần số REF thì bạn tự chọn . Lấy ví dụ giờ làm FM có các bước nhảy tần số là 50Khz : 88.05 , 88.10, 88.15 .v.v. thì ref chọn 50/2 = 25Khz

              - theo bảng chọn ta sẽ tìm được giá trị R .
              - tiếp tục ta tính toán tần số VCO từ tần số thu : Chẳng hạn thu đài Hà Nội 90.0 Mhz thì tần số VCO = RF + IF = 90 + 10.7 = 100.7Mhz

              - Từ tần số VCO và REF ta tính được giá trị của bộ chia N : N = VCO / REF /2 = 100.7 Mhz / 25Khz /2 = 2014 . Đưa giá trị này vào IC PLL đúng vị trí đồng nghĩa ta khởi tạo cho PLL điều khiển bộ VCO sinh ra tần số 100.7Mhz ... tần số này đưa vào PLL , qua bộ chia 2 , chia 2014 tạo ra 1 tần số bằng 25Khz ( dúng bằng tần số REF ) nên IC PLL ( LOCK )
              - Có đủ dữ liệu cần thiết thì ta viết giao thức gửi vào IC PLL thôi
              [ATTACH]88038[/ATTACH]

              Xem (Serial Data Input) Structure trong datasheet ta thấy Protocol của nó gồm 32 bit dữ liệu . 8 bit đầu quy định địa chỉ , 18 bits tiếp theo xác lập bộ chia chính , các bit cuối cùng xác lập bộ chia REF.

              --- Cách lập trình giao tiếp SPI , serial thì quá đơn giản rồi :

              CE = 0 ;
              for(i=0; i<8; i++)
              {
              if(address & 0x80) DI =1; else DI=0;
              CLK =1;
              CLK=0;
              address = address<<1;
              }
              for(i=0; i<.......... )
              {
              // làm tương tự
              }

              sau khi đã truyền xong 32 bit vào PLL thì
              CE =1 ; // CHốt dữ liệu
              em có 1 số chỗ chưa hiểu lắm,
              1. chon bước nhảy là 50khz thì ref = 50/2, sao lại chia cho 2 vậy
              2. trong mục Serial Data Input 8 bit quy định địa chỉ có phải là 00010100. 16bit tiếp theo để thu tần số ( 90MHz = 2014 ) . 8bit cuối là để chon ref gồm SNS, DVS, CTE, XS, R0-R3. có 2 chỗ là CTE và XS là không thấy ghi 0 hay 1 thì mình gửi giá trị nào cũng được phải không anh.
              3. nếu truyền đi 32bit em chia làm 4 lần mỗi lần 8bit . nó có giống như truyền để ghép nối 4 con 74595 không anh nhỉ.

              Comment


              • #8
                Nguyên văn bởi huuson0502 Xem bài viết
                em có 1 số chỗ chưa hiểu lắm,
                1. chon bước nhảy là 50khz thì ref = 50/2, sao lại chia cho 2 vậy
                2. trong mục Serial Data Input 8 bit quy định địa chỉ có phải là 00010100. 16bit tiếp theo để thu tần số ( 90MHz = 2014 ) . 8bit cuối là để chon ref gồm SNS, DVS, CTE, XS, R0-R3. có 2 chỗ là CTE và XS là không thấy ghi 0 hay 1 thì mình gửi giá trị nào cũng được phải không anh.
                3. nếu truyền đi 32bit em chia làm 4 lần mỗi lần 8bit . nó có giống như truyền để ghép nối 4 con 74595 không anh nhỉ.
                1) Xem datasheet . Vref là cái ta tự chọn, chia hay không cũng do ta chọn ( chọn Vref nhỏ tương đương với độ chính xác cao nhưng chậm ( vì nó còn phải dò, tìm, lock ), chọn ngang bằng, cao hơn thì chất lượng bị giảm đi hoặc không thể hoạt động ( do tính toán sai)... ( Có thể chọn ref khác nếu muốn ) ( đương nhiên là không thể lớn hơn bước nhảy được ). Lấy VD ref là 100 Khz, thì bước nhảy không thể là 50Khz được . Vì nó chỉ so sánh với các vi bước là 100 ( Động não suy luận ra là hiểu ).

                2) Xem datasheet . XS= 1 tương ứng với lắp thạch anh cao 7,2 Mhz , 0 = 4,5Mhz CTE = 1: Counter start , CTE = 0: Counter reset sao lại không có ý nghĩa gì ??? CÒn chỗ nào mà không sử dụng hoặc có những lựa chọn người ta sẽ đánh dấu đặc biệt (*) và chú thích ở bên dưới là " don't care " có nghĩa là không quan trọng, lúc đó 1 hay 0 cũng được.

                3) truyền serial shift register thì cũng như 595 thôi nhưng là 32 bits. ( 595 cũng là shift register 8 bits )... Ta không cần quan tâm nó là bao nhiêu bit, cả nghìn bit cũng được, cơ bản chỉ có phương pháp : Enale để mở đường đẩy dữ liệu vào , mỗi lần clock + data thì dữ liệu được xếp vào cái gọi là thanh ghi ở bên trong... ghi xong cả chuỗi hợp lệ ( số bit ) thì chốt cho nó phát để dữ liệu nằm trong đó. ( không hiểu shift register với serial là cái gì thì google thôi - cái này là cơ bản giao thức truyền thông, kỹ thuật số ... thằng nào học ngành điện tử ( viễn thông ) đều được học cả ).
                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


                • #9
                  em đã thử truyền giá trị vào mà nó không nhận được tín hiệu.
                  em truyền 8bit đầu là địa chỉ 00010100
                  16bit tiếp theo là giá trị 07DE ( 2014 ) ứng với tần số 90MHz
                  8 bit cuối là 01011100 thạch anh em xem ở cái hộp thu dùng là 7.2
                  Last edited by huuson0502; 11-07-2014, 21:05.

                  Comment


                  • #10
                    mấy anh cho em hỏi làm sao để xác định được cái tần số IF? đọc datasheet thì nói phải lấy C/GT mà cái C thì làm sao mà mình biết nó đếm được bao nhiêu mà chia!
                    giả sử e muốn thu đài RF 97.8Mhz thì sao mà tính được cái IF để chia?
                    em cám ơn!

                    Comment


                    • #11
                      Nguyên văn bởi thanhpistol Xem bài viết
                      mấy anh cho em hỏi làm sao để xác định được cái tần số IF? đọc datasheet thì nói phải lấy C/GT mà cái C thì làm sao mà mình biết nó đếm được bao nhiêu mà chia!
                      giả sử e muốn thu đài RF 97.8Mhz thì sao mà tính được cái IF để chia?
                      em cám ơn!
                      Tần số IF là cái tần số trung tần ( cái thạch anh lọc trong hộp kênh) ( hay trong các con chip tích hợp có mô tả ). Các tần số IF trong các hộp kênh thu FM thường là 10.7Mhz .
                      Những loại hộp kênh đặc biệt thì đọc tài liệu về hộp kênh.
                      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


                      • #12
                        em đã lập trình như anh nói nhưng toàn nghe đc tiếng ù nên mạo muội lên hỏi anh Quế Dương vài thứ nữa:
                        -thấy datasheet nó sẽ nhận DI khi CLK chuyển từ mức 0 lên 1 phải không anh?nên e đổi 2 dòng code của anh lại.
                        -tSU và tHD >= 0,75us nên em thêm vào hàm delay_us(1) nữa,em dùng ATMEGA16l thạch anh 8Mhz
                        -Khi EN=1 khóa PLL rồi có cần thoát ra khỏi vòng lặp while(1) không? chứ không thì sau 1 vòng lệnh thì MCU cứ nạp DI lại hoài.
                        code e viết thế mà nó cứ kêu bụp bụp hoài không ra tiếng gì cả.mong anh Quế Dương giúp đỡ!
                        em cám ơn anh nhiều! doquangthanh225@gmail.com
                        Attached Files

                        Comment


                        • #13
                          Nguyên văn bởi thanhpistol Xem bài viết
                          em đã lập trình như anh nói nhưng toàn nghe đc tiếng ù nên mạo muội lên hỏi anh Quế Dương vài thứ nữa:
                          -thấy datasheet nó sẽ nhận DI khi CLK chuyển từ mức 0 lên 1 phải không anh?nên e đổi 2 dòng code của anh lại.
                          -tSU và tHD >= 0,75us nên em thêm vào hàm delay_us(1) nữa,em dùng ATMEGA16l thạch anh 8Mhz
                          -Khi EN=1 khóa PLL rồi có cần thoát ra khỏi vòng lặp while(1) không? chứ không thì sau 1 vòng lệnh thì MCU cứ nạp DI lại hoài.
                          code e viết thế mà nó cứ kêu bụp bụp hoài không ra tiếng gì cả.mong anh Quế Dương giúp đỡ!
                          em cám ơn anh nhiều! doquangthanh225@gmail.com
                          Bạn để ý trong Protocol của nó có 2 chế độ CL Normal High và CL Normal Low ... cách viết như thế nào cũng cần phải có (clock ở mức High, khi DI mức high ) thì mới đẩy được dữ liệu vào chip LC72xxx.

                          Về thời gian của các xung : xem mục serial data timing ( loại này thường nhận xung >0,75uS ) ... MCU mà tốc độ nhanh như AVR, ARM ( hoặc có chu kỳ lệnh < 1uS thì cần lưu ý để chèn các Delay cho hợp lý ).
                          --- ( việc chọn Normal High hay low thì đơn giản ... lúc chưa truyền ( chẳng hạn normal Low )

                          CE = 0;
                          DI=0;
                          CL =0;

                          // truyền địa chỉ trước
                          for(i=0; i<8; i++)
                          {
                          if(adds & 0x80) DI=1; else DI=0;
                          Delay_us(1); // Nếu MCU tốc độ thấp >0,75us thì khỏi cần dùng cũng được
                          CL=1; // đưa clock lên cao để đẩy dữ liệu (DI ) vào trong chip LC72xx
                          Delay_us(1);
                          CL=0;
                          Delay_us(1);
                          adds = adds <<1
                          }
                          Delay_us(1);
                          CE =1; // Chốt địa chỉ
                          Delay_us(1); // CE setup time > 0,75uS
                          ///////////////////// truyền tiếp 24 bits data

                          ........................

                          Delay_us(1);
                          CE=0;
                          DI=0;
                          CL=0;


                          ///

                          Thông thường truyền xong thì phải thoát ra khỏi vòng lặp, tránh truyền liên tục ( nếu không cần thiết ) để tránh hiện tượng nổ " lụp bụp " do quá trình MCU chạy gây nhiễu.
                          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


                          • #14
                            code của em mô phỏng nó ra gần giống như datasheet rồi mà nó vẫn chưa thu được anh à! dùng truyền kiểu serial thì cái clock nó không đều nhau do vòng lặp for nên e chuyển sang SPI mà vẫn chưa thu được không biết có phải do phần cứng e nối trực tiếp chân ATMEGA16 vào cổng vào của hộp thu không nữa!mong anh chỉ giáo giúp!e ở tỉnh lẻ không có điều kiện mua con MCU khác để thử nữa.e quá!
                            Attached Files

                            Comment


                            • #15
                              Spi như vậy mà không kiểm soát được thời gian xung thì chẳng bao giờ được. Người ta vẫn nối trực tiếp đó thôi. Clock không đều không quan trọng, quan trọng là xung mức cao của nó đủ để đẩy data ( ở trong datasheet mục timing đó ), tất cả đều lớn hơn 0.75us
                              Last edited by queduong; 09-12-2014, 08:28.
                              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

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X