PDA

View Full Version : hỏi về A/D trên port B


littlephoc
21-06-2007, 03:38 PM
Mình muốn nhận tín hiệu analog trên cổng RB3 RB4 RB5 để chuyển thành tín hiệu số. chip đang dùng là PIC18F2620.
Trên cổng A thì mình thấy nhiều sample rồi nhưng trên cổng B thì không biết.
Mong chỉ giúp:
// Constants used in SETUP_ADC_PORTS() are:
#define NO_ANALOGS 0x0F // None
#define ALL_ANALOG 0x00 // A0 A1 A2 A3 A5 B2 B3 B1 B4 B0
#define AN0_TO_AN11 0x03 // A0 A1 A2 A3 A5 B2 B3 B1 B4

cổng B0, B1 đã được dùng để nhận tín hiệu digital, cổng B3 B4 B5 thì muốn được config để trở thành cổng input analog.

namqn
21-06-2007, 07:01 PM
Mình muốn nhận tín hiệu analog trên cổng RB3 RB4 RB5 để chuyển thành tín hiệu số. chip đang dùng là PIC18F2620.
Trên cổng A thì mình thấy nhiều sample rồi nhưng trên cổng B thì không biết.
Mong chỉ giúp:
// Constants used in SETUP_ADC_PORTS() are:
#define NO_ANALOGS 0x0F // None
#define ALL_ANALOG 0x00 // A0 A1 A2 A3 A5 B2 B3 B1 B4 B0
#define AN0_TO_AN11 0x03 // A0 A1 A2 A3 A5 B2 B3 B1 B4

cổng B0, B1 đã được dùng để nhận tín hiệu digital, cổng B3 B4 B5 thì muốn được config để trở thành cổng input analog.
Cấu hình các bit PCFG<3:0> trong thanh ghi ADCON1 để chọn các chân dùng làm analog và digital pin. Theo đó, bạn có thể có các chân AN0 đến AN9 là analog nếu chọn các bit này là '0101', như vậy chân RB3 sẽ mang chức năng AN9, và chân RB2 sẽ là AN8. Nhưng nếu bạn muốn RB4 cũng là chân analog thì bạn phải sử dụng tổ hợp cho phép từ AN0 đến AN11 (với PCFG<3:0>='0011'), và trong trường hợp này chân B1 cũng sẽ là chân analog (AN10). Chân RB5 không thể dùng làm chân analog.

Các bit PCFG<3:0> đã được thể hiện trong đoạn code ví dụ của bạn, ở đó, chúng là các bit thấp của hằng số 8 bit. Với cách định nghĩa tương tự như trên để dùng cho SETUP_ADC_PORTS(), bạn sẽ có:

#define AN0_TO_AN9 0x05 // A0 A1 A2 A3 A5 B2 B3

Kết luận, mission của bạn là impossible, trừ khi bạn điều chỉnh lại phần cứng. Nếu bạn không rõ lắm về thiết kế phần cứng, hãy cho biết yêu cầu về số chân analog cần thiết, và các chân chưa được sử dụng.

Thân,