PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > PIC32 - Bộ điều khiển tín hiệu số 32-bit

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

PIC32 - Bộ điều khiển tín hiệu số 32-bit Microchip công bố sản phẩm vi xử lý 32-bit ngày 06/11/2007

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 19-01-2008, 03:10 PM   #1
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Đôi điều về PIC32 (chuyện lãng nhách)

1. Tinh thần và cảm giác:

Hôm nay là một ngày khá quan trọng với F, không tiện nói ra nhưng thực sự hôm nay trong người cảm thấy rất là nhẹ nhàng, thoải mái. Thậm chí rằng có chút sung sướng nữa. Tất nhiên việc này chẳng liên quan gì tới việc học hành, kinh doanh, hay xã hội...

Trong cái lúc tự cảm thấy khoan khoái này, mới lần đọc lại những gì mà mình đã làm, xem tại sao mình lại có đựoc những sự may mắn đó. Thăm lại hộp thư của các bạn trong lớp, diễn đàn của lớp cấp 3 tụi nó đang chuẩn bị họp lớp, mấy đứa đại học,... mailing list thì gửi thiếp mời đám cưới loạn xạ... Anh em chúng nó (cả mình cũng vậy nữa chứ) đều tới tuổi rồi...!!??

Thế nhưng quay lại nhìn tất cả những gì mình làm, cảm thấy ý nghĩa nhất vẫn là bài viết này. Chính bài viết này mình không viết cho mình, cho picvietnam, mà viết tặng cho IRFVN. Cũng từ đó mà F dựng nên được picvietnam (25/5/2005)
http://www.picvietnam.com/download/V...eu%20khien.pdf

Đó mới thấy cái gì làm cho người khác một cách toàn tâm toàn ý, không vụ lợi; đến một lúc nào đó mình sẽ được đền ơn một cách xứng đáng. Kết quả ngày hôm nay xây dựng được picvietnam cũng bởi vì cho mà không đòi hỏi nhận gì. Nó sẽ luôn là tinh thần của picvietnam.


2. PIC32 chào ngày mới:

Năm 2005, dsPIC bắt đầu mở ra một cơ hội mới. Tháng 11/2007, một ấn định nữa cho Microchip trong thị trường embedded. Dự kiến tới năm 2011, tổng sản lượng tiêu thụ dsPIC và PIC32 sẽ lớn hơn tổng sản lượng PIC hiện tại.

Lại ngẫm, bây giờ học PIC32 như thế nào? Đã lâu rồi mình không làm việc nhiều với PIC, dsPIC, bây giờ PIC32 nên bắt đầu học mới, hay là kế thừa những gì trước đó của dsPIC?

Có lẽ trước đây, Việt Nam chúng ta gặp một trở ngại rất lớn về việc mua bán linh kiện, trang thiết bị. Thế nên việc tìm hiểu và nghiên cứu một công cụ mới, chúng ta thường đi chậm hơn các nước khoảng 1 năm tới 2 năm.

Ngay khi phổ biến dsPIC, chúng ta cũng đã chậm hơn thế giới gần 1 năm mới kịp thời phổ biến ở Việt Nam. Nhưng từ 2007, R&P sẽ xóa đi khoảng cách cho các nhà thiết kế trong nước. Có thể do thời gian này mới setup, nên chung ta hiện tại đã muộn hơn thế giới khoảng 3 tháng (công bố tháng 11/2007, bây giờ là tháng 1/2008, thêm 1 tháng tết anh em kỹ thuật nghỉ xả hơi nữa).

Làm thế nào để chúng ta theo kịp thế giới, và vượt lên với sức bật thật nhanh? Làm thế nào để chúng ta không cần phải đi dạo các diễn đàn nước ngoài để lượm lặt, mà chính chúng ta phải là người đi nhanh và tìm giải pháp trước họ?

PIC Việt Nam đã từng làm được 2 việc đi nhanh hơn thế giới. Việc thứ nhất đó là cung cấp thư viện ORCAD chân linh kiện (có thể chuyển sang Protel) của toàn bộ các chip PIC và dsPIC. Việc thứ hai là chúng ta giải quyết được vấn đề mạch nạp trên Window Vista mà các diễn đàn khác chưa kịp công bố (có thể là họ cũng chẳng quan tâm). Tất nhiên việc đưa ra giải pháp dùng mạch nạp PIC1 cho PIC16F887 chúng ta cũng làm rất nhanh, nhưng chỉ là ở mức độ test thử nghiệm và lựa chọn, chứ nó chưa phải là cái mà chúng ta nắm (phần mềm nạp). Việc chuẩn hóa ICSP-BLD gặp thất bại khi mong muốn phát triển chuẩn này.

