Hi guys well had some time to continue with this , changes to proposed cct are the voltage small in that the voltage divider has 27k to supply and 15k to ground to give voltage in to porta.0 of 2.8 - 1.4v , and languer was right in that a 150R for R12 was need to to be able to drive to ground to fully turn on the Pch mosfet
Problem is setup the ACD section for the 16F1825/29 chips and are not sure if i am doing it correctly , and have gone on what i read in the chip data
Also i not sure what results i should get when looking at the value it reads and how it relates so some help with how it is calculated
As can be seen from the code comments for each part this is what i am expecting
at the moment my debug write result to eeprom is giving a value of 3 ?? so something is not right
cheers
Sheldon
Code:' ---------- Gets a Voltage reading on Port1.0 --------- ' Note: - Application circuit has a 3.3v voltage reg fitted so could use VDD as Vref in ASCON1 register ' - have used the ADC Fixed Voltage Ref Modual in 16F1825. ' - PortA.0 ia also used as Digital Output of Power LED active low via Pch - Mosfet ' - Supply Voltage input range is 8.1V - 3.5V to Voltage divider ( Vsupply --> 27k -|- 15K -- GND) giving ADC input on PORTA.0 = 2.8 - 1.4V ' ( PortA.0 ) Get_volts : ADCON0 = %00000001 ' bit 7 -N/A , Bit 6-2 = ADC chan Sel /Tempature output /FVR output = AN0 sel = 00000 , ' Bit 1 - Go/_done status flag - 1 = Go do ADC / 0 = Done ADC , Bit 0 = Enable ADC = 1 / 0 = Disable ADC ADCON1 = %10100011 ' bit 7 = 1 ADFM ( ADRESH, ADRESL - right justify ).Bit 6-4 ADCS = 010 - Fosc/32 conversion clock ' Bit3 - N/A , Bit2 = 0 (Vref- is connected to Vss) , Bit1-0 = 11 - Vref+ connected to FVR Modual FVRCON = %10000010 ' Bit 7 =1 enable Fixed Voltage Ref Modual, Bit 6 = VRef ready bit =1 always ok on 16F1825, Bit 5 - Temp indicator 1= enable/0 = disable ' Bit 4 = Temp Indicator Range Sel 0=Vout -Low range / 1= Vout -High range , Bit 3-2 = 00( DAC Fixed volt sel ) ' Bit 1-0 = 10 - ADC Fixed Vref of 2.048v pauseus 10 ' allow Vref to stablise - ??? - not required for the 16F1825/29 ?? ANSELA = %00000001 ' Set Port A.0 - Analoge I/O , 0 = Digital 1 = Analog TRISA = %00001001 ' setup Port A.0 input=1,output=0 for I/O pins ( Note RA3 - is input only (digital)- refer spec) adcin 0, ADval ' Read PortA.0 value into variable , this applies the fixed voltage ref (via ADCON0,ADCON1,FVRCON) ' to comparitor and ADC pin selected and gives result ??? write $01 ,ADval.byte0 ' debug of voltage measurement - lower byte write $02 ,ADval.byte1 ' debug of voltage measurement - upper byte If ADval <= 1024 then ' Have no idea of the value its going to get ?? , but if below value of 1.6V ( 4.5v Vsupply) then set Power low values Pulse_off = 500 ' Set Pulse_off duration to 500us to signal power low to IR_RX Flash_rate = 10 ' Set Power Led toggle to fast rate to show low power Else Pulse_off = 276 ' Set Pulse_off duration to 300us( adj) to signal NOT power low to IR_RX Flash_rate = 100 ' Set Power Led toggle to Normal rate to show NOT low power endif ' Restore PortA.0 to digital . ACD OFF etc ADCON0 = %00000000 ' Set ADC to Disable - Bit 0 = Enable ADC = 1 / 0 = Disable ADC ANSELA = %00000000 ' Set Port A.0 = 0 Digital, 0 = Digital 1 = Analog TRISA = %00001000 ' setup Port A.0 input=1,output=0 for I/O pins ( Note RA3 - is input only (digital)- refer spec) return




Bookmarks