Thông báo

Collapse
No announcement yet.

Thảo luận về ARM LPC 2138/2148

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

  • #31
    Em đang có ý định dùng ARM LPC2148(phillip) để điều khiển GLCD 128x64 (KS0108) nhưng chưa biết phải làm thế nào .Bác nào biết chỉ giáo giúp em ( Có code luôn thì tốt quá) . Thanks!

    Comment


    • #32
      Nguyên văn bởi hbaocr Xem bài viết
      Bác trongnghia85 có thi NXP contest hả?Bác lấy 5 chip LPC2000 để bán sao????Sao ko để mà làm!


      tiep đây là 1 chương trình
      http://f1.grp.yahoofs.com/v1/EMtjSIp...g/baudcalc.zip
      đây la chuong trinh tinh toán để nap gia vao cac thanh ghi control UART của LPC2000 để có tốc độ baud fu hop thiet ke
      Mình vẫn tiếp tục làm dự án NXP đấy chứ ,nhưng mình thấy ứng dụng của mình chỉ cần con LPC2148 thôi là đủ ,loại LPC2378 nhiều chân quá vừa khó thiết kế mạch vừa khó hàn do vậy mình mới để lại cho các bạn có nhu cầu dùng .

      Comment


      • #33
        Nguyên văn bởi trongnghia85 Xem bài viết
        Mình vẫn tiếp tục làm dự án NXP đấy chứ ,nhưng mình thấy ứng dụng của mình chỉ cần con LPC2148 thôi là đủ ,loại LPC2378 nhiều chân quá vừa khó thiết kế mạch vừa khó hàn do vậy mình mới để lại cho các bạn có nhu cầu dùng .
        Chào bạn Trọng Nghĩa.
        Công Ty NXP chúng tôi rất hoan nghênh khi bạn tham gia cuộc thi Thiết kế MCU. Đề tài "ỨNG DỤNG CÔNG NGHỆ GPS TRONG VIỆC CHẾ TẠO THIẾT BỊ ĐỊNH VỊ PHỤC VỤ TÀU THUYỀN ĐÁNH BẮT XA BỜ" được các chuyên gia của chúng tôi đánh giá rất cao. Hi vọng bạn có thể hoàn thành dự án để tranh tài với các đội trong khu vực vào tháng 9/2008. Về việc ứng dụng của bạn cảm thấy không cần thiết sử dụng LPC2378, bạn có thể liện hệ đơn vị phân phối chip để đổi lại LPC2148 (công ty Vijatech). chúng tôi hi vọng có thể giúp bạn hoàn thành sản phẩm một cách tốt nhất. Chân trọng cám ơn.
        Challenges are chances!

        Comment


        • #34
          Mình có làm 1 hàm Delay_uS đơn giản có thể delay khá chính xác từ 100us trở lên, nếu thời gian chờ là ms thì sai số rất nhỏ, hàm này có thể xài trong các ứng dụng không cần delay cực kỳ chính xác, ví dụ như dùng cho LCD chẳng hạn. Hàm này hoạt động ở xung CCLK = 60MHz. Mình đã test thử, khi delay 5ms thì sai số là 0.00027ms.

          void Delay_uS (DWORD uS);
          {
          DWORD i = uS * 12;
          while (i--);
          }

          Khi muốn delay 5ms thì gọi hàm Delay_uS (5000);

          Comment


          • #35
            Chà, mình thấy từ ngày anh Crusader20s post bài, cái thread này vắng vẻ ghê gớm luôn, anh em vào thảo luận cho nó sôi nổi đê. Anh hbaocr post tiếp bài lên để mọi người tiếp tục tham khảo đi.

            Comment


            • #36
              Tui thấy cái thread này buồn buồn thế nào ấy ,cái dòng này ít dùng nên khi động vào gặp rất nhiều khó khăn thế mà post bài hỏi thì chả thấy ai chả lời cả.Buồn...........!

              Comment


              • #37
                Nguyên văn bởi trongnghia85 Xem bài viết
                Tui thấy cái thread này buồn buồn thế nào ấy ,cái dòng này ít dùng nên khi động vào gặp rất nhiều khó khăn thế mà post bài hỏi thì chả thấy ai chả lời cả.Buồn...........!
                Bác phải post câu hỏi để mọi người nghiên cứu trả lời chứ. Em cũng đang tham gia cuộc thi NXP đây, cũng gặp ko ít khó khăn. Hic, hiếm lắm mới có 1 nơi bàn luận và trao đổi như thế này.
                Last edited by tuansoibk; 24-07-2008, 23:52.

                Comment


                • #38
                  hic,mình cũng đang Busy lắm đang đau đầu với con 2148....code viet debug bằng JLINK trên Eclipse codesourcesery toolchain tự động reset JTAG hoài ah thứ 6 này là deadline phải release cho sếp rồi!đáng nghiên cứu cái BIG BUG đó!hic các bác thông cảm!Đề tài NXP của em còn làm chưa xong nữa nè!sory các bác nhiều!mà các bác cũng phải pót bài lên share kiến thức cho anh em!
                  Chứ em thấy way đi quẩn lại chỉ có bác Nghĩa(trọng nghĩa --hunter_pro) hỏi!hic nếu em biết thì em trả lời!nếu không thì ngu luôn chẳng biết sao nữa!

                  mọi người tham ja cùng đóng góp chứ!chứ để 1 mình em pót bài thế này nhiều khi cũng chán!

                  Bác Nghĩa đề tài ứng dụng GPS trong đánh bắt cá xa bờ của bác tới đâu rồi! còn cái vụ GLCD KIs108 với LPC2138 em đã pót vd lên trên hethongnhung.com rồi mà!sao bác không chia sẽ kinh nghiệm với anh em!

                  so sorry các pác!vài hôm nữa em rãnh sẽ pót tiếp bài về cách sử dụng SPI và điều khiển GLCD PCF8833
                  Last edited by hbaocr; 25-07-2008, 08:37.

                  Comment


                  • #39
                    Em thì mới chỉ là 1 newbie thôi, từ lúc tìm hiểu con 8051 tới giờ được nửa năm nên cũng chưa biết gì nhiều, chủ yếu là học hỏi kinh nghiệm thôi. Thấy bác Bảo nói thể, em đọc lại trên này thấy chưa có ai post phần PWM và code (cả timer và PWM) nên em mạo muội post lên, đây là phần cơ bản thôi (vì em còn gà mà!) bác nào có ý kiến gì thì góp ý cho em với nhé.

                    Bộ tạo xung PWM được thiết kế dựa trên bộ Timer/Counter, hoạt động theo xung PCLK. Nguyên tắc hoạt động dựa trên các Match events của 7 match register. Có 2 loại xung:
                    - Single Edge: tất cả các xung đều được set lên 1 ngay khi bắt đầu 1 xung PWM, xung được set về 0 khi giá trị của timer counter bằng với giá trị của 1 trong các Match register 1-6. Có thể có tối đa 6 xung Single Edge đồng thời, tất cả các xung đều có cùng tần số được điểu khiển bởi Match register 0 (khi giá trị của timer counter bằng giá trị trong Match register 0 thì kết thúc 1 xung PWM và bắt đầu 1 xung mới).
                    - Double Edge: các xung được set bằng 0 khi bắt đầu 1 xung PWM, được set lên 1 bằng 1 Match register và set về 0 bằng 1 Match register khác. Các xung double edge cũng có tần số được điều khiển bởi Match register 0.

                    Bảng các kênh PWM:
                    Kênh Single Edge Double Edge
                    Set by Reset by Set by Reset by
                    1 Match 0 Match 1 - -
                    2 Match 0 Match 2 Match 1 Match 2
                    3 Match 0 Match 3 Match 2 Match 3
                    4 Match 0 Match 4 Match 3 Match 4
                    5 Match 0 Match 5 Match 4 Match 5
                    6 Match 0 Match 6 Match 5 Match 6

                    Ta có thể thấy có tối đa 3 xung double edge đồng thời (kênh 2, 4 & 6) có thể được điều khiển độc lập bằng 7 Match register.

                    Các thanh ghi điều khiển PWM:

                    • PWM Interrupt Register (PWMIR):
                    Khi xảy ra ngắt do 1 kênh PWM (xảy ra match trên các Match registers) thì bit tương ứng trong PWMIR sẽ được set lên 1. Sau khi xảy ra ngắt phải ghi 1 vào bit đó để xóa cờ ngắt (tương tự T0IR & T1IR).

                    Bit Ký hiệu Ý nghĩa Giá trị sau Reset
                    0 PWM0_Int cờ ngắt PWM kênh 0 0
                    1 PWM1_Int cờ ngắt PWM kênh 1 0
                    2 PWM2_Int cờ ngắt PWM kênh 2 0
                    3 PWM3_Int cờ ngắt PWM kênh 3 0
                    7:4 - Reserved n/a
                    8 PWM4_Int cờ ngắt PWM kênh 4 0
                    9 PWM5_Int cờ ngắt PWM kênh 5 0
                    10 PWM6_Int cờ ngắt PWM kênh 6 0
                    15:11 - Reserved n/a

                    • PWM Timer Control Register (PWMTCR):
                    Bit Ký hiệu Ý nghĩa Giá trị sau Reset
                    0 Counter Enable 0: disable Counter,1: enable Counter 0

                    1 Counter Reset khi bit này bằng 1, TC và PC được Reset. 0
                    tình trạng Reset được giứ nguyên tới khi
                    bit Counter Enable = 0.
                    2 - Reserved n/a
                    3 PWM Enable 0: disable PWM, 1: enable PWM 0

                    7:4 - Reserved n/a

                    • PWM Timer Counter (PWMTC):
                    Tương tự T0TC & T1TC.

                    • PWM Prescale Register (PWMPR):
                    Tương tự T0PR & T1PR.

                    • PWM Prescale Counter (PWMPC):
                    Tương tự T0PC & T1PC.

                    • PWM Match Register (PWMMR0-6):
                    Tương tự các Match register của Timer, khi xảy ra match trên các thanh ghi PWMMR0-6 ta có thể cho dừng timer, reset hoặc yêu cầu ngắt.

                    • PWM Match Control Register (PWMMCR):
                    Bit Ký hiệu Ý nghĩa Giá trị sau Reset
                    0 PWMMR0I 1: ngắt khi PWMTC = PWMMR0 (match 0) 0
                    1 PWMMR0R 1: reset timer khi match 0 0
                    2 PWMMR0S 1: dừng timer khi match 0 0
                    20:3 tương tự cho PWMMR1-6 0
                    31:21 - Reserved n/a

                    • PWM Control Register (PWMPCR):
                    Kích hoạt và chọn loại xung trên các kênh PWM.

                    Bit Ký hiệu Ý nghĩa Giá trị sau Reset
                    1:0 - Reserved n/a
                    2 PWMSEL2 0: xung PWM2 là xung single edge 0
                    ----------- 1: xung PWM2 là xung double edge
                    6:3 tương tự cho các xung PWM3-6 0
                    8:7 - Reserved n/a
                    9 PWMENA1 0: disable PWM1 0
                    ----------- 1: enable PWM1
                    14:10 tương tự cho PWM6-2 0
                    15 - Reserved n/a

                    • PWM Latch Enable Register (PWMLER):
                    Khi ghi lên các thanh ghi PWMMR0-6, dữ liệu được lưu giữ trong các shadow register. Khi xảy ra match 0 (bắt đầu 1 xung PWM), dữ liệu đó chỉ được ghi lên các thanh ghi PWMMR0-6 khi các bit tương ứng trong PWMLER được set bằng 1, xung PWM mới sẽ hoạt động dựa trên các giá trị mới. Nếu xảy ra việc chuyển giá trị từ các shadow register sang các match register thì các bit tương ứng trong PWMLER sẽ được xóa tự động.

                    Bit Ký hiệu Ý nghĩa Giá trị sau Reset
                    6:0 các bit tương ứng cho PWMMR0-6 0
                    7 - Reserved n/a


                    Đây là code em viết trên Realview, chương trình dùng để tạo 1 xung 500Hz từ 3 nguồn: PWM1, PWM3 và MAT0.0 (xung trên PWM1 va MAT0.0 co duty cycle là 50%, CCLK =60MHz, PCLK = 15MHz)
                    #include "LPC214x.h"

                    int main (void)
                    {
                    PINSEL0 = 0x8A;
                    // P0.0: PWM1, P0.1: PWM3, P0.3: MAT0.0
                    T0EMR = 0x30;
                    T0MCR = 2;
                    T0MR0 = 14999;
                    // dao gia tri tren chan MAT0.0
                    PWMPCR = (1 << 3) | (1 << 9) | (1 << 11);
                    // PWM1: single edge, PWM3: double edge, enable PWM1 & PWM3
                    PWMMCR = 2;
                    PWMMR0 = 29999;
                    PWMMR1 = 14999;
                    PWMMR2 = 4999;
                    PWMMR3 = 9999;
                    T0TCR = 1;
                    // enable timer 0
                    PWMTCR = 9;
                    // enable counter va PWM
                    while (1);
                    }
                    Bác Bảo chỉ em cách đưa bài viết vô 1 cái khung kéo lên kéo xuống được như của bác với (đưa vào cái khung có chữ code ấy), viết thế này dài quá, lại bị mất cái khoảng trắng nên hơi khó chịu.
                    Last edited by tuansoibk; 25-07-2008, 10:46.

                    Comment


                    • #40
                      Chú Bảo này siêng như vậy mai mốt anh đề cử chú làm helpdesk manager luôn quá. hehe Anh em tích cực lên nào.
                      Challenges are chances!

                      Comment


                      • #41
                        Bác Bảo chỉ em cách đưa bài viết vô 1 cái khung kéo lên kéo xuống được như của bác với (đưa vào cái khung có chữ code ấy), viết thế này dài quá, lại bị mất cái khoảng trắng nên hơi khó chịu.
                        hi dễ thôi , bạn làm y chang như QUOTE nhưng thay QUOTE bằng CODE thôi!
                        cheer!

                        Comment


                        • #42
                          GLCD KIS107 for ARM LPC2000

                          hi vọng là nó giúp các bác nhiều!
                          Attached Files

                          Comment


                          • #43
                            Tui thấy với con LPC2138 có 2 chân P0.3 và P0.14 để hỗ trợ ngắt ngoài EINT1 ,tui muốn sự dụng đồng thời cả 2 chân ngắt trên ,nhưng khi vào chương trình ngắt thì làm sao phân biệt được ngắt được tạo ra là do chân P0.3 hay P0.14 vậy.Hy vọng post bài vào đây có người trả lời dùm ,hihihiiiiii

                            Comment


                            • #44
                              Tui thấy hơi lạ cuộc thi của NXP có đến hơn 50 đội tham gia mà chẳng thấy ai thắc mắc hay gặp khó khăn post bài lên hỏi gì cả,toàn thấy tui hỏi thui ,chắc các bác đều nắm chắc dòng vi điều khiển này rồi hay sao ấy .Tui thì mới làm quen kiến thức gần như Zero động vào đâu cũng khó khăn , do vậy các bác thông cảm giúp đỡ dùm .

                              Comment


                              • #45
                                Nguyên văn bởi trongnghia85 Xem bài viết
                                Tui thấy hơi lạ cuộc thi của NXP có đến hơn 50 đội tham gia mà chẳng thấy ai thắc mắc hay gặp khó khăn post bài lên hỏi gì cả,toàn thấy tui hỏi thui ,chắc các bác đều nắm chắc dòng vi điều khiển này rồi hay sao ấy .Tui thì mới làm quen kiến thức gần như Zero động vào đâu cũng khó khăn , do vậy các bác thông cảm giúp đỡ dùm .
                                Không phải là ai cũng biết hết rồi, mà học thằng này chú tâm vào cái datasheet, các ví dụ, và nắm vững C/C++. Mấy thứ đó có hỏi cũng không bằng ngồi đọc sách và ..gõ. Người ta chỉ hỏi khi làm đúng như trong sách nhưng kết quả khác đi, với những bộ thí nghiệm chuẩn và các ví dụ hiện tại của Keil C thì hầu như mình chẳng gặp rắc rối gì trong làm quen với nó cả.

                                Hôm trước mình kiếm datasheet của LPC2148 cũng khá vất vả, search nó ra cái gì đâu không, nên hôm nay post lên cho anh em ai có nhu cầu và chưa kiếm ra sử dụng.
                                Attached Files
                                Diễn đàn Vi điều khiển:

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X