Tất nhiên, những việc làm này chưa thể hiện được gì, nhưng ngày hôm nay chúng ta phải thừa nhận rằng chúng ta đang đi chậm hơn thế giới rất nhiều, mỗi một việc chúng ta làm được nhanh hơn, chúng ta hãy cố nắm lấy các cơ hội đó, và đi nhanh hơn.

PIC32 hiện nay vẫn chưa được bán đại trà, có nghĩa rằng vẫn còn trong giai đoạn nghiên cứu thử nghiệm. Đây là một cơ hội để chúng ta lại vươn bàn tay dài ra khỏi bản thân chậm chạp hiện tại của mình để đặt một cột mốc lên phía trước. Cách làm đặt các cột mốc này sẽ giúp cho chúng ta mỗi ngày một chạy nhanh hơn.

Chính vì vậy, việc cổ vũ phong trào nghiên cứu PIC32 mang một ý nghĩa quan trọng đối với cộng đồng mà F nghĩ mình phải có trách nhiệm trong việc này. Một mặt khác đáng chú ý rằng F là người đi bán Microchip, cho nên việc này cũng đồng nghĩa với việc gắn lợi nhuận của mình vào những việc làm có ích nhất định.


3. Cuộc chạy đua, kế thừa và phát triển:

Sau tất cả, cái F sẽ kế thừa từ PIC, đó là bài viết mà F đã viết cho các bạn sinh viên, những người lần đầu làm quen với vi điều khiển ở trên kia. Cái mà F sẽ kế thừa từ dsPIC, đó là kiểu chân và cách thiết kế. Microchip có một niềm tự hào đó là họ có các kỹ sư thiết kế chip tuyệt vời khi mà hầu hết các chip của họ đều có vị trí chân phù hợp với nhau (tương thích) và có thể thay thế nâng cấp thiết kế rất nhanh.

Từ hai vấn đề này, F dự kiến sẽ đi theo các bước đúng như trong bài viết của mình để nghiên cứu về một con chip.

Bước một, tìm hiểu về những khái niêm cần thiết.
Bước hai, tìm hiểu các tính năng
Bước ba, tìm công cụ làm việc
Bước bốn, học lập trình cơ bản
Bước năm, làm các bài tập ứng dụng phải làm sao cho nó chạy đã
Bước sáu, học và sử dụng các tính năng khác


4. Kết luận:

Sau bài viết này, F sẽ xí chỗ 6 bài viết tiếp theo để copy lại những thảo luận và phân tích của các bạn về PIC32, phần nào thấy cần thiết F sẽ trang bị và bỏ vào đây.

Lưu ý rằng, F ăn gian cái quyền admin để xí một luồng để viết (chuyện lãng nhách), mong các bạn thành viên thông cảm. Nếu nó có gì chưa đúng đắn (vì cũng có lẽ F đã ít làm PIC lâu rồi), hoặc nếu có gì chưa hợp lý (lý luận không vững chắc), rất mong các bạn đóng góp và xây dựng.

Thực tâm qua bài viết này F muốn nhắc tới mấy điểm:
- tinh thần open của picvietnam
- phương pháp tiếp cận một dòng vi điều khiển, vi xử lý
- cách chúng ta sẽ ganh đua với thế giới, chỉ có một cách đó là đặt những cột mốc đầu tiên. Thế giới hơn ta bởi vì họ cắm quá nhiều cột mốc đầu tiên và làm cho chúng ta tưởng rằng không thể chạy lên bằng với họ và họ cản hết đường rồi, nhưng không phải thế đâu, CẮM MỐC!

Hy vọng các bạn sẽ ủng hộ cách làm này.

Chúc vui

thay đổi nội dung bởi: falleaf, 23-01-2008 lúc 04:38 PM.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-01-2008, 03:11 PM   #2
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Những khái niệm cơ bản

Tất nhiên để nghiên cứu PIC32, chúng ta cần có tối thiểu hai tài liệu sau:
[1] PIC32MX Family Datasheet: http://ww1.microchip.com/downloads/e..._v1_61143A.pdf
[2] PIC32 Family Reference Manual- All Chapters: http://ww1.microchip.com/downloads/e...l_Chapters.zip

Mở tài liệu [1] ra, ngay những trang đầu tiên chúng ta đã có thể thấy hàng loạt những từ ngữ mới chưa được nhắc đến ở dsPIC hay PIC. Có thể một số bạn mới làm quen cũng không thấy thân thuộc lắm với mấy từ ngữ của dsPIC hay PIC, các bạn muốn lao vào học PIC32 luôn!? Ok, cũng không sao. Nói chung là trong bài viết này F sẽ liệt kê ra đây các từ ngữ mà F cho rằng các bạn có thể sẽ cần phải hỏi, sẽ cần phải giải đáp, sẽ cần...

