PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

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

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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 14-08-2009, 12:47 PM   #1
bluexylitol
Đệ tử 2 túi
 
Tham gia ngày: Aug 2009
Bài gửi: 28
:
Arrow PIC16F887_SomeQuestions?

Hi,
Mình đang tìm hiểu con PIC16F887 và có 1 số vấn đề thắc mắc:
1. Oscillator
a. Mình chưa hiểu về 1 vấn đề trong internal clock về Mode INTOSC và INTOSCIO, tức là bit SCR quy định nguồn đồng hồ là internal or defined by FOSC, nhưng tại sao trong FOSC lại có INTOSC và INTOSCIO? hay cái này cũng là internal mà. và 2 mode này khác với Mode Internal Oscillator (cái mà được chọn khi chọn SCR=1) là gì?
b. bit HTS xác định chế độ stable or not stable vậy stable ở đây nghĩa là gì vậy?

2. Timers

Mình không hiểu cái hình vẽ này: về mối quan hệ giữa TMR2, PR2, Postscaler và bit TMR2IF. Mình đọc trong datasheet mà chẳng hiểu gì:
"The match output of the Timer2/PR2 comparator is then fed into the Timer2 postscaler. The postscaler has postscale options of 1:1 to 1:16 inclusive. The output of the Timer2 postscaler is used to set the TMR2IF interrupt flag bit in the PIR1 register"

Thanks a lot in advance!
Hình Kèm Theo
File Type: gif Timer2_Diagram.gif (7.7 KB, 5 lần tải)

thay đổi nội dung bởi: namqn, 14-08-2009 lúc 10:51 PM. Lý do: .bmp => .gif (để giảm kích thước)
bluexylitol vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-08-2009, 10:19 PM   #2
Mr.Bi
Đệ tử 7 túi
 
Tham gia ngày: Jul 2007
Nơi Cư Ngụ: Đà Nẵng
Bài gửi: 188
:
Trích:
Nguyên văn bởi bluexylitol View Post
Hi,
Mình đang tìm hiểu con PIC16F887 và có 1 số vấn đề thắc mắc:
1. Oscillator
a. Mình chưa hiểu về 1 vấn đề trong internal clock về Mode INTOSC và INTOSCIO, tức là bit SCR quy định nguồn đồng hồ là internal or defined by FOSC, nhưng tại sao trong FOSC lại có INTOSC và INTOSCIO? hay cái này cũng là internal mà. và 2 mode này khác với Mode Internal Oscillator (cái mà được chọn khi chọn SCR=1) là gì?
b. bit HTS xác định chế độ stable or not stable vậy stable ở đây nghĩa là gì vậy?

2. Timers

Mình không hiểu cái hình vẽ này: về mối quan hệ giữa TMR2, PR2, Postscaler và bit TMR2IF. Mình đọc trong datasheet mà chẳng hiểu gì:
"The match output of the Timer2/PR2 comparator is then fed into the Timer2 postscaler. The postscaler has postscale options of 1:1 to 1:16 inclusive. The output of the Timer2 postscaler is used to set the TMR2IF interrupt flag bit in the PIR1 register"

Thanks a lot in advance!
- giới hạn đếm lên của thanh ghi TMR2 là TMR2<PR2 . Do đó , vd u khai báo PR2 là 10 thì TMR2 chỉ đếm đến 10 là bật cờ
- TMR2IF là cờ báo ngắt timer2 . nếu khai báo ngắt timer2 thì khi timer2 tràn , bit TMR2IF sẽ = 1.
Mr.Bi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-08-2009, 11:05 PM   #3
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi bluexylitol View Post
Hi,
Mình đang tìm hiểu con PIC16F887 và có 1 số vấn đề thắc mắc:
1. Oscillator
a. Mình chưa hiểu về 1 vấn đề trong internal clock về Mode INTOSC và INTOSCIO, tức là bit SCR quy định nguồn đồng hồ là internal or defined by FOSC, nhưng tại sao trong FOSC lại có INTOSC và INTOSCIO? hay cái này cũng là internal mà. và 2 mode này khác với Mode Internal Oscillator (cái mà được chọn khi chọn SCR=1) là gì?
b. bit HTS xác định chế độ stable or not stable vậy stable ở đây nghĩa là gì vậy?

2. Timers

Mình không hiểu cái hình vẽ này: về mối quan hệ giữa TMR2, PR2, Postscaler và bit TMR2IF. Mình đọc trong datasheet mà chẳng hiểu gì:
"The match output of the Timer2/PR2 comparator is then fed into the Timer2 postscaler. The postscaler has postscale options of 1:1 to 1:16 inclusive. The output of the Timer2 postscaler is used to set the TMR2IF interrupt flag bit in the PIR1 register"

