PDA

View Full Version : pic 18f4331 có chạy được thạch anh 40Mhz ko?


sandro_bk
18-10-2007, 03:30 PM
các bác cho em hỏi pic 18f4331 có chạy được = thạch anh 40Mhz ko?nếu được thì xài tụ bao nhiêu?làm sao để khai báo chạy chế độ fosc*4
em hàn thử thạch anh 40Mhz,tụ 15pF
khai báo #fuses HS,....
em khai báo power_pwm như thế này
setup_power_pwm(PWM_FREE_RUN,1,0,162,0,1,0)
theo đúng lý thuyết period = 162*4*100ns=64.8ms phải ko?
nhưng đo = dao động ký period khoãng 92ms,sao thế nhẩy?
thay = thạch anh 16Mhz,tụ 22pF thì khoãng 80ms
có ai làm bộ inverter rùi cho hỏi tần số kích pwm là bao nhiêu thì hợp lý,theo một số tài liệu kích khoãng 16Khz

namqn
19-10-2007, 08:34 PM
các bác cho em hỏi pic 18f4331 có chạy được = thạch anh 40Mhz ko?nếu được thì xài tụ bao nhiêu?làm sao để khai báo chạy chế độ fosc*4
em hàn thử thạch anh 40Mhz,tụ 15pF
khai báo #fuses HS,....
em khai báo power_pwm như thế này
setup_power_pwm(PWM_FREE_RUN,1,0,162,0,1,0)
theo đúng lý thuyết period = 162*4*100ns=64.8ms phải ko?
nhưng đo = dao động ký period khoãng 92ms,sao thế nhẩy?
thay = thạch anh 16Mhz,tụ 22pF thì khoãng 80ms
có ai làm bộ inverter rùi cho hỏi tần số kích pwm là bao nhiêu thì hợp lý,theo một số tài liệu kích khoãng 16Khz
Theo datasheet của PIC18F4331, tần số của thạch anh ngoài không nên vượt quá 25 MHz. Do đó, nếu bạn muốn có tần số clock là 40 MHz thì nên dùng chế độ HSPLL, với thạch anh ngoài là 10 MHz.

Thân,

sandro_bk
19-10-2007, 10:40 PM
cảm ơn bác đã trả lời,có điều em xài CCS khai báo #fuses cho thạch anh ko có chế độ HSPLL mà chỉ có HS thôi,thế là đành bó tay

namqn
20-10-2007, 12:24 AM
cảm ơn bác đã trả lời,có điều em xài CCS khai báo #fuses cho thạch anh ko có chế độ HSPLL mà chỉ có HS thôi,thế là đành bó tay
Bạn mở tập tin .h của CCS C cho PIC18F4331 ra xem thử, tôi cho là bạn có thể tìm được fuse tương ứng với chế độ HSPLL của PIC18F4331. Tài liệu hướng dẫn của CCS C có đoạn "options vary depending on the device", và những giá trị LP, XT, HS, RC chỉ là những giá trị phổ biến cho các cấu hình bộ dao động.

Tôi không khẳng định điều gì về việc CCS C có hỗ trợ HSPLL cho các PIC18, vì tôi không dùng CCS C. Trên đây là gợi ý của tôi (vì tôi tin rằng các trình biên dịch nếu đã hỗ trợ chip thì sẽ hỗ trợ đầy đủ các tính năng).

Ngoài ra, CCS C không phải là trình biên dịch C duy nhất cho PIC18 (MPLAB C18 SE là bản miễn phí, có đầy đủ tính năng của bản full trong 60 ngày, sau đó chỉ giới hạn khả năng tối ưu mã, tôi cho là quá đủ đối với sinh viên hay người dùng thông thường).

Thân,

sandro_bk
20-10-2007, 03:17 AM
cám ơn bác đã quan tâm,tôi đã coi thử đúng là có khai báo để hoạt động cho chế độ HSPLL,tôi cũng muốn viết bằng ngôn ngữ khác để hiểu rõ hơn về pic
tiện đây tôi xin bày tỏ suy nghĩ riêng của mình,thật ra tôi cũng ko thích xài CCS lắm vì nó quá đơn giản,đơn giản đến mức tôi ko cần quan tâm chương trình tác động đến những thanh ghi gì,ví dụ để khai báo biến đổi adc tôi chỉ cần khai báo như sau:
setup_adc_ports( ALL_ANALOG );
setup_adc(ADC_CLOCK_INTERNAL );
set_adc_channel( 0 );
value = read_adc();
tôi ko quan tâm những thanh ghi nào làm việc và làm việc như thế nào,như vậy tôi sẽ ko cần phải tốn công đọc datasheet để tìm hiểu xem để biến đổi adc phải khai báo như thế nào,vì thế chắc chắn tôi sẽ ko tìm hiểu sâu về pic và cuối cùng là làm pic nhưng ko biết gì về pic cả,theo bác như vậy có tốt ko?đặc biệt với các bạn mới nghiên cứu pic
tuy nhiên cũng có cái lợi là khi đó tôi chỉ cần quan tâm đến giải thuật thôi mà ko phải quan tâm nhiều đến các thanh ghi sẽ làm việc như vậy sẽ đỡ mất thời gian mày mò
à tôi định viết bằng htpic nhưng trong diễn đàn này nhiều phiên bản quá ko biết xài cái nào đây?bác chỉ giúp với

bien_van_khat
20-10-2007, 02:35 PM
HSPLL là macro của C18
Với CCS nó là H4.

Để coi các tên các cờ cấu hình trong CCS, bạn mở PCWH, trong đó có mục valid fuses chứa tất cả các cờ của các device mà CCS hỗ trợ.

Dùng công cụ phát triển nào hầu như chỉ do thói quen, với mình, CCS C= dễ + nhanh, nên thời gian viết, sửa chửa một fw giảm đi rất nhiều. Bản thân CCS C cũng có nhiều hạn chế, nhưng chỉ khi nào có một số yêu cầu khắt khe như về timing mình mới dùng C18.

Dù CCS C hỗ trợ rất nhiều built-in function, nhưng cũng ko thể nói ko cần datasheet được, chỉ là giảm mức độ quan trọng của datasheet đi chút đỉnh thôi.

Nếu bạn mới học, cần hiểu biết cơ bản về VĐK, theo mình assembly là tốt nhất.

THANDONGDATVIET
21-11-2007, 10:30 AM
Có bác nào giao tiếp RS232 với Pic8f4431 chưa nhỉ(sử dụng CCS). Tôi dùng với 16f877 thì ngon ơ, chuyển sang dùng con 18f4431 này thì mãi chẳng được. Chẳng biết nó có cấu hình gì đặc biệt khác với con 16f877 không nhỉ ? Bác nào dùng rồi chỉ cho em ít kinh nghiệm với.
Thank !