Thông báo

Collapse
No announcement yet.

Giới thiệu kit phát triển FRDM-KL46Z, một kit phát triên arm rất đáng để tìm hiểu.

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

  • #16
    Xin lỗi vì hơi offtopic nhưng có cách nào để tìm datasheet cho 1 part MCU của freescale nhanh hơn ko?
    Mình vào tìm documents 1 part của K22_120 family thì ra list docs của family. Mình đoán nó chia doc theo family nhưng để tìm cái family chứa part thì cũng ko biết cách nào cả. Không lẽ phải mò từng doc để xem part. Ở cái list datasheet nó ra một dọc documents cái nào cũng có tiêu đề không tương tự partname, description thì giống nhau, ở feature documents cũng thế.
    Last edited by datltq; 13-04-2014, 23:23. Lý do: typo

    Comment


    • #17
      Thông thường datasheet của dòng Kinetis chia theo Family + Package + Frequency.
      Ví dụ: K22P121M120SF5 = Family K22 + Package 121 pins + Frequency 120MHz (Dành cho tất cả các con K22, chạy được 120MHz và có 121 chân)

      Tuy nhiên, gần đây có thêm một kiểu datasheet khác chia theo dung lượng của flash.
      Ví dụ: K22P121M120SF7, Kinetis K22F 512KB Flash - Data sheet (Dành cho tất cả các con K22, chạy được ở 120MHz và có 512k flash). Trong trường hợp này bạn phải đọc phần mô tả mới biết được là file đó cho thể loại có bao nhiêu flash.

      Comment


      • #18
        Nguyên văn bởi Elenor Xem bài viết
        Thông thường datasheet của dòng Kinetis chia theo Family + Package + Frequency.
        Ví dụ: K22P121M120SF5 = Family K22 + Package 121 pins + Frequency 120MHz (Dành cho tất cả các con K22, chạy được 120MHz và có 121 chân)

        Tuy nhiên, gần đây có thêm một kiểu datasheet khác chia theo dung lượng của flash.
        Ví dụ: K22P121M120SF7, Kinetis K22F 512KB Flash - Data sheet (Dành cho tất cả các con K22, chạy được ở 120MHz và có 512k flash). Trong trường hợp này bạn phải đọc phần mô tả mới biết được là file đó cho thể loại có bao nhiêu flash.
        Nghe có vẻ có lí hơn rồi. Cảm ơn bác Elenor. Tuy nhiên vẫn còn tồn tại khó khăn gây mất thời gian nhưng để tránh loãng luồng mình xin không thảo luận tiếp.

        Comment


        • #19
          Ví dụ muốn tìm datasheet của chip trên ki FRDMKL46Z thì có thể làm như sau:
          1, vào trang chủ freescale: Freescale Semiconductor | Embedded Processing Solutions
          2, mcu trên kit FRDMKL46Z là MKL46Z256VLL4, type tên chip vào ô search như hình rồi enter
          Click image for larger version

Name:	5.png
Views:	1
Size:	184.8 KB
ID:	1394653
          3, kết quả search như hình,
          Click image for larger version

Name:	2.png
Views:	1
Size:	57.5 KB
ID:	1394650
          4, kick vào kết quả khoanh đỏ sẽ nhảy ra một trang khác. trang này hiển thị một bảng có nhiều cột, chỉ cần quan tâm cột "Datasheet/ Part Data" thôi. kick vào hình file pdf như hình dưới để download tài liệu.
          Click image for larger version

Name:	4.png
Views:	1
Size:	17.9 KB
ID:	1394651
          5, tuy nhiên đó là datasheet tài liệu này chỉ nói sơ qua về chip MKL46Z256VLL4. mọi người muốn có tài liệu chi tiết hơn thì kick vào kết quả khoanh đỏ như hình để download. tài liệu này là Reference Manual, trong RM sẽ nói chi tiết về các module, có trong chip. C các chip của freescale đều có tài liệu RM, cung cấp gần như đầy đủ mọi thông tin về chip.
          Click image for larger version