Sau này các từ ngữ này sẽ được chuyển lên để làm kho định nghĩa trên www.tudiencongnghe.com, nhưng trong thời gian chuẩn bị phát triển từ điển công nghệ, F cũng sẽ triển khai các định nghĩa và giới thiệu ở đây, đồng thời cũng sẽ nhờ các thành viên bổ sung, góp ý để hoàn thiện bài viết. Nó là những cơ sở quan trọng để chúng ta có một cái nhìn chung và tổng quan về PIC32 nói riêng và vi điều khiển, vi xử lý nói chung.

Chỉ cần mở trang đầu tiên của datasheet, các bạn sẽ gặp ngay một số khái niệm sau:

MIPS32 M4K 32-bit Core: Xem file đính kèm

5-Stage Pipeline: 5 tầng pipeline

MIPS16e:
User and Kernel Mode:
Prefetch Cache Module:

Boot Flash Memory:
Multi Power Management:
Fail-Safe Clock:
JTAG:
Unintrusive Hardware-Based Instruction Base:
IEEE Std 1149.2 Compatible (JTAG) Boundary Scan:

DMA Controller: Direct Memory Access Controller
Đây là chức năng truyền nhận giữa một nguồn và một đích nào đó mà không cần đến xử lý của CPU. Có nghĩa là CPU không làm gì ở đây cả.
IrDA encoder and decoder:


Bây giờ, chúng ta lại đi qua một loạt các ký hiệu chân. Các bạn chú ý xem trang 11 của [1], đó là bảng giải thích chi tiết các ký hiệu trên các chân. Vậy chúng ta không còn ngại gì nữa nếu không biết chân nào dùng làm gì thì chúng ta chỉ cần tra cứu trang 11 này là xong.

Cách học mà F đã đề nghị lâu nay, đó là học làm sao để sử dụng tốt các module và các tính năng của chip, còn việc tự nghiên cứu, vận dụng, sáng tạo, có lẽ chúng ta để dành cho các nhà thiết kế chuyên nghiệp (tất nhiên cũng chính là các bạn sinh viên bây giờ, sau khi ra trường). Vả lại, bài viết này cũng không nhằm giúp ích cho các nhà thiết kế chuyên nghiệp, vẫn chỉ dành cho những người mới làm quen với PIC32 mà thôi.

Cách đọc DATASHEET và MANUAL PIC32:

Thực ra điều này không có gì mà phải viết vào, nhưng F vẫn viết vào đây bởi vì có một số bạn "hơi lười" và ngại đọc tiếng Anh.

Cuốn DS và Manual được tổ chức thành từng chương, mỗi chương là một khối chức năng của PIC32. Các chương đầu giới thiệu chủ yếu về kiến trúc, dao động, nguồn,... đây là những yếu tố để một con PIC32 có thể chạy được. Các phần sau giới thiệu các tính năng và chỉ rõ chi tiết những tính năng nào ràng buộc tính năng nào.

Tuy vậy, một người mới học khi cầm vào cuốn DS hay Manual sẽ bị dội, bởi vì khi mở nó ra, những dòng đầu tiên mô tả rất ngắn gọn, sau đó thì hàng loạt thanh ghi, hàng loạt bảng biểu...

Thực chất cuốn DS và Manual dùng cho những người đã làm việc quen thuộc với PIC, họ cần tra cứu nhanh và lướt qua là đã nắm được nội dung. Do vậy, mọi việc họ cần chỉ là vị trí những thanh ghi, và chi tiết các thanh ghi đó để họ tương tác là xong.

Thế nhưng người mới học, các bạn hãy bỏ qua những trang đó bởi vì nó thực sự là một thứ rối bời không cần thiết. Các bạn hãy đi ngay vào phần phía sau (khoảng nửa cuối của chương), đó là phần mô tả tính năng, hoạt động. Nó sẽ hướng dẫn ta từng bước về cấu hình để một chức năng hoạt động như thế nào.

Mọi bước đều rất cụ thể và rõ ràng, thậm chí có một số source code mẫu để chúng ta hình dung.

Sau khi đọc các mục phía sau này, hiểu tính năng của nó, hiểu cách nó tổ chức thanh ghi, thanh ghi nào dùng vào việc gì, bit nào dùng vào việc gì (chỉ cần nhớ tên, tên của nó rất dễ gợi nhớ trong tiếng Anh), sau đó chúng ta mới tra ngược lên xem chi tiết việc cấu hình từng bit đó ra sao.

