PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   PIC16F88x-sự phát triển tiếp theo của PIC16F87xA (http://www.picvietnam.com/forum/showthread.php?t=939)

namqn 26-02-2007 07:44 PM

PIC16F88x-sự phát triển tiếp theo của PIC16F87xA
 
Được Microchip gọi là "Mid-Range Product Evolution", các chip PIC16F88x có những tính năng chính như sau:

Trích:

1. Special Microcontroller Features:
Precision Internal Oscillator:
- Factory calibrated to ±1%
- Software selectable frequency range of 8 MHz to 32 kHz
- Software tunable
- Two-Speed Start-Up mode
- Fail-safe clock monitoring for critical applications
- Clock mode switching during operation for low-power operation

Power-Saving Sleep mode

Power-on Reset (POR)

Selectable Brown-out Reset (BOR) voltage

Extended Watchdog Timer (WDT) with its own on-chip RC oscillator for reliable operation

In-Circuit Serial Programming™ (ICSP™) via two pins

In-Circuit Debug (ICD) via two pins

High-endurance Flash/EEPROM cell:
- 100,000 erase/write cycle enhanced Flash program memory, typical
- 1,000,000 erase/write cycle data EEPROM memory, typical
- Data EEPROM retention > 40 years

Self-reprogrammable under software control

Programmable code protection

Peripheral Features:
2. Device Features:
- 1 input only pin
- 36 I/O
- High sink/source current 25 mA
- Interrupt-on-pin change option

Timers:
- TMR0: 8-bit timer/counter with 8-bit prescaler
- TMR1 enhanced: 16-bit timer/counter with prescaler, External Gate Input mode and dedicated low-power 32 kHz oscillator
- TMR2: 8-bit timer/counter with 8-bit period register, prescaler and postscaler

Capture/Compare/PWM (CCP) module

Enhanced Capture/Compare/PWM (ECCP) module with auto-shutdown and PWM steering

Master Synchronous Serial Port (MSSP) module
SPI™ mode, I2C™ mode with address mask capability

Enhanced Universal Synchronous Asynchronous
Receiver Transmitter (EUSART) module:
- Supports RS-485, RS-232 and LIN compatibility
- Auto-Baud Detect
- Auto-wake-up on Start bit

Ultra Low-Power Wake-up (ULPWU)

3. Analog Features:

10-bit 14 channel Analog-to-Digital (A/D) Converter

2 Analog Comparator modules with:
- Programmable on-chip Voltage Reference
(CVREF) module (% of VDD)
- Fixed 0.6 Vref
- Comparator inputs and outputs externally accessible
- SR Latch mode
PIC16F88x đã loại bỏ PSP trong PIC16F87xA, nhưng chuyển 1 CCP thành ECCP, 1 USART thành EUSART, Timer 1 thành Enhanced Timer 1, bổ sung 6 kênh A/D, và thêm internal oscilator, so với PIC16F87xA.

Thân,

tinhyen 22-08-2007 05:47 PM

các bác có thể cho em biết ưu nhược điểm của Pic18f877h

tmtm 16-05-2008 12:36 PM

Em đọc datasheet nhưng ko hiểu lắm về ưu điểm của ECCP của Pic16f887 so với CCP của Pic16f877A. Anh Nam có thể chỉ bảo giúp em được ko?

namqn 16-05-2008 08:46 PM

Trích:

Nguyên văn bởi tmtm (Post 16261)
Em đọc datasheet nhưng ko hiểu lắm về ưu điểm của ECCP của Pic16f887 so với CCP của Pic16f877A. Anh Nam có thể chỉ bảo giúp em được ko?

So với CCP, ECCP bổ sung thêm các chức năng cho phần tạo PWM. CCP chỉ có thể xuất PWM ở 1 chân (CCPx), còn ECCP có thể tạo tín hiệu PWM ở 1 trong 4 chế độ, sử dụng từ 1 đến 4 chân của PIC.

Với CCP, bạn vẫn có thể điều khiển một mạch cầu H (trong datasheet gọi là Full-Bridge) từ chân CCPx, nhưng cần phải có thêm mạch logic ngoài. Module ECCP tích hợp các mạch logic đó vào PIC, cùng với các tính năng khác như thêm thời gian chết (dead-band), tự động tắt module ECCP theo yêu cầu, hay tự động khởi động lại module, và một số tính năng khác.

Thân,

tmtm 16-05-2008 10:16 PM

Em học PIC lại bắt đầu luôn với CCSC, tiếng Anh cũng kém nên nhiều vấn đề còn chưa hiểu sâu. Em chưa hiểu ý của anh: "ECCP có thể tạo tín hiệu PWM sử dụng từ 1 đến 4 chân của PIC". Em xem trong datasheet, hình 11-5, trang 132 cũng thấy họ nói tới điều đó, nhưng em chưa rõ P1C, P1B, P1D là những chân nào trên sơ đồ chân Pic16F887? em xem sơ đồ chân thì chỉ thấy chân 16 và 17 là CCP2, CCP1 thôi.?

namqn 16-05-2008 11:13 PM

Trích:

Nguyên văn bởi tmtm (Post 16290)
Em học PIC lại bắt đầu luôn với CCSC, tiếng Anh cũng kém nên nhiều vấn đề còn chưa hiểu sâu. Em chưa hiểu ý của anh: "ECCP có thể tạo tín hiệu PWM sử dụng từ 1 đến 4 chân của PIC". Em xem trong datasheet, hình 11-5, trang 132 cũng thấy họ nói tới điều đó, nhưng em chưa rõ P1C, P1B, P1D là những chân nào trên sơ đồ chân Pic16F887? em xem sơ đồ chân thì chỉ thấy chân 16 và 17 là CCP2, CCP1 thôi.?

Với PIC16F887, ECCP có thể tạo PWM ở những chân sau:
17 - RC2/P1A/CCP1
28 - RD5/P1B
29 - RD6/P1C
30 - RD7/P1D

Thân,

tmtm 17-05-2008 12:33 AM

Theo ý hiểu của em thì với pic16F877A, khi sử dụng CCSC để lập trình thì ta có thể dùng các lệnh tác động lên time2 để bật tắt chức năng tạo tín hiệu PWM trên các chân C1 và C2. Vậy, với Pic16F887 thì việc "tự động tắt module ECCP theo yêu cầu, hay tự động khởi động lại module" có gì khác với Pic16F877A không anh?

namqn 17-05-2008 07:05 AM

Về chức năng tự động tắt module: module sẽ tự động đặt các ngõ ra ở trạng thái đã quy định trước để tránh hư hỏng cho mạch ngoài khi có một sự kiện đặc biệt nào đó xảy ra. Sự kiện đặc biệt này có thể là một ngắt ngoài, ngõ ra của các bộ so sánh, hay phần mềm yêu cầu. Điều này giúp cho module phản ứng nhanh hơn với các sự cố, chẳng hạn như quá tải, quá nhiệt được báo về qua ngắt. PIC16F877A cũng có thể thực hiện những điều này, nhưng phải bằng phần mềm, do đó chậm hơn và tiêu hao chu kỳ máy cũng như dung lượng bộ nhớ chương trình.

Về chức năng tự động khởi động lại module: nếu chức năng này được bật thì sau khi điều kiện kích hoạt tự động tắt module ECCP được gỡ bỏ, module sẽ tự động được kích hoạt lại và trở lại hoạt động bình thường. PIC16F877A không có chức năng này vì không có chức năng tự động tắt module.

Thân,

tmtm 17-05-2008 09:51 AM

"module sẽ tự động đặt các ngõ ra ở trạng thái đã quy định trước để tránh hư hỏng cho mạch ngoài khi có một sự kiện đặc biệt nào đó xảy ra. Sự kiện đặc biệt này có thể là một ngắt ngoài, ngõ ra của các bộ so sánh, hay phần mềm yêu cầu"
Anh Nam cho em hỏi thêm 1 câu 'thiếu iôt' nhé, theo ý hiểu của em thì khi có tín hiệu đặc biệt đưa tới một chân thực hiện ngắt ngoài của Pic16F887, hoặc một trạng thái không mong muốn ở đầu ra của bộ so sánh thì Pic sẽ tự động tắt module. Vậy "các ngõ ra ở trạng thái đã quy định trước" và việc thực hiện tắt module theo các điều kiện như anh nói chẳng phải vẫn do lập trình mới đạt được? Anh có thể nói rõ hơn giúp em được ko?

namqn 17-05-2008 08:31 PM

Trích:

Nguyên văn bởi tmtm (Post 16299)
"module sẽ tự động đặt các ngõ ra ở trạng thái đã quy định trước để tránh hư hỏng cho mạch ngoài khi có một sự kiện đặc biệt nào đó xảy ra. Sự kiện đặc biệt này có thể là một ngắt ngoài, ngõ ra của các bộ so sánh, hay phần mềm yêu cầu"
Anh Nam cho em hỏi thêm 1 câu 'thiếu iôt' nhé, theo ý hiểu của em thì khi có tín hiệu đặc biệt đưa tới một chân thực hiện ngắt ngoài của Pic16F887, hoặc một trạng thái không mong muốn ở đầu ra của bộ so sánh thì Pic sẽ tự động tắt module. Vậy "các ngõ ra ở trạng thái đã quy định trước" và việc thực hiện tắt module theo các điều kiện như anh nói chẳng phải vẫn do lập trình mới đạt được? Anh có thể nói rõ hơn giúp em được ko?

Với PIC16F887, bạn đặt cấu hình cho PIC chỉ một lần khi khởi tạo chế độ làm việc của module ECCP, sau đó PIC sẽ tự động đưa các ngõ ra về trạng thái đã được cấu hình khi có sự cố xảy ra dẫn đến tự động tắt module ECCP.

Với PIC16F877A, nếu bạn muốn có tính năng tương tự, bạn phải viết chương trình để PIC đưa các ngõ ra đến trạng thái bạn mong muốn mỗi khi có sự cố dẫn đến cần phải tắt module CCP và định trạng thái cho các ngõ ra.

Tóm lại, nếu phần cứng (ngoại vi) hỗ trợ chức năng đó thì chúng ta thường chỉ cần đặt cấu hình thích hợp, và phần cứng (ngoại vi) sẽ tự động xử lý các tình huống. Ngược lại, cần phải viết phần mềm để phát hiện và xử lý các tình huống đó, như vậy sẽ tiêu tốn thêm thời gian xử lý của vi điều khiển, hoặc bổ sung phần cứng bên ngoài để thực hiện các chức năng đó, như vậy sẽ khiến mạch điện trở nên rườm rà hơn. Vi điều khiển được chế tạo với mục đích thu gọn mạch điện của bộ điều khiển vào trong chip (vi điều khiển bao gồm lõi vi xử lý, bộ nhớ chương trình và dữ liệu, cùng với các khối ngoại vi để giao tiếp với thế giới bên ngoài).

Thân,

tmtm 17-05-2008 09:20 PM

Em đã đọc qua Tuto về PSP của anh Chính, cũng nắm sơ sơ về ưu nhược điểm của giao tiếp này. Với Pic16F887, Microchip loại bỏ module này, vậy đây có phải là hạn chế của Pic16F887 so với Pic16F877A ko anh? Ko hiểu tại sao Microchip lại bỏ module này anh nhỉ?

namqn 17-05-2008 11:26 PM

Trích:

Nguyên văn bởi tmtm (Post 16312)
Em đã đọc qua Tuto về PSP của anh Chính, cũng nắm sơ sơ về ưu nhược điểm của giao tiếp này. Với Pic16F887, Microchip loại bỏ module này, vậy đây có phải là hạn chế của Pic16F887 so với Pic16F877A ko anh? Ko hiểu tại sao Microchip lại bỏ module này anh nhỉ?

Tôi không biết lý do Microchip loại bỏ module này. Nguồn thông tin chính xác nhất là từ phía Microchip, do đó nếu bạn quan tâm đến vấn đề này thì có thể hỏi ở forum của Microchip, nơi có các nhân viên của Microchip tham gia. Tôi chưa có cơ hội dùng PSP nên cũng chưa thử tìm hiểu vì sao Microchip không hiện thực nó trong PIC16F887 nữa.

Thân,

dongduong_spkt 15-05-2011 10:02 AM

cho em hỏi với,em có chương trình(code) viết cho 16f887a.liệu có dùng cho 16f877a không nhỉ?
phải chỉnh sửa những gì ạ?
viết cho cnc


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

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam