Hi everybody, Well iam new to this forum and hope to get help from 'experts'here! Iam doing my Thesis on Microcontroller based Maximum Power Point Tracker for Solar PV. As iam not expert in embedded,but i know programming in 8051.In the same project i have to take voltage and current from solar panel at the same time and have to multiply(and many more operation) and also i need to have signal from the battery.For all this i need atlist 4 ADC.So i decided to use ADC0808. My question is that:can i get same instant data(voltage and current) or i get data one by one from ADC. Since the problem of external ADC will b not there if i use PIC or AVR,but i dont have idea of programming on same.So please if anybody have idea about same then please share with me. Thankx.
Thanks Kurzman and Erik. Well iam attaching my program part (ADC for ADC0848) here below in assembly program to get digital data(V,I) after some offset from the panel. Please let me know this is ok or not. Can i give clock to ADC0808 using 555 in astable mode as in case of non avaibality of ADC0848? And also please let me know is there any good books for PIC microcontroller for begaineers.As iam just in the begaining so i need ur help. Thanks.
;-----------------Program of ADC0848 to get V,I INCLUDE 8051.MC CS BIT P2.4 RD BIT P2.5 WR BIT P2.6 INTR BIT P2.7 ORG 0000H SETB INTR ;MAKE INTR AS INPUT SETB CS ;SET CHIP SELECT HIGH SETB RD ;SET READ HIGH SETB WR ;SET WR HIGH BACK: ;---CH 2 SELECT ADDRESS-->VOLTAGE SIGNAL INPUT MOV P1,#09H NOP ;WAIT CLR CS ;CHIP SELECT CLR WR ;WRITE =LOW NOP ;MAKE PULSE WIDTH WIDE ENOUGH NOP SETB WR ;LATCH ADDRESS AND START Conv. SETB CS ;DESELECT THE CHIP MOV P1,#OFFH ;-------MAKE P1 AS INPUT(DIGITAL DATA FROM ADC0848) HERE: JB INTR,HERE ;WAIT FOR EOC CLR CS ;CHIP SELECT=0 CLR RD ;READ RD=0 NOP ;MAKE PULSE WIDTH WIDE ENOUGH NOP SETB RD;BRING OUT DIGITAL DATA MOV R1,P1;GET VALUE OF VOLTAGE TO R1 NOP ;----DESELECT FOR NEX ROUND-->FOR CURRENT SIGNAL INPUT SETB CS SETB INTR ;MAKE INTR AS INPUT SETB CS ;SET CHIP SELECT HIGH SETB RD ;SET READ HIGH SETB WR ;SET WR HIGH BACK: ;-----------CH 3 SELECT ADDRESS-->CURRENT SIGNAL INPUT MOV P1,#0AH NOP ;WAIT CLR CS ;CHIP SELECT CLR WR ;WRITE =LOW NOP ;MAKE PULSE WIDTH WIDE ENOUGH NOP SETB WR ;LATCH THE ADDRESS AND START CONVERSION SETB CS ;DESELECT THE CHIP MOV P1,#OFFH ;MAKE P1 AS INPUT(DIGITAL DATA FROM ADC0848) HERE: JB INTR,HERE ;WAIT FOR EOC CLR CS ;CHIP SELECT=0 CLR RD ;READ RD=0 NOP ;MAKE PULSE WIDTH WIDE ENOUGH WIDE NOP SETB RD ;BRING OUT DIGITAL DATA MOV A,P1 ;GET VALUE OF VOLTAGE TO A
With such poor resolution wouldn't you be better off using a micro controller with built in A2D? This solves numerous problems not the least of which is interfacing the A2d converter to the processor.
I recommend (if you want good precision and a very inclusive part), TI's microsystem converter (focus.ti.com/.../parametricsearch.tsp).
I suggest since your doctorate will ride on this you take extreme steps to guarantee that things work correctly. I suggest going over every part of the system to ensure the data you get is accurate and you can PROVE it's accurate. This includes flow charts for your code and how the data is computed.
I don't believe an old 8bit ADC is a wise choice. You may have 2 significant digits of accuracy there. Micro system converter with ADC have 4 to 6 significant digit accuracy with built in reference etc.
Stephen