Như vậy, đọc DS và Manual của PIC32, với những người mới học, các bạn hãy đọc từ giữa chương tới hết, rồi hãy tra cứu ngược để hiểu rõ hơn.


Những câu hỏi?

Phân biệt SYSCLK và PBCLK?

PIC32 sử dụng core của MIPS, vậy MIPS là gì? Trên đời này còn có bao nhiêu core nữa? Tìm hiểu chúng thế nào?

Tại sao PIC32MX lại có tới 2 cặp chân PGC1/PGD1 và PGC2/PGD2? Nó là chức năng ICSP mà tại sao lại phải dùng tới hai cái?

Một số người làm việc với các vi xử lý khác như TI và ARM đã quen với JTAG, vậy JTAG là gì? Enhanced JTAG (EJTAG) là gì? JTAG Boundary Scan là gì? Dùng ICSP thay cho JTAG và ngược lại được không? So sánh giữa JTAG và ICSP?




Chúc vui

thay đổi nội dung bởi: falleaf, 23-01-2008 lúc 05:36 PM.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-01-2008, 03:12 PM   #3
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Các tính năng cơ bản của PIC32MX

Phần này liệt kê và giải thích các tính năng, không cần hiểu về mặt kỹ thuật chi tiết, chỉ cần hiểu nó hoạt động như thế nào về mặt nguyên lý, nó là cái gì? Thế là đủ. Sau rồi ta sẽ nghiên cứu từng cái và xử lý chi tiết từng cái sau. Chúng ta mới học nên cái gì cũng từ từ, không cần vội vàng làm gì cho nó mệt. Theo quan điểm của F đó là cứ lèng xèng thôi và từ từ thôi để làm cho nó chắc chắn một chút và có bài bản vẫn hay hơn.

Dưới đây là đặc tính của PIC32 được liệt kê trong trang 9 của Datasheet:

1.5 DMIPS/MHz
Oscilator Options and Features:

Interrupt Sources/Vectors: Ngắt
Nhiều người hiểu lầm rằng ngắt là một chương trình con, khi có ngắt thì CPU sẽ rẽ nhánh sang xử lý ngắt rồi quay lại chỗ cũ. Nhưng hiểu một cách chính xác hơn, đó là nếu như ngắt có mức ưu tiên cao hơn mức ưu tiên hiện tại của CPU, thì CPU mới rẽ nhánh chuyển qua ngắt (ngắt được tổ chức thành các địa chỉ ngắt khác nhau, dạng bảng, nên gọi là các vector ngắt). Và việc có quay trở lại vị trí xảy ra ngắt hay không, không phải là bắt buộc, mà hoàn toàn do sự điều khiển của phần mềm. Chính vì lầm lẫn điều này cho nên khi lập trình nhiều người gặp sự cố lỗi với ngắt mà không hiểu tại sao. Ý muốn của chúng ta là ngắt sẽ quay trở lại vị trí ban đầu sau khi thực hiện xong nhiệm vụ trong ngắt, như vậy để làm việc này, chúng ta sẽ cần phải có một số thao tác trước khi vào ngắt và sau khi ra ngắt. Việc có nhiều nguồn ngắt hơn (96 nguồn ngắt) khiến PIC32MX phải phân chia ra nhiều mức ưu tiên ngắt để quản lý (7 mức) và mỗi mức lại có 4 mức ưu tiên thấp hơn, vị chi có khoảng 28 mức ưu tiên ngắt trong PIC32MX.
DMA Channels:
paired timer:

I/O Ports:
Tính năng I/O nhìn chung không thay đổi mấy so với dsPIC, tuy nhiên việc có thêm các thanh ghi tận cùng là CLR, SET và INV giúp việc thao tác với các bit của TRISx, PORTx, LATx hiệu quả hơn. Đặc biệt là các thanh ghi tận cùng INV (Invert) để đảo giá trị bit của thanh ghi tương ứng.

Vd: LATCINV = 0x0001;
Nghĩa là đảo giá trị bit hiện tại của PORTC bit 0. Không cần quan tâm rằng giá trị hiện tại của PORTC bit 0 là gì. Nếu nó là 0 thì sẽ bị chuyển thành 1, và nếu nó là 1 thì sẽ bị chuyển thành 0. Điều này có lợi cho hơn khi điều khiển bit.
ADC 10-bit:

Quá trình chuyển đổi A/D được chia làm hai giai đoạn như hình sau:



Giai đoạn 1:

