![]() |
|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#46 |
PIC Bang chủ
|
Oki, thế giờ F về lắp cái mạch 4MHz rồi nhờ các bạn chỉ cho cách config nhé.
Chúc vui
__________________
Công ty TNHH Thương mại và Giao nhận R&P store.hn@rpc.vn - store.hcm@rpc.vn Học PIC như thế nào? |
![]() |
![]() |
![]() |
#47 |
Đệ tử 3 túi
Tham gia ngày: Jun 2005
Bài gửi: 56
: |
Cái này em viết từ trước, dùng HTPICC18
__CONFIG(1,HSPLL & USBPLL & PLLDIV5 & CPUDIV1 & FCMDIS & IESODIS); // Thạch anh HighSpeed với PLL, USB với PLL, PLLDIV5 dùng cho thạch anh 20Mhz // chia 5 để được 4MHz, nếu dùng thạch anh 48Mhz thì config là PLLDIV12, tần // số này sẽ được dùng để tạo tần số làm việc cho USB. // CPUDIV1 tức là không chia, dùng tốc độ của thạch anh ngoài cho PIC. // FCMDIS: disabled chế độ fail-safe clock monitor // IESODIS: disabled chế độ Internal/External Oscillator Switchover __CONFIG(2,VREGEN & PWRTDIS & BOREN & BORV20 & WDTDIS & WDTPS32K); //VREGEN: USB Internal Voltage Regulator Enable //PWRTDIS: Power-up Timer disabled //BOREN: Brown-out Reset enabled //BORV20: Brown-out Reset Voltage //WDTDIS: Watchdog disabled //WDTPS32K: Watchdog Timer Postscaler là 32768 __CONFIG(3,CCP2RC1 & PBADDIS & LPT1DIS & MCLREN); //CCP2RC1: CCP2 input/output is multiplexed with RC1 //PBADDIS: Cổng RB<4:0> được config là digital I/O mỗi lần Reset //LPT1DIS: Timer chạy cần năng lượng cao //MCLREN: Master Clear được bật, vô hiệu hóa RE3 __CONFIG(4,STVREN & LVPDIS & XINSTDIS & DEBUGDIS); //STVREN: Stack Full/Underflow Reset enabled //LVPDIS: Low Voltage Programming Dis //XINSTDIS: Extended Instruction Set disabled //DEGUGDIS: disables chế độ DEBUG __CONFIG(5,UNPROTECT); __CONFIG(6,UNPROTECT); __CONFIG(7,UNPROTECT); |
![]() |
![]() |
![]() |
#48 |
PIC Bang chủ
|
Thế có đồng chí nào config cho F bằng ASM và bằng CCS C không nhỉ, hoặc C18.
Lý do, với các đồng chí 18F trở xuống, F quen dùng ASM, nên thân thuộc với CCS C. Còn với các đồng chí dsPIC thì chúng ta có C30 rồi, xài vi vu. Một ghi chú nhỏ, bảng config bằng ASM được trình bày ở tài liệu [2] PIC18C Manual Section 29. Ở bảng 29-1, có nói về phần dao động. Có bạn nào trình bày cho F hiểu phần dao động này và khi config cho thạch anh 4MHz thì dùng như thế nào không? Câu hỏi 8: Nếu dùng thạch anh 4MHz, thì có mấy cách lựa chọn? Lý do, F đã nói F chọn thạch anh 4MHz để dùng rồi. Câu hỏi 9: F thấy cái OSC Switch nó hơi lạ so với đồng chí 16F, bạn nào giải thích cho F cái này với? Câu hỏi 10: Tạm thời F chưa dùng cái gì hết, cho nên một số tính năng CCP, WDT.. F không quan tâm, nhưng đọc vào thấy cái liên quan đến Processor thì quan tâm. Đó là cái Processor Mode, bạn nào giải thích cho F biết cái này để làm cái gì vậy? Câu hỏi 11: Hàng loạt các giá trị config phía dưới, liên quan tới các bus, vậy câu hỏi: 11a) Tại sao phải có phần config mấy cái quỷ nhỏ này? 11b) Giải thích các giá trị config này Chú ý, chỉ giải thích vừa đủ hiểu, không giải thích quá chi tiết thì nó sẽ đụng chạm lung tung, lằng nhằng. Vì F mới học, cho nên F chỉ quan tâm đơn giản vừa đủ hiểu thôi. Chúc vui
__________________
Công ty TNHH Thương mại và Giao nhận R&P store.hn@rpc.vn - store.hcm@rpc.vn Học PIC như thế nào? |
![]() |
![]() |
![]() |
#49 | |
Đệ tử 3 túi
Tham gia ngày: Jun 2005
Bài gửi: 56
: |
Trích:
#include <18F4550.h> #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL3,CP UDIV1,VREGEN Cái này cho thạch anh 12Mhz, tùy giá trị PLLx mà các bác sửa, cái nì chạy ở 48Mhz, CPUDIV1 ASM: __CONFIG _CONFIG1L, _PLLDIV_5_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L __CONFIG _CONFIG1H, _FOSC_HSPLL_HS_1H __CONFIG _CONFIG2H, _WDT_ON_2H & _WDTPS_128_2H __CONFIG _CONFIG3H, _PBADEN_OFF_3H __CONFIG _CONFIG4L, _LVP_OFF_4L & _ICPRT_OFF_4L & _XINST_OFF_4L Thạch anh 20Mhz hoặc chơi kiểu nì: ;__CONFIG _CONFIG1L, _PLLDIV_1_1L & _CPUDIV_OSC3_PLL4_1L & _USBDIV_2_1L ;__CONFIG _CONFIG1H, _FOSC_XTPLL_XT_1H & _FCMEM_OFF_1H & _IESO_OFF_1H ;__CONFIG _CONFIG2L, _PWRT_OFF_2L & _BOR_ON_2L & _BORV_21_2L & _VREGEN_ON_2L ;__CONFIG _CONFIG2H, _WDT_OFF_2H & _WDTPS_32768_2H ;__CONFIG _CONFIG3H, _MCLRE_ON_3H & _LPT1OSC_OFF_3H & _PBADEN_OFF_3H & _CCP2MX_ON_3H ;__CONFIG _CONFIG4L, _STVREN_ON_4L & _LVP_OFF_4L & _ICPRT_OFF_4L & _XINST_OFF_4L & _DEBUG_OFF_4L ;__CONFIG _CONFIG5L, _CP0_OFF_5L & _CP1_OFF_5L & _CP2_OFF_5L & _CP3_OFF_5L ;__CONFIG _CONFIG5H, _CPB_OFF_5H & _CPD_OFF_5H ;__CONFIG _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L ;__CONFIG _CONFIG6H, _WRTB_OFF_6H & _WRTC_OFF_6H & _WRTD_OFF_6H ;__CONFIG _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L & _EBTR3_OFF_7L ;__CONFIG _CONFIG7H, _EBTRB_OFF_7H config PLLDIV = 1 config CPUDIV = OSC3_PLL4 config USBDIV = 2 config FOSC = XTPLL_XT config FCMEM = OFF config IESO = OFF config PWRT = OFF config BOR = ON config BORV = 21 config VREGEN = ON config WDT = OFF config WDTPS = 32768 config MCLRE = ON config LPT1OSC = OFF config PBADEN = OFF config CCP2MX = ON config STVREN = ON config LVP = OFF config ICPRT = OFF config XINST = OFF config DEBUG = OFF config CP0 = OFF config CP1 = OFF config CP2 = OFF config CP3 = OFF config CPB = OFF config CPD = OFF config WRT0 = OFF config WRT1 = OFF config WRT2 = OFF config WRT3 = OFF config WRTB = OFF config WRTC = OFF config WRTD = OFF config EBTR0 = OFF config EBTR1 = OFF config EBTR2 = OFF config EBTR3 = OFF config EBTRB = OFF Ý nghĩa thì các bác tự tra datasheet ![]() C18 #include <p18f4550.h> #pragma config PLLDIV = 1 #pragma config CPUDIV = OSC3_PLL4 #pragma config USBDIV = 2 #pragma config FOSC = XTPLL_XT #pragma config FCMEM = OFF #pragma config IESO = OFF #pragma config PWRT = OFF #pragma config BOR = ON #pragma config BORV = 21 #pragma config VREGEN = ON #pragma config WDT = OFF #pragma config WDTPS = 32768 #pragma config MCLRE = ON #pragma config LPT1OSC = OFF #pragma config PBADEN = OFF #pragma config CCP2MX = ON #pragma config STVREN = ON #pragma config LVP = OFF #pragma config ICPRT = OFF #pragma config XINST = OFF #pragma config DEBUG = OFF #pragma config CP0 = OFF #pragma config CP1 = OFF #pragma config CP2 = OFF #pragma config CP3 = OFF #pragma config CPB = OFF #pragma config CPD = OFF #pragma config WRT0 = OFF #pragma config WRT1 = OFF #pragma config WRT2 = OFF #pragma config WRT3 = OFF #pragma config WRTB = OFF #pragma config WRTC = OFF #pragma config WRTD = OFF #pragma config EBTR0 = OFF #pragma config EBTR1 = OFF #pragma config EBTR2 = OFF #pragma config EBTR3 = OFF #pragma config EBTRB = OFF Có cần PicBasic mà MikroC không anh F nhẩy ![]() |
|
![]() |
![]() |
![]() |
#50 | |
Đệ tử 3 túi
Tham gia ngày: Jun 2005
Bài gửi: 56
: |
Trích:
- Dùng bộ dao động nội 8Mhz của PIC, quên thằng 4Mhz đi ![]() - Config thạch anh 4Mhz là XT hay HS không dùng USBPLL - Dùng USBPLL đầu vào thạch anh không chia (do đã là 4Mhz) tần số có thể dùng 96Mhz PLL div 2,3,4,6. |
|
![]() |
![]() |
![]() |
#51 | |
Đệ tử 3 túi
Tham gia ngày: Jun 2005
Bài gửi: 56
: |
Trích:
Với PIC18 thì bắt đầu xuất hiện PLL, với 18F4550 thì ta có thể có các tùy chọn sau với OSC: - Dùng Primary Oscillator, tức là có thể config như PIC16, nhưng cũng có thể dùng PLL - Dùng Secondary Oscillator, đầu vào bộ dao động lấy từ chân T1OSO, T1OSI - Dùng Internal Oscillator 8Mhz. - Ngoài ra 18F4550 còn có chế độ fail-safe clock monitor, Internal/External Oscillator Switchover, quản lý clock, khi clock ngoài không hoạt động thì dùng clock trong. --> tất nhiên OSC Switch sẽ khác. Với PIC16 thì không nhớ con nào có PLL, còn có bộ dao động nội thì hình như chỉ có ở bọn 10F,12F thì phải ![]() |
|
![]() |
![]() |
![]() |
#52 | ||
Đệ tử 3 túi
Tham gia ngày: Jun 2005
Bài gửi: 56
: |
Trích:
Trích:
Vi xử lý chỉ bao gồm bộ xử lý trung tâm, cái mà loằng ngoằng bao gồm ALU, khối tính toán số học... và không bao gồm ngoại vi. Vi điều khiển = Vi xử lý + Ngoại vi: cái đề cập chính ở đây là bộ nhớ chương trình, vi điều khiển có, còn vi xử lý thì không. Hai chế độ này khác nhau ở cách thức định địa chỉ (mapped) và cách thức truy xuất bộ nhớ. Với chế độ vi xử lý thì ta phải truy xuất bộ nhớ ngoài, liên quan trực tiếp đến việc truy xuất qua bus, ngoài ra còn liên quan đến chế độ định địa chỉ bộ nhớ, các hoạt động như Table Reads, Writes... Muốn truy cập được bộ nhớ ngoài thì phải config là Microprocessor mode hoặc Extended microcontroller mode. 8051 có tính năng gần như vậy ở chân EA\ (External Access), nếu là mức cao thì dùng bộ nhớ trong(giống như chế độ controller), mức thấp thì truy xuất bộ nhớ ngoài (giống như chế độ processor). |
||
![]() |
![]() |
![]() |
#53 | |
Đệ tử 3 túi
Tham gia ngày: Jun 2005
Bài gửi: 56
: |
Trích:
Em vừa cho mấy thằng bạn mấy chú 877A, giờ nhà còn ít PIC, lại có cơ hội ngon, bổ, rẻ thế này, em kiếm mấy con về dùng, các bác thông cảm ![]() Anh F còn câu hỏi gì thì post nhanh lên ạ ![]() |
|
![]() |
![]() |
![]() |
#54 | |
PIC Bang chủ
|
Trích:
Uhm, mạng ở VN bị động đất ở Đài Loan, nên chập chờn, mọi người cứ thoải mái nhé. Chú PTH không cho trả lời nữa, đứng một bên để cho anh học. Anh mà cần làm gì anh đâu có làm nữa, giao cho chú với Chính làm hết rồi kaka... Ờ, chuẩn bị gửi anh Phước ra HN, có lẽ sau đó sẽ gửi Chính ra (sau khi anh Phước về). Bây giờ anh gọi về VN không được nữa, cho nên anh nhắn lên đây. Khoảng tầm sau tết thì chú coi đứa nào còn chỗ ở, nhắn anh một tiếng, để anh còn sắp xếp cho anh Phước. Thế nhé.
__________________
Công ty TNHH Thương mại và Giao nhận R&P store.hn@rpc.vn - store.hcm@rpc.vn Học PIC như thế nào? |
|
![]() |
![]() |
![]() |
#55 | |
PIC Bang chủ
|
Trích:
Câu hỏi này ngoài luồng, vì chú Hòa đang ngâm cứu ARM, ngoài ra, cũng muốn giúp các bạn làm rõ nghĩa một số khái niệm về bộ nhớ ở phần này, vì lên tới dòng 18F và dòng dsPIC, một số vấn đề về bộ nhớ nó sẽ gây rắc rối cho các bạn. Đặc biệt, làm việc với 18F, giúp các bạn một bước chuẩn bị tốt để tiến tới sử dụng dsPIC hiệu quả hơn, và từ dsPIC, các bạn tiến tới sử dụng các loại DSP khác không có gì khó khăn, cũng giống như khi học PIC16 và sử dụng các vi điều khiển khác vậy. À, vụ ARM, cuối tháng 1, bạn anh về VN, anh gửi cho chú bộ kit đầy đủ ARM, có thể thực hành và dùng JTAG qua USB ảo của nó. Có đầy đủ CD và kit, cable... Có gì anh sẽ trao đổi thêm với anh BA về định hướng phát triển của phòng. Thực sự chủ trương của anh không muốn phát triển ARM, lý do anh sẽ trao đổi sau. Nhưng anh vẫn chủ trương phát triển TI ở Việt Nam, mặc dù thị phần của ARM mạnh hơn TI trên thế giới. Oki, việc này không bàn xa ở đây. Thế nhé.
__________________
Công ty TNHH Thương mại và Giao nhận R&P store.hn@rpc.vn - store.hcm@rpc.vn Học PIC như thế nào? |
|
![]() |
![]() |
![]() |
#56 |
Đệ tử 8 túi
|
Thế chú Hòa cần con chip gì.
![]() Có trả lời thì từ từ thôi. Theo cho kịp chú cũng đuối. Bữa giờ cũng viết firmware cho con này, nhưng cứ lấy C18 mà phang đùng đùng, lấy cái Application Maestro ra mà dộng ầm ầm. Kết quả là ... mất căn bản trầm trọng. ![]() Chịu khó đứng ở ngoài, lắng nghe và thấu hiểu. Thư giãn chút xíu đi. http://nhacso.net/Music/Song/Rock-Vi...5/10/05F5F011/ ![]() |
![]() |
![]() |
![]() |
#57 |
Đệ tử 3 túi
Tham gia ngày: Jun 2005
Bài gửi: 56
: |
Thế thui, em không trả lời nữa, có thì bổ xung thôi
![]() Anh F với anh Chính có con PIC nào không dùng nữa, đểu đểu thui, em xin vài con, đem cho mấy thằng bạn cho nó đốt, chứ PIC thì em thiếu gì nhưng toàn dsPIC, đem cho em hơi tiếc ![]() Anh F nói đến con vi xử lý có nói đến bộ nhớ đệm cache L1,L2,L3 của nó, mà cỡ 6M em mới chỉ biết có con Itanium 2 của Intel mới lớn đến như vậy. Bộ nhớ này được dùng làm nháp và nạp trước lệnh vào vi xử lý, thông thường, tốc độ tính toán của vi xử lý dùng cho máy tính cá nhân như con PIV hay Athlon nhanh hơn tốc độ nạp lệnh vào bộ xử lý, nên để hạn chế hiện tượng này, mã lệnh của chương trình được nạp vào bộ nhớ đệm nằm trên chip, nên bộ nhớ đệm càng lớn thì càng tránh được hiện tượng thắt cổ chai. Bác nào đã dùng em Celeron với cache 128K thì thấy khác hẳn với PIV 512K cache, mặc dù cùng tốc độ xung nhịp, rõ nhất là khi dùng nhiều chương trình cùng lúc. Ngoài ra, tận dụng các bộ nhớ đệm này, Intel và AMD còn có công nghệ dự đoán lệnh tiếp theo và tối ưu thứ tự tính toán, còn tốc độ giao tiếp với CPU thì bộ nhớ này có tốc độ cao nhất, em nhớ không nhầm là 6.4GB. Nhưng trong sách vở không thấy nói thằng này thuộc bộ nhớ trong hay bộ nhớ ngoài. Bộ nhớ trong: RAM, ROM Bộ nhớ ngoài: Đĩa cứng, đĩa quang, băng từ... Chứ thằng này em chưa thấy nó vô chỗ nào ![]() Em cám ơn anh F trước về cái KIT ARM nhá ![]() Em đi theo hướng ARM để dùng nó làm con trung tâm điều khiển hệ thống, mà chủ yếu nhằm vào RTOS, lợi dụng khả năng quản lý tác vụ của hệ điều hành để quản lý hệ thống lớn, chứ cứ ngồi mà lập trình không có quản lý thì cỡ trên vài ngàn dòng lệnh thì nếu sai thì không biết đằng nào mà lần, nếu có nó quản lý thì sai module nào ta sửa module đó. Chứ em không đi sâu quá nhiều vào ARM. Hướng chính của em sẽ tập trung vào DSC để điều khiển, em đang xem qua họ HCS12, DSP56800 của FreeScale, bọn này thực sự mạnh, nhưng nếu anh định dùng đồ TI thì em xoay sang TMS320 cũng OK. Còn nhà cửa thì anh alo cho anh BA, cả Phương, anh Đoàn, Hùng đều đang ở trọ, thiếu gì nhà ![]() |
![]() |
![]() |
![]() |
#58 |
PIC Bang chủ
|
Oki, vụ nhà cửa oki.
Chuyển hướng qua TMS320 đi thôi, ARM làm thì được, nhưng chỉ đi làm thuê thôi, vì mình không sản xuất được chip. Bọn nó sản xuất chip dùng core ARM đã tính toán để dùng cho một số loại ứng dụng nào đó rồi. Để ý, thằng nào cũng có con ARM. Riêng thằng TI, sau khi phát triển dòng ARM thì nó cho lên dĩa luôn. Mà thôi, bàn chuyện này xa quá. Em đọc thêm nhiều về phần xử lý cache, vì phần đó dù DSP nào thì cũng cần. Mấy con ARM chắc chắn có. Còn về phần mấy con Intel hay AMD thì anh nói là đi mua chip, để nói thí dụ thôi, chứ cache thì giá rất cao, cho nên không thể làm dung lượng lớn trong mấy con DSP được (hy vọng sau này càng ngày càng tăng). Oki, tạm dừng ở đó. Bây giờ phần config coi như đã làm xong. F cũng vừa hàn xong cái mạch, gọi là chạy được. Lưu ý, F vẫn dùng thạch anh 4MHz dao động ngoài. Oki, các bạn thích dùng thạch anh khác cũng được, nhưng các phần bài toán tính toán các bạn nhớ xem xét lại cho đúng. Oki, bây giờ chúng ta dùng CCS C bản 4.018 được cung cấp trên tailieuvietnam nhé. Và song song đó, chúng ta dùng ASM để phân tích vấn đề. Lý do, dùng CCS C, nó gần ASM, và F hiện giờ không có thời gian để đọc code nữa. Khi cần, chúng ta sẽ dùng ASM để phân tích vấn đề. Chúc vui.
__________________
Công ty TNHH Thương mại và Giao nhận R&P store.hn@rpc.vn - store.hcm@rpc.vn Học PIC như thế nào? |
![]() |
![]() |
![]() |
#59 |
Đệ tử 8 túi
|
Thế chú Hòa có cần chip của TI không?
![]() Gửi vài con ra cho chú nhé. |
![]() |
![]() |
![]() |
#60 |
PIC Bang chủ
|
Sau khi config xong, bây giờ F đang muốn làm một chương trình nhỏ, xuất ra port B, cho đèn nhấp nháy từ B0 đến B7. B0 sáng, rồi tắt, rồi B1 sáng, rồi tắt... cứ như vậy... lặp lại.
Xin cho F một quả ASM và một quả CCS C nhé, để F thực hành. Nhớ cho chương trình đầy đủ và có phân tích cụ thể. Thanks các bạn. Chúc vui.
__________________
Công ty TNHH Thương mại và Giao nhận R&P store.hn@rpc.vn - store.hcm@rpc.vn Học PIC như thế nào? |
![]() |
![]() |
![]() |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
Pic18 voi USB | Khanhnghia | Cơ bản về vi điều khiển và PIC | 2 | 24-02-2009 11:41 PM |
interrupt in pic18 | littlephoc | Cơ bản về vi điều khiển và PIC | 9 | 18-04-2007 01:27 AM |
Bac falleaf co the viet tourial Pic bang C duoc ko | namezero | Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) | 2 | 21-10-2005 02:39 PM |