Name:	3.png
Views:	1
Size:	58.2 KB
ID:	1394652
          Last edited by hoasua_2005; 15-04-2014, 01:24.

          Comment


          • #20
            Đang ở hội thảo dòng chíp này Freescale SOFITEL SAIGONPALA, thấy giới thiệu ứng dụng wá trời và có cả demo kit này. Nhưng không biết cuối buổi có cho mình 1 cái kit như TUT này không nữa.

            Email:
            Tel: 0983.497.310

            Comment


            • #21
              hehehee, có thể có đấy. bác ra hà nội chắc chắn em có thể cho bác mượn.
              Nguyên văn bởi tienhuypro Xem bài viết
              Đang ở hội thảo dòng chíp này Freescale SOFITEL SAIGONPALA, thấy giới thiệu ứng dụng wá trời và có cả demo kit này. Nhưng không biết cuối buổi có cho mình 1 cái kit như TUT này không nữa.

              Comment


              • #22
                Hi all.
                Đây là demo ADC light sensor trên kit FRDM-KL46Z.
                Hoạt động đơn giản: đọc giá trị của light sensor dùng ADC kênh A3, sau đó in giá trị ra terminal.
                Link dowload: https://drive.google.com/file/d/0B0Q...it?usp=sharing

                Mình comment giải thích một số dòng lệnh. Mọi người không hiểu có thể post câu hỏi lên đây.
                To sv UET, các em tự đọc module ADC, không hiểu chỗ nào anh sẽ giải đáp giúp.
                Thanks.
                Last edited by hoasua_2005; 13-05-2014, 00:55.

                Comment


                • #23
                  Nguyên văn bởi hoangdai Xem bài viết
                  Con nnày ko biết hơn gì mấy con của ST và TI ko? Bác nào cho cái đánh giá tổng quan cái nhỉ? So sáng cùng phân khúc thôi nhé thì lại cãi nhau tới bến =))
                  Hi hoangdai.
                  Em chưa dùng nhiều ST và TI nên chưa có đánh giá hết các mặt, đây là một chút so sánh dựa trên giá bán của chip trên trang digitkey.com. Em tìm 3 con chip có giá tương đương nhau để so sánh, có gì thiếu xót các bác bổ xung nhé. Ngoài ra còn có post #13 rất chất lượng. Thanks.



                  Các link tham khảo:
                  TI TM4C1231D5PMTR
                  FSL MKL25Z128VFT4
                  ST STM32F100C6T6B

                  Comment


                  • #24
                    Nguyên văn bởi hoasua_2005 Xem bài viết
                    Hi all.
                    Hôm nay mình xin được tiếp tục demo và hướng dẫn sử dụng kit FRDMKL46Z. Lần này sẽ có thêm bài tập nhỏ.
                    Demo hôm nay về module usb, cụ thể mình sẽ share full code example usb hid device.

                    đầu tiên mọi người down code ở link https://doc-0g-34-docs.googleusercon...626&e=download

                    Và sau đó làm theo video ạ.



                    Bài tập là: hiện tại con chuột đang vẽ ra hình vuông trong paint hãy viết code để con chuột vẽ ra chữ "điện tử việt nam". Ai code được hãy share trong luồng này cho mọi người nhé.

                    Thanks
                    Mình sửa lại link: https://drive.google.com/file/d/0B0Q...it?usp=sharing

                    Comment


                    • #25
                      một số ADC applicationm note
                      http://cache.freescale.com/files/32b...ote/AN3827.pdf
                      http://cache.freescale.com/files/mic...ote/AN4373.pdf

                      Comment


                      • #26
                        Hi all.
                        DEMO đọc adc từ light sensor hiển thị lên terminal và sLCD (giải bt UET).
                        Link: https://drive.google.com/file/d/0B0Q...it?usp=sharing

                        Thanks

                        Comment


                        • #27
                          Hi all.
                          Tiếp tục chương trình. Hôm nay xin phép bàn về clock của chip nhé. Clock giống như trái tim của chip, trái tim này đập 96 triệu lần mỗi giây (KL46 tối đa 100MHz).
                          Đầu tiên hãy xem "Chapter 5: Clock Distribution". Ở chương này tạm thời chỉ cần quan tâm "Figure 5-1. Clocking diagram"

                          Click image for larger version

Name:	KL46-F5-1.png
Views:	1
Size:	92.6 KB
ID:	1395955

                          Trên hình mọi người thấy có 5 phần có mầu nền khác nhau tương ứng với 5 module:
                          - MCG
                          - SIM
                          - System Oscillator
                          - PMC
                          - RTC

                          Phần 1: MCG - Multipurpose Clock Generator
                          Feature mọi người tự đọc trong RM nhé. Đại loại từ 2 nguồn clock IRC và EXT qua MCG đưa ra các nguồn clock: MCGIRCLK, MCGOUTCLK, MCGFLLCLK, MCGFFCLK, MCGPLLCLK

                          Mọi người xem chương "Chapter 24: Multipurpose Clock Generator (MCG)" trong RM. Hình 24
                          Click image for larger version