Giai đoạn 2:
Input Change Interrupt Notification:
Enhanced UART:
JTAG Boundary Scan:
JTAG Debug and Program:
Instruction Trace:
Hardware Break Point:
Internal LDO:
Resets:

Chúc vui

thay đổi nội dung bởi: falleaf, 24-01-2008 lúc 03:36 PM.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-01-2008, 03:13 PM   #4
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Giới thiệu các công cụ làm việc với PIC32

Cái này đã được giới thiệu rồi, nhưng nó thiên về buôn bán quá nên cũng hạn chế viết.

Chúc vui
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-01-2008, 03:14 PM   #5
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Học lập trình cơ bản

Trong giới hạn bài viết này, chúng ta tìm hiểu trực tiếp việc lập trình PIC32 dùng trình dịch C32 của Microchip và môi trường soạn thảo MPLAB v8.0 trở lên làm cơ bản. Những nội dung khác chúng ta sẽ khảo sát sau.


1. Tìm hiểu các hàm trong plib.h

Các "hàm" trong C32 được định nghĩa dưới dạng #define, bởi đôi lúc việc thực hiện những công việc này nó quá đơn giản, và người ta đã viết thành các định nghĩa (#define) như kiểu "macro" của C vậy. Việc đơn giản là chúng ta sẽ gọi trực tiếp các định nghĩa này như gọi một "hàm" vậy. Chúng ta sẽ tìm hiểu kỹ tại sao người ta lại viết như vậy, và quy trình của nó như thế nào một cách chi tiết hơn ở các phần bên dưới.

1.1. Chức năng I/O (ngày 23/01/2008)

Chức năng I/O các bạn xem bài tập PIC32Test.zip mà F gửi, có lẽ từ đó các bạn sẽ có thể nắm được ngay nó làm gì, như thế nào. F viết chú thích vào trong đó. (các bạn nhớ mở cả workspace, file .mcp). F đã đặt cái SFR view sẵn trên đó, các bạn kéo nó xuống tới chỗ PORTD, TRISD, LATD, ODCD để xem sự thay đổi của các thanh ghi này, vì chúng ta đang tương tác PORTD (các LEDs trên PIC32 Starter Kit cắm ở RD0, RD1, RD2)

Ngoài ra, F còn chép y nguyên lại một đoạn chương trình mẫu trong PIC32 Starter Kit User Guide, đồng thời sửa các lệnh của nó để so sánh cách viết, ngoài ra F cũng ghi chú những F cần thiết trong đó. Hy vọng có thời gian sẽ mở riêng ra một luồng về các chức năng của PIC32 riêng, còn giờ thì chỉ làm những việc lặt vặt được thôi.


1.2. Chức năng ADC

Code:
#define OpenADC10(config1, config2, config3, configport, configscan) (mPORTBSetPinsAnalogIn(configport), AD1CSSL = ~(configscan), AD1CON3 = (config3), AD1CON2 = (config2), AD1CON1 = (config1) )
Code:
#define ConfigIntADC10(config) ( mAD1ClearIntFlag(), mAD1SetIntPriority(((config) & 7)), mAD1SetIntSubPriority((((config) >> 4) & 3)), mAD1IntEnable(((config) >> 15)) )
Code:
#define EnableADC10() (AD1CON1SET = _AD1CON1_ON_MASK)
Code:
#define AcquireADC10() (AD1CON1SET = _AD1CON1_SAMP_MASK)
Code:
#define BusyADC10() (AD1CON1bits.DONE)
Xem cái đoạn code dưới đây xong, chắc chúng ta cũng hiểu cách plib.h nó làm cái gì rồi. Thực ra những công việc định nghĩa với plib.h chỉ là một việc làm thuần túy giúp chúng ta viết những đoạn code cho ngắn gọn hơn một tí, và cho nó gợi nhớ hơn một tí.
Code:
typedef union {
  struct {
    unsigned DONE:1;
    unsigned SAMP:1;
    unsigned ASAM:1;
    unsigned :1;
    unsigned CLRASAM:1;
    unsigned SSRC0:1;
    unsigned SSRC1:1;
    unsigned SSRC2:1;
    unsigned FORM0:1;
    unsigned FORM1:1;
    unsigned FORM2:1;
    unsigned :2;
    unsigned SIDL:1;
    unsigned FRZ:1;
    unsigned ON:1;
  };
  struct {
    unsigned :5;
    unsigned SSRC:3;
    unsigned FORM:3;
    unsigned :2;
    unsigned ADSIDL:1;
    unsigned :1;
    unsigned ADON:1;
  };
  struct {
    unsigned w:32;
  };
} __AD1CON1bits_t;
extern volatile __AD1CON1bits_t AD1CON1bits asm ("AD1CON1") __attribute__((section("sfrs")));
Code:
#define ConvertADC10() (AD1CON1CLR = _AD1CON1_SAMP_MASK)
Code:
#define ReadActiveBufferADC10() ( AD1CON2bits.BUFS )
Code:
#define ReadADC10(bufIndex) (*(&ADC1BUF0+((bufIndex) * 4)))
Tại sao lại có cái công thức loằng ngoằng như thế này ở ReadADC10(bufIndex)? Vậy giá trị bufIndex khi đưa vào sẽ là giá trị gì?