Thanks a lot in advance!
1.
a. SCS (chứ không phải SCR) sẽ quyết định bộ dao động nội hay nguồn xung clock chọn bởi FOSC<2:0> được dùng cho hệ thống. INTOSC và INTOSCIO khác nhau ở chỗ: với INTOSC, chỉ có chân OSC1 có thể dùng làm I/O, còn chân OSC2 vẫn xuất tín hiệu clock (có thể dùng để kiểm tra tần số bộ dao động nội, hay cấp xung clock cho một linh kiện khác), còn với INTOSCIO, cả hai chân OSC1 và OSC2 đều được dùng làm chân I/O, và không có tín hiệu clock được xuất ra.

b. Mạch dao động nào cũng cần thời gian để đạt trạng thái ổn định (stable). HTS là cờ báo hiệu bộ HFINTOSC đã chạy ổn định hay chưa.

2. Tạm dịch đoạn văn đó:

"Ngõ ra báo hiệu khớp của bộ so sánh Timer2/PR2 sau đó được đưa vào bộ chia sau Timer2. Bộ chia sau có các giá trị chia tùy chọn từ 1:1 đến 1:16. Ngõ ra của bộ chia sau Timer2 được dùng để thiết lập trạng thái của cờ ngắt TMR2IF trong thanh ghi PIR1".

Nhìn sơ đồ khối thì thấy đúng như vậy. Tức là, khi Timer2 = PR2 thì ngõ ra bộ so sánh có một lần đổi trạng thái từ '0' lên '1' (rồi sẽ về '0' khi giá trị Timer2 trở 0 một cách tự động). Xung ở ngõ ra bộ so sánh sẽ được đưa vào bộ chia trước Timer2. Nếu chọn giá trị cho bộ chia trước là 1:n thì sau n lần ngõ ra bộ so sánh đổi trạng thái từ '0' lên '1', cờ ngắt TMR2IF mới được bật.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-08-2009, 09:24 AM   #4
bluexylitol
Đệ tử 2 túi
 
Tham gia ngày: Aug 2009
Bài gửi: 28
:
Ok, thanks 2 bạn. Vấn dề 2 mình đã hiểu, đặc biệt là phần giải thích của bạn @namqn "Nếu chọn giá trị cho bộ chia trước là 1:n thì sau n lần ngõ ra bộ so sánh đổi trạng thái từ '0' lên '1', cờ ngắt TMR2IF mới được bật". Nhưng vấn đề 1 thì mình vẫn chưa rõ:

Về sự khác nhau giữa INTOSC và INTOSCIO mình ok. nhưng vấn đề của mình là thế này: SCS quy định bộ dao động nội hoặc clock source được định nghĩa trong FCSC. Mình thấy cả 2 cái INTOSC và INTOSCIO cũng đều là dao động nội tuy nhiện lại được chọn khi SCS=0 và được định nghĩa bởi giá trị của FCSC (100 & 101). 2 dao động này khác với dao động nội khi ta chọn SCS=1 như thế nào?
Thanks!
bluexylitol vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-08-2009, 09:40 PM   #5
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi bluexylitol View Post
Ok, thanks 2 bạn. Vấn dề 2 mình đã hiểu, đặc biệt là phần giải thích của bạn @namqn "Nếu chọn giá trị cho bộ chia trước là 1:n thì sau n lần ngõ ra bộ so sánh đổi trạng thái từ '0' lên '1', cờ ngắt TMR2IF mới được bật". Nhưng vấn đề 1 thì mình vẫn chưa rõ:

Về sự khác nhau giữa INTOSC và INTOSCIO mình ok. nhưng vấn đề của mình là thế này: SCS quy định bộ dao động nội hoặc clock source được định nghĩa trong FCSC. Mình thấy cả 2 cái INTOSC và INTOSCIO cũng đều là dao động nội tuy nhiện lại được chọn khi SCS=0 và được định nghĩa bởi giá trị của FCSC (100 & 101). 2 dao động này khác với dao động nội khi ta chọn SCS=1 như thế nào?
Thanks!
SCS = 1 hay dùng SCS = 0 kết hợp với FOSC<2:0> = 100/101 thì đều cho kết quả là PIC dùng bộ dao động nội (tần số bằng bao nhiêu thì do IRCF<2:0> trong thanh ghi OSCCON quyết định). Tuy nhiên, FOSC<2:0> thì không thể được thay đổi khi đang thực thi chương trình (vì chúng là các bit trong từ cấu hình), còn SCS thì có thể được thay đổi khi đang thực thi chương trình.

Việc dùng SCS cho phép chương trình ứng dụng linh hoạt chuyển đổi nguồn xung clock hệ thống. Ví dụ, bạn có thể dùng thạch anh ngoài 20 MHz để đạt tốc độ xử lý nhanh nhất có thể có, và cấu hình tần số bộ dao động nội ở giá trị thấp nhất để tiết kiệm điện năng. Khi chương trình ứng dụng thực thi, bạn chỉ cần thay đổi giá trị SCS để chuyển đổi giữa hai nguồn xung clock, nhằm đáp ứng tốt với các yêu cầu tính toán, cũng như tiết kiệm được điện năng trong lúc chờ thông tin từ người dùng (vòng lặp chờ người dùng nhấn phím hoặc delay thì bạn đâu cần cho PIC chạy ở tốc độ tối đa).

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lờ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:17 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