Name:	KL46-F24-1.png
Views:	1
Size:	144.1 KB
ID:	1395956

                          Hình này cho biết luồng đi của clock trong MCG, rất quan trọng khi config MCG. Ai đã từng xem qua clock của STM32 rồi thì thấy clock của MKL46Z256 lằng nhẵng vãi.

                          Thêm một hình cuối cùng cần phải xem "Figure 24-16. MCG mode state diagram"


                          Click image for larger version

Name:	KL46-F24-16.png
Views:	1
Size:	59.1 KB
ID:	1395957

                          Thế đã, mai tiếp tục nhé.

                          Comment


                          • #28
                            Chào bạn Hoa sữa,

                            Cảm ơn bạn đã chia sẽ, mình đã xem qua user manual của KL05Z nên mình cũng có bổ sung vài ý sau:

                            Các module trong ARM-cortex M0 of Freescale thí nó có nguồn xung clock riêng.( diều này giúp tiết kiếm năng lượng, muốn module nào hoạt động thì enable xung clock của module tương ứng)

                            Để cho chip hoạt động thì cần phải cấu hình clock. các bạn để ý thấy những cái chữ ngoài cùng của màu xanh khu vực module SIM , như clock cho Core, bus, peripheral ( UART,ADC..) để làm điều này chúng ta cần phải cấu hình cho mudule sim. công việc này giông như " mở van" clock cho hệ thống.

                            ví dụ : SIM_SCGC4 |= SIM_SCGC4_UART0_MASK; // Enable UART clock.

                            Nhưng để làm được điều này cần phải cấu hình MCG module để tạo ra xung nguồn như MCGIRCLK, MCGOUTCLK,MCGFLLCLK...cần phải cấu hình các thanh ghi thuộc MCG module.

                            Ở chế độ mặc định của nó là chế độ FEI ( FLL engaged internal )_FLL (frequency loop lock_các tra google để hiẻu về cái này nếu chưa biết ). tùy thuộc vào xung bạn muốn sử dụng có tần số bao nhiêu bạn sẽ cấu hình trong MCG để chuyển sang FEE, hay FBI ....

                            Tóm lại: chỉ cần hiểu mấy cái hình của mà Hoa sữa đã chia sẽ, để sữ dụng code mầu. Còn muốn lẹ nữa thì các bạn chuyển sang nghiên cứu PE, một cách tiếp cận rất là nhanh, nhưng lúc đó ARM đối với bạn là " Black box" . chỉ đùa thôi chứ nhiều chuyên gia vẫn dùng cách này.

                            Nếu có gì thiếu sót mong các bạn bổ xung, mình cũng chỉ mới tiếp cận ARM thôi.

                            thân chào,
                            Minh.

                            Comment


                            • #29
                              Nguyên văn bởi toinhatminh Xem bài viết
                              Chào bạn Hoa sữa,

                              Cảm ơn bạn đã chia sẽ, mình đã xem qua user manual của KL05Z nên mình cũng có bổ sung vài ý sau:

                              Các module trong ARM-cortex M0 of Freescale thí nó có nguồn xung clock riêng.( diều này giúp tiết kiếm năng lượng, muốn module nào hoạt động thì enable xung clock của module tương ứng)

                              Để cho chip hoạt động thì cần phải cấu hình clock. các bạn để ý thấy những cái chữ ngoài cùng của màu xanh khu vực module SIM , như clock cho Core, bus, peripheral ( UART,ADC..) để làm điều này chúng ta cần phải cấu hình cho mudule sim. công việc này giông như " mở van" clock cho hệ thống.

                              ví dụ : SIM_SCGC4 |= SIM_SCGC4_UART0_MASK; // Enable UART clock.

                              Nhưng để làm được điều này cần phải cấu hình MCG module để tạo ra xung nguồn như MCGIRCLK, MCGOUTCLK,MCGFLLCLK...cần phải cấu hình các thanh ghi thuộc MCG module.

                              Ở chế độ mặc định của nó là chế độ FEI ( FLL engaged internal )_FLL (frequency loop lock_các tra google để hiẻu về cái này nếu chưa biết ). tùy thuộc vào xung bạn muốn sử dụng có tần số bao nhiêu bạn sẽ cấu hình trong MCG để chuyển sang FEE, hay FBI ....

                              Tóm lại: chỉ cần hiểu mấy cái hình của mà Hoa sữa đã chia sẽ, để sữ dụng code mầu. Còn muốn lẹ nữa thì các bạn chuyển sang nghiên cứu PE, một cách tiếp cận rất là nhanh, nhưng lúc đó ARM đối với bạn là " Black box" . chỉ đùa thôi chứ nhiều chuyên gia vẫn dùng cách này.

                              Nếu có gì thiếu sót mong các bạn bổ xung, mình cũng chỉ mới tiếp cận ARM thôi.

                              thân chào,
                              Minh.
                              Hi. Thanks đã quan tâm.
                              Chắc bạn cũng có thời gian đọc RM chip này rồi.
                              PE (processor expert) thiết kế để giúp người dùng chip có thể đi nhanh vào ứng dụng mà không cần phải quan tâm quá nhiều đến từng thanh ghi của chip. Tuy nhiên theo mình nghĩ nó hợp với người dùng đã có hiểu biết tương đối về chip, với sinh viên thì not recommend.

                              Tiếp tục focus vào MCG.

                              Đây là sơ đồ tổng thể luồng clock từ EXTAL đến Peripheral
                              Click image for larger version