Code:
#define SetChanADC10(config) (AD1CHS = (config))
Code:
#define CloseADC10() ( mAD1IntEnable(0), AD1CON1CLR = _AD1CON1_ON_MASK )
Câu hỏi đặt ra là, một quy trình tương tác chức năng ADC của PIC32 sẽ được diễn ra theo thứ tự nào? Có những vấn đề gì cần quan tâm?


Chúc vui

Tài liệu tham khảo:
[1] File plib.h trong thư mục C:\Program Files\MPLAB C32\libscr\include
File Kèm Theo
File Type: zip PIC32Test.zip (124.8 KB, 184 lần tải)

thay đổi nội dung bởi: falleaf, 23-01-2008 lúc 04:03 PM.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-01-2008, 03:16 PM   #6
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Các bài tập ứng dụng

Có thể khi mạng lưới phân phối của R&P đã được thiết lập, mọi người đều có thể mua các công cụ nghiên cứu phát triển về PIC32, chúng ta sẽ có thể tiến hành các cuộc thi thiết kế, hoặc là tích lũy từ các vấn đề mà các bạn thảo luận từ các luồng khác để đưa vào đây, trở thành những bài tập căn bản quan trọng và đầy đủ để những người học sau có thể học nhanh.

Chúc vui
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-09-2010, 10:57 AM   #7
komikumi
Nhập môn đệ tử
 
Tham gia ngày: Sep 2010
Bài gửi: 10
:
Trích:
Nguyên văn bởi falleaf View Post
Những câu hỏi?

Một số người làm việc với các vi xử lý khác như TI và ARM đã quen với JTAG, vậy JTAG là gì? Enhanced JTAG (EJTAG) là gì? JTAG Boundary Scan là gì? Dùng ICSP thay cho JTAG và ngược lại được không? So sánh giữa JTAG và ICSP?
Xin được trả lời bác về câu hỏi này.

1> JTAG: Joint Test Action Group, là 1 công cụ được sinh ra với mục đích ban đầu phục vụ cho việc test phần cứng (kết nối giữa chíp và PCB). JTAG hiện nay được chuẩn hóa bởi tài liệu IEEE 1149.1. Thành phần chủ yếu của JTAG bao gồm 1 số tín hiệu: TCK, TMS, TDI, TDO và TRST (option).

2> Boundary Scan: Mỗi con chíp điều có các pin đưa ra ngoài. Nếu chíp có tích hợp JTAG thì giữa phần logic core của chíp và pad IO người ta chèn thêm 1 thành phần của JTAG được gọi là scan-cells. Boudary Scan là cơ chế bao gồm các thanh ghi dịch với chức năng cho phép các scan-cells này điều khiển các IO pad (ví dụ set mức logic cho pin, hoặc đọc trạng thái logic của pin) một cách trực tiếp mà không phải thông qua logic core của chíp.

3> Với những chip đơn giản thì cũng không cần phải tích hợp JTAG vào làm gì. Nhưng đối với những chíp có cấu hình phức tạp thì việc add JTAG vào là điều cần thiết. Một ví dụ điển hình là trong công nghiệp điện tử người ta sản xuất hàng nghìn board mạch in có gắn các linh kiện. Để có thể phát hiện lỗi cho tất cả các sản phẩm đó cần phải có một phương pháp test nhanh và hiệu quả (các chip trên PCB sẽ được kết nối theo 1 chuỗi gọi là daisy-chained). Công nghệ bán dẫn phát triển kéo theo các chíp ngày càng trở nên tinh vi hơn về độ phức tạp. Nếu trên 1 PCB có gắn vài chục con chíp có package BGA thì phương pháp test truyền thống dùng đầu dò tỏ ra không khả thi. Đó cũng là câu trả lời vì sau các chíp ARM và một số các chíp CPU khác hiện nay người ta điều tích hợp JTAG vào. Mỗi chíp sẽ được nhà sản xuất cung cấp 1 tài liệu đặc tả thông tin về JTAG thông qua file gọi là BSDL. Chương trình test sẽ dựa vào file này để thực hiện các phép thử phù hợp đối với con chíp.
Đôi khi ta thấy 1 con chíp có tích hợp các chân JTAG và có cảm giác quá rờm rà khi thiết kế PCB nhưng hiệu quả thật sự của JTAG đã được nêu như phần trên.

