Thanks Alain,
You analyzed all situations. Thank you. Let me try to explain all story.
I'm a physics researcher at University. I study on polymer physics. I also graduated from Electronics technical high school, from now on, electronics is a hobby for me. I'm trying to make some controller devices to use in our polymer lab. We have a special hand made oven to anneal some polymer thin films at some constant temperatures (0-500 C). I transformed its "antique" (from 1990's) controller to a modern pic circuit. An E-Type (chromel-constantan) thermocouple is embedded in the oven, thermocouple temperature-voltage conversion table is loaded in the pic18F252. Approx. 60 uV/C x 100 times with OP27 opamps = 6 mV/C *500 =3500 mV max. Voltage reference is 2048 mV, so 1 step=2 mv. Resolution is approx. 2/6=0.3 C/step. At 500 C, Tcouple voltage is about 3700 mV. Namely, I can't reach the temps. above 2048 mV(approx.280 C) and my resolution is 0,3. If my ref. voltage was 4096 mV (with a 12-bit ADC), my resolution would be 1/6=0.16 C/step and also one can measure beyond 500 C.
İncreasing the resolution is important for fast detecting of changes in temp. to keep the desired oven temperature.( I have written a "smart" code to fix it.). Data appears on the 6x led-displays and also transferred to a PC via RS232. It has many more features (clock, timer, alarm, statistics, scrolling menus, user programmable tcouple tables...30kB of 32kB is Full). I've attached the photos. I did specially not designed it with LCD screen and USB communication. My aim was produce a cheap, easy-to-make device for distrubute it other experimental workers. I successfully designed similar circuits with Maxim's 12-16 bit ADCs. But they are expensive and hard to be made.
PIC18F2523 is a 12-bit pic. It's ADC module is same with 18F2520 or other new USB pics (18F2550, 4550..). First, as a beginning, I replaced the 18F252 with 18F2520 and changed the ADC code, but there's always a non-linear difference (10-20 mV at best condition), then I tried other new pics on a protoboard with many additions (filters etc.) and many different combinations in AD registers' parameters in the code, did not work.
Anyway, I think I'll give up.
I hope you understand my English. Thanks everybody.
Selim




Bookmarks