Name:	1-1.png
Views:	1
Size:	10.5 KB
ID:	1396139

                              MCG hoạt động trong các chế độ sau:
                              - FEI
                              - FEE
                              - FBI
                              - BLPI
                              - BLPE
                              - FBE
                              - PBE
                              - PEE
                              Quy luật đặt tên:
                              - chữ F đầu: MCGOUTCLK từ FLL
                              - chữ E giữa: engaged sử dụng cho FLL/PLL cho MCGOUTCLK
                              - chữ B giữa hoặc đầu: bypass không sử dụng FLL/PLL cho MCGOUTCLK
                              - chữ I cuối : sử dụng internal clock
                              - chữ E cuối: sử dụng External clock
                              - chữ L giữa : Low-power sử dụng trong low power mode
                              - chữ P đầu: MCGOUTCLK từ PLL

                              VD:
                              FBI: sử dụng bộ nhân tần FLL, clock lấy từ internal clock, MCGOUTCLK lấy từ internal clock.
                              BLPE: nhân tần PLL, low power mode, External clock, MCGOUTCLK lấy từ external clock.

                              Quay trở lại bài trước Hình 24 tất cả những gì cần làm với MCG gói gọn trong hình vẽ này. Từ MCG cho ra 5 clock sources:
                              - MCGIRCLK : lấy trực tiếp từ Internal clock
                              - MCGOUTCLK: lấy từ FLL/PLL/External clock/Internal clock đây là nguồn clock quan trọng nhất
                              - MCGFLLCLK: lấy từ FLL
                              - MCGFFCLK: lấy từ External clock qua divider hoặc Internal clock
                              - MCGPLLCLK: lấy từ PLL

                              Chúng ta sẽ focus vào MCGOUTCLK.

                              Ví dụ đầu tiên. Config để MCGOUTCLK = 48MHz, FEI mode.
                              Code:
                                  // set a safe value for divider
                                  SIM->CLKDIV1 |= SIM_CLKDIV1_OUTDIV4_MASK | SIM_CLKDIV1_OUTDIV1_MASK;
                                  
                                  MCG->C1 |= MCG_C1_IREFS_MASK; // Internal clock (32.768kHz) for FLL
                                  //MCG->C2 &= ~MCG_C2_RANGE0_MASK; // Low frequency range selected for the crystal oscillator
                                  MCG->C4 |= MCG_C4_DMX32_MASK | MCG_C4_DRST_DRS(1);// 32.768 * 1464 = 47972.352kHz ~ 48MHz
                                  
                                  MCG->C1 &= ~MCG_C1_CLKS_MASK; // Output of FLL is selected for MCGOUTCLK
                              
                                  while((MCG->S & MCG_S_IREFST_MASK) == 0); // wait for Internal clock is selected
                                  while((MCG->S & MCG_S_CLKST_MASK) != 0); // wait for FLL is selected
                              
                                  SIM->CLKDIV1 = SIM_CLKDIV1_OUTDIV1(1 - 1) |  // core/system clock = MCGOUTCLK / 1 = 48 / 1 = 48MHz
                                                 SIM_CLKDIV1_OUTDIV4(2 - 1);   // flash/bus clock = core/system / 2 = 24MHz
                              Nhược điểm của mode này:
                              - Dùng internal clock không ổn định
                              - Bộ FLL cho tần số không chính xác 48MHz

                              Tham khảo: https://drive.google.com/file/d/0B0Q...it?usp=sharing

                              Thanks

                              Comment


                              • #30
                                Trở lại hình 24-16 hình này có ý nói khi chuyển mode cần phải chuyển qua các mode lần lượt.
                                Vd:
                                - từ FEI muốn chuyển đến PEE cần phải lần lượt qua các mode FBE -> PBE -> PEE
                                - từ PEE chuyển đến BLPI: PEE -> PBE -> FBE -> FBI -> BLPI
                                với ví dụ ở bài trước FEI cho ra 48MHz không ổn định, có thể khắc phục bằng cách sử dụng FEE sử dụng EXTAL 32.768. Tuy nhiên trên kit FRDM-KL46Z không có thạch anh 32.768kHz nên sẽ dung thạch anh 8MHz.
                                Đề: core clock = 40MHz sử dụng FEE biết thạch anh ngoài 8MHz.
                                Do yêu cầu sử dụng FEE nên cần phải có code chuyển từ FEI -> FEE.
                                Theo RM:
                                Code:
                                FLL engaged external (FEE) mode is entered when all the following conditions occur:
                                • C1[CLKS] bits are written to 00
                                • C1[IREFS] bit is written to 0
                                • C1[FRDIV] must be written to divide external reference clock to be within the range of 31.25
                                kHz to 39.0625 kHz
                                • C6[PLLS] bit is written to 0
                                Code:
                                    MCG->C2 &= ~MCG_C2_RANGE0_MASK;
                                    MCG->C2 |= MCG_C2_RANGE0(3) |// Very high frequency range selected for the crystal oscillator 
                                               MCG_C2_EREFS0_MASK |
                                               MCG_C2_HGO0_MASK ; 
                                    
                                    MCG->C1 &= ~MCG_C1_FRDIV_MASK;
                                    MCG->C1 |= MCG_C1_FRDIV(3); // Divide Factor is 256. 8000 / 256 = 31.25kHz
                                
                                    MCG->C1 &= ~MCG_C1_IREFS_MASK; // External clock (8MHz) for FLL
                                    
                                    MCG->C4 &= ~MCG_C4_DRST_DRS_MASK;
                                    MCG->C4 &= ~MCG_C4_DMX32_MASK;
                                    MCG->C4 |= MCG_C4_DRST_DRS(1);// 31.25 * 1280 = 40000kHz
                                    
                                    MCG->C6 &= ~MCG_C6_PLLS_MASK;// select FLL
                                    
                                    MCG->C1 &= ~MCG_C1_CLKS_MASK; // Output of FLL is selected for MCGOUTCLK
                                    
                                    while((MCG->S & MCG_S_OSCINIT0_MASK) == 0); // wait for osc init
                                    while((MCG->S & MCG_S_PLLST_MASK) != 0); // wait for FLL
                                    while((MCG->S & MCG_S_IREFST_MASK) != 0); // wait for External clock is selected
                                    while((MCG->S & MCG_S_CLKST_MASK) != 0); // wait for FLL is selected
                                Đề: core clock = 4MHz sử dụng FBI. Tương tự ví dụ trên cần có code chuyển FEI->FBI.
                                Theo RM:
                                Code:
                                FLL bypassed internal (FBI) mode is entered when all the following conditions occur:
                                • C1[CLKS] bits are written to 01
                                • C1[IREFS] bit is written to 1
                                • C6[PLLS] is written to 0
                                • C2[LP] is written to 0
                                Code:
                                    MCG->SC &= ~MCG_SC_FCRDIV_MASK; // Divide Factor is 1
                                    
                                    MCG->C1 &= ~MCG_C1_CLKS_MASK;
                                    MCG->C1 |= MCG_C1_CLKS(1) |   // Internal reference clock is selected
                                               MCG_C1_IREFS_MASK |// Enable MCGIRCLK for uart0
                                               MCG_C1_IRCLKEN_MASK;
                                    
                                    MCG->C2 &= ~MCG_C2_LP_MASK;  // FLL or PLL is not disabled in bypass modes
                                    MCG->C2 |= MCG_C2_IRCS_MASK; // Fast internal reference clock selected
                                
                                    MCG->C6 &= ~MCG_C6_PLLS_MASK;
                                
                                    while((MCG->S & MCG_S_IRCST_MASK) == 0);
                                    while((MCG->S & MCG_S_CLKST_MASK) != MCG_S_CLKST(1));
                                Tham khảo: https://drive.google.com/file/d/0B0Q...it?usp=sharing
                                BUG: chuyển sang FBI chỉ được một lần.

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X