4> Enhanced JTAG (EJTAG) là gì ?
Không chỉ dừng ở mục đích test phần cứng, phiên bản cải tiến của JTAG thêm vào tín hiệu điều khiển như nSRST (system reset) nhằm thực hiện reset hệ thống (CPU, DDRAM, eth PHY...) với chủ ý thêm chức năng debug về phần mềm. EJTAG hỗ trợ các chức năng như : run control, single-step execution, breakpoints on both data and instructions, real-time trace (optional) and direct memory access. Hiện nay, tất cả các chíp ARM điều hỗ trợ EJTAG.

5> ICSP (In Circuit Serial Programming) : Đọc tên gọi ta cũng hiểu được ý nghĩa và tầm sử dụng của nó (đơn thuần chỉ là nạp firmware và debug). Vì thế cũng không cần phải so sánh ICSP và JTAG làm gì.
komikumi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-01-2008, 08:08 AM   #8
pic16f877a
Đệ tử 1 túi
 
Tham gia ngày: Jan 2007
Bài gửi: 19
:
Hiện nay chưa thấy pic32 được bán ở Vn nên việc nghiên cứu nó chắc sẽ gặp nhiều khó khăn. Nếu chỉ ngiên cứu xuông thì chán lắm. Khí náo có thông tin về việc bán hang pic32 ở Vn mong bác sớm thông báo để anh em ta còn sớm nghiên cứu được.
pic16f877a vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-01-2008, 07:12 PM   #9
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Trích:
Nguyên văn bởi pic16f877a View Post
Hiện nay chưa thấy pic32 được bán ở Vn nên việc nghiên cứu nó chắc sẽ gặp nhiều khó khăn. Nếu chỉ ngiên cứu xuông thì chán lắm. Khí náo có thông tin về việc bán hang pic32 ở Vn mong bác sớm thông báo để anh em ta còn sớm nghiên cứu được.
Hiện nay PIC32MX chưa niêm yết giá bán trên Microchip, nhưng nếu bạn nào đặt hàng thì cứ liên hệ R&P để mua. Riêng PIC32 Starter Kit đang được giảm giá còn 75% so với giá trên microchipdirect, nghĩa là nó chỉ còn đâu khoảng 40$ gì đó, các bạn nhanh chân mà mua để dùng. Qua đợt này sẽ không biết có mua được với giá đó nữa không.

Nên mua luôn bo mạch PIM PIC32 bởi nếu chạy mạch in với PIC32 sẽ rất phiền phức chứ không đơn giản đâu. Nói chung theo F thì cái PIC32 Starter Kit đủ xài rồi, nên mua thằng này về vọc nếu bạn không phải là chuyên gia chạy mạch in. 72MHz không phải là thứ dễ xơi.

Chúc vui

thay đổi nội dung bởi: falleaf, 20-01-2008 lúc 07:18 PM.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-01-2008, 09:50 PM   #10
pic16f877a
Đệ tử 1 túi
 
Tham gia ngày: Jan 2007
Bài gửi: 19
:
Trích:
Nguyên văn bởi falleaf View Post
72MHz không phải là thứ dễ xơi.

Chúc vui
Nhân tiện bác F noi tới tốc đôi 72Mhz. Minh cũng muốn bàn tới diều này 1 chút.
Đây là tốc độ của cái j?
Đây là tốc dộ của nguồn xung clock ngoài có thể cung cấp cho pic "External clock input (5-72 MHz), PLL enabled" Còn nếu dùng thạch anh hs thì 10->40M vậy nên cũng giống như con pic18 thôi. Nên khi thiết kế mach in có lẽ chúng ta cần wan tâm nhất tới chân OSCI khi đưa nó vào xung clock 72Mhz vào.

Còn nhiều modul khác nữa như i2c chẳng hạn nếu hoat dộng ở tốc độ 1M thì vấn dề mạch in cũng cần wan tâm (khi sủ dung i2c giao tiep voi thiết bi khác). Cón nếu chỉ hoat dông bình thường thì mạch in tự thiết kế có lẽ vẫn đáp ứng được yếu cầu.

Có đôi điều ý kiến vậy bác nào thấy chưa đúng thì cho ý kiến tiếp.
pic16f877a vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-01-2008, 01:34 PM   #11
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Câu hỏi này hôm nay mình cũng vừa định đưa lên diễn đàn, đó là hãy phân biệt SYSCLK và PBCLK trên PIC32. Để hiểu được vấn đề này, bạn download các tài liệu trong luồng
http://www.picvietnam.com/forum//showthread.php?t=1905

Đồng thời đọc datasheet và manual của PIC32.

Mình đang tìm cách để viết sao cho đầy đủ về mấy vấn đề của PIC32 và cũng đang đọc từ từ.

Chúc vui
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-08-2009, 11:36 AM   #12
robotden
Đệ tử 5 túi
 
robotden's Avatar
 
Tham gia ngày: May 2007
Bài gửi: 102
:
a F ơi. giờ mua pic32mx360f512 ở đâu giờ, sao khó mua quá anh à
__________________
Thật bó tay!
robotden vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-08-2009, 02:15 PM   #13
bien_van_khat
...Damned...
 
bien_van_khat's Avatar
 
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
:
Trích:
Nguyên văn bởi robotden View Post
a F ơi. giờ mua pic32mx360f512 ở đâu giờ, sao khó mua quá anh à
Bạn liên hệ công ty R&P, nhà phân phối các sp của Microchip tại Việt Nam

sales.electronics@rpc.vn - mail@falleaf.net
VP: +84 8 38119870 - DD: 0936 316 326
__________________
- Xin đọc trước khi post bài

Xin đặt code trong thẻ [ code ] [ /code ]
bien_van_khat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-07-2010, 03:22 PM   #14
tahi
Đệ tử 4 túi
 
Tham gia ngày: Mar 2009
Bài gửi: 64
:
Em mới nhảy sang chơi PIC32...Hồi xưa cũng biết tý tý dsPIC
Có 1 số thắc mắc sau, mong các đại ca giúp đỡ
1. Trong datasheet con PIC32MX575F256 nó ghi là "80 MHz maximum frequency" vậy sao anh F lại nói là 72M nhỉ
2. Chưa hiểu sự khác nhau giữa SYSCLK và PBCLK....Chỉ biết là, nhìn vào sơ đồ khối, thấy thằng PBCLK là tốc độ của các ngoại vi, được lấy từ SYSCLK qua 1 bộ chia...vậy tốc độ thực thi lệnh của PIC32 thực tế là bao nhiêu...??
3. Sao 1 bít của thanh ghi trong pic32 lại được define làm 3 thành phần, position, mask và lengh....=> dùng làm j> lúc nào thì dùng...
tahi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-07-2010, 04:02 PM   #15
bien_van_khat
...Damned...
 
bien_van_khat's Avatar
 
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
:
Trích:
Nguyên văn bởi tahi View Post
Em mới nhảy sang chơi PIC32...Hồi xưa cũng biết tý tý dsPIC
Có 1 số thắc mắc sau, mong các đại ca giúp đỡ
1. Trong datasheet con PIC32MX575F256 nó ghi là "80 MHz maximum frequency" vậy sao anh F lại nói là 72M nhỉ
Tại thời điểm anh Hiệp viết bài này, thì tần số tối đa của PIC32 do Microchip công bố là 72MHz
Trích:
2. Chưa hiểu sự khác nhau giữa SYSCLK và PBCLK....Chỉ biết là, nhìn vào sơ đồ khối, thấy thằng PBCLK là tốc độ của các ngoại vi, được lấy từ SYSCLK qua 1 bộ chia...vậy tốc độ thực thi lệnh của PIC32 thực tế là bao nhiêu...??
Thời gian thực thi lệnh phục thuộc vào SYSCLK. PBCLK dành cho ngoại vi để đảm bảo xung nhịp cho ngoại vi ko thay đổi khi CPU vào các chế độ tiết kiệm năng lượng.
Trích:
3. Sao 1 bít của thanh ghi trong pic32 lại được define làm 3 thành phần, position, mask và lengh....=> dùng làm j> lúc nào thì dùng...
Chưa rõ ý bạn hỏi.
Nhưng 1 thanh ghi của PIC32 có thêm 3 phiên bản CLEAR, SET, INVERT để thực hiện các thao tác set bit, xóa bit hoặc đảo bit trong 1 chu kỳ lệnh.

Bạn vẫn có thể xóa, set, đảo bit trực tiếp như trong dsPIC nhưng thao tác đó tốn nhiều chu kỳ lệnh hơn.
__________________
- Xin đọc trước khi post bài

Xin đặt code trong thẻ [ code ] [ /code ]
bien_van_khat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 02:03 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam