My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.
Not as dumb as yesterday, but stupider than tomorrow!
not reallyWe can't switch ADPCH manually between each Average?
it needs to take the number of readings to average in an uninterrupted exclusive sequence
once the average is obtained you can set a new channel and set the device to perform a new average
or cease averaging. a sequence cannot be interrupted for an additional extra adc read
or makes it worse if acquisition time is inadequate or marginal , the dummy read is most successfulI'm trying to switch ADPCH to 111100 = AVSS (Analog Ground) before each ADCIN to see if that fixes the problem.
not sure about this chip but when does channel change occur, a delay is probably required
i don't see any form of averaging here
Code:ADPCH = AVSS : adcin 0, ADCinput NewADC0 = 1023 - ADCinput ' inverted so pot goes from 0 to 1024 if NewADC0 <> oldadc0 then oldadc0 = NewADC0 ADCshift = NewADC0 / 4 LCDOUT $FE, $94+6, DEC4 oldadc0, " ", dec4 ADCshift : Pauseus 1 endif
Warning I'm not a teacher
there are heaps of other ways too
mean var word
ADCinput var word
average
Code:mean = 0 for i = 0 to 9 ADCIN 0, ADCinput mean = mean + ADCinput next mean = mean/10 DEBUG "mean ",DEC mean,",",DEC mean>>2,13,10
running average
Code:ADCIN 0, ADCinput mean = mean */ 200 + ADCinput */ 55 DEBUG "mean ",DEC mean,",",DEC mean>>2,13,10
Warning I'm not a teacher
There isn't. I thought it all happened in the background when you did ADCIN, the average was calculated, and results stored in output fields, like a normal ADCIN.
I guess you're telling me this is an on-going process, and ADCIN just gives you the average "at that point in time", but it keeps on going.
I thought setting this OFF meant we could disable continuous sampling:
16F18855
23.5.8 CONTINUOUS SAMPLING MODE
Setting the ADCONT bit in the ADCON0 register automatically retriggers a new conversion cycle after updating the ADACC register.
My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.
Not as dumb as yesterday, but stupider than tomorrow!
the computational adc is more complex than that, microchip have a number of YT clips on it usagesI guess you're telling me this is an on-going process, and ADCIN just gives you the average "at that point in time", but it keeps on going.
eg
i have never had any reason to use it to date
Warning I'm not a teacher
Ok, thanks.
I've reverted to legacy mode, still using FVR, removed all LCD components, added USART:
Code:#CONFIG __config _CONFIG1, _FEXTOSC_OFF & _RSTOSC_HFINT32 & _CLKOUTEN_OFF & _CSWEN_OFF & _FCMEN_ON __config _CONFIG2, _MCLRE_ON & _PWRTE_OFF & _LPBOREN_OFF & _BOREN_ON & _BORV_LO & _ZCD_OFF & _PPS1WAY_OFF & _STVREN_ON & _DEBUG_OFF __config _CONFIG3, _WDTCPS_WDTCPS_11 & _WDTE_OFF & _WDTCWS_WDTCWS_7 & _WDTCCS_LFINTOSC __config _CONFIG4, _WRT_OFF & _SCANE_available & _LVP_OFF __config _CONFIG5, _CP_OFF & _CPD_OFF #ENDCONFIG DEFINE OSC 32 DEFINE ADC_BITS 10 ' 10-bit Analog to digital DEFINE ADC_SAMPLEUS 50 ' Set sampling time in uS DEFINE HSER_RXREG PORTC DEFINE HSER_RXBIT 7 DEFINE HSER_TXREG PORTC DEFINE HSER_TXBIT 6 DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive DEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1 Define HSER_BAUD 115200 DEFINE HSER_CLROERR 1 ' Clear overflow automatically DEFINE HSER_SPBRGH 0 DEFINE HSER_SPBRG 68 ;--- Setup registers ----------------------------------------------------------- BAUDCON.3 = 1 ' Enable 16 bit baudrate generator FVRCON = %10000011 ' FIXED VOLTAGE REFERENCE CONTROL REGISTER ' bit 7 FVREN: Fixed Voltage Reference Enable bit ' ---> 1 = Fixed Voltage Reference is enabled ' bit 1-0 ADFVR<1:0>: ADC FVR Buffer Gain Selection bit ' ---> 11 = ADC FVR Buffer Gain is 4x, (4.096V)(2) ADCON0 = %10000100 ' ADC CONTROL REGISTER 0 ' bit 7 ADON: ADC Enable bit ' ---> 1 = ADC is enabled ' bit 2 ADFRM0: ADC results Format/alignment Selection ' ---> 1 = ADRES and ADPREV data are right-justified ADCON2 = %00000000 ' ADC CONTROL REGISTER 2 ' bit 2-0 ADMD<2:0>: ADC Operating Mode Selection bits(1) ' ---> 000 = Basic (Legacy) mode ADCLK = %00111111 ' ADC CLOCK SELECTION REGISTER ' bit 5-0 ADCCS<5:0>: ADC Conversion Clock Select bits ' ---> 111111 = FOSC/128 ADREF = %00000011 ' ADC REFERENCE SELECTION REGISTER ' bit 4 ADNREF: ADC Negative Voltage Reference Selection bit ' ---> 0 = VREF- is connected to AVSS ' bit 1-0 ADPREF: ADC Positive Voltage Reference Selection bits ' ---> 11 = VREF+ is connected to FVR_buffer 1 ADPCH = %00000000 ' ADC POSITIVE CHANNEL SELECTION REGISTER ' ---> 000000 = ANA0 ANSELA = %00001001 ' Pin A3 = ADC (voltage divider) ' Pin A0 = ADC (B5K) ANSELB = %00000000 ANSELC = %00000000 TRISA = %00001001 ' Pin A3 = ADC input 3 ' Pin A0 = ADC input 0 TRISB = %00000000 ' Pin B7 = ...not available, ICSPDAT ' Pin B6 = ...not available, ICSPCLK TRISC = %11000000 ' Pin C7 = RX *** Datasheet requirement, INPUT *** ' Pin C6 = TX *** Datasheet requirement, INPUT *** ADCinput var WORD ADCdiff var WORD OldADC0 var WORD OldADC3 var WORD Pause 100 ' Let PIC and LCD stabilize ADCinput = 0 : ADCdiff = 0 OldADC0 = 9999 : OldADC3 = 9999 Hserout [ "ADC TEST", _ 10, _ "Initial values = 9999", 10, 10] Mainloop: rem ADC 0 adcin 0, ADCinput : adcin 0, ADCinput if ADCinput < oldADC0 then ADCdiff = oldadc0 - adcinput else ADCdiff = adcinput - oldadc0 endif if ADCinput <> oldADC0 then oldADC0 = ADCinput Hserout [ "B5K pot = ", dec4 ADCinput," diff = ", dec4 ADCdiff, 10] while TXSTA.1 = 0 ' Check TRMT bit wend endif rem ADC 3 adcin 3, ADCinput : adcin 3, ADCinput if ADCinput < oldADC3 then ADCdiff = oldadc3 - adcinput else ADCdiff = adcinput - oldadc3 endif if ADCinput <> oldADC3 then oldADC3 = ADCinput Hserout [ " ", _ "Volt/divider = ", dec4 ADCinput," diff = ", dec4 ADCdiff, 10] while TXSTA.1 = 0 ' Check TRMT bit wend endif GOTO Mainloop end
This is what I get now, variations of 1 and 2 mostly:
Code:ADC TEST Initial values = 9999 B5K pot = 0680 diff = 9319 Volt/divider = 0627 diff = 9372 B5K pot = 0681 diff = 0001 Volt/divider = 0628 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0681 diff = 0001 B5K pot = 0679 diff = 0002 Volt/divider = 0627 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0629 diff = 0002 B5K pot = 0679 diff = 0001 Volt/divider = 0630 diff = 0001 Volt/divider = 0629 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0630 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0629 diff = 0001 Volt/divider = 0628 diff = 0001 Volt/divider = 0629 diff = 0001 Volt/divider = 0628 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0629 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0628 diff = 0001 Volt/divider = 0629 diff = 0001 B5K pot = 0678 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0628 diff = 0001 B5K pot = 0678 diff = 0001 Volt/divider = 0629 diff = 0001 B5K pot = 0680 diff = 0002 B5K pot = 0679 diff = 0001 B5K pot = 0678 diff = 0001 Volt/divider = 0630 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0678 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0678 diff = 0001 Volt/divider = 0631 diff = 0001 Volt/divider = 0632 diff = 0001 Volt/divider = 0631 diff = 0001 Volt/divider = 0632 diff = 0001 B5K pot = 0677 diff = 0001 B5K pot = 0678 diff = 0001 Volt/divider = 0631 diff = 0001 Volt/divider = 0630 diff = 0001 B5K pot = 0677 diff = 0001 B5K pot = 0679 diff = 0002 B5K pot = 0678 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0629 diff = 0001 B5K pot = 0678 diff = 0001 Volt/divider = 0628 diff = 0001 Volt/divider = 0629 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0678 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0628 diff = 0001 Volt/divider = 0629 diff = 0001 B5K pot = 0678 diff = 0001 Volt/divider = 0628 diff = 0001 Volt/divider = 0627 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0678 diff = 0001 Volt/divider = 0628 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0678 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0627 diff = 0001 Volt/divider = 0628 diff = 0001 B5K pot = 0678 diff = 0001 Volt/divider = 0627 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0678 diff = 0001 Volt/divider = 0628 diff = 0001 Volt/divider = 0627 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0626 diff = 0001 B5K pot = 0678 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0678 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0625 diff = 0001 B5K pot = 0678 diff = 0001 Volt/divider = 0627 diff = 0002 B5K pot = 0679 diff = 0001 Volt/divider = 0626 diff = 0001 Volt/divider = 0627 diff = 0001 Volt/divider = 0626 diff = 0001 Volt/divider = 0627 diff = 0001 B5K pot = 0678 diff = 0001 Volt/divider = 0626 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0678 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0678 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0678 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0678 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0678 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0627 diff = 0001 B5K pot = 0678 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0678 diff = 0001 Volt/divider = 0628 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0627 diff = 0001 B5K pot = 0678 diff = 0001 Volt/divider = 0626 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0627 diff = 0001 Volt/divider = 0628 diff = 0001 B5K pot = 0678 diff = 0001 Volt/divider = 0627 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0626 diff = 0001 B5K pot = 0678 diff = 0001 Volt/divider = 0627 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0626 diff = 0001 B5K pot = 0678 diff = 0001 Volt/divider = 0627 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0626 diff = 0001 B5K pot = 0678 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0678 diff = 0001 Volt/divider = 0625 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0626 diff = 0001 B5K pot = 0678 diff = 0001 Volt/divider = 0625 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0626 diff = 0001 Volt/divider = 0625 diff = 0001 Volt/divider = 0626 diff = 0001 Volt/divider = 0625 diff = 0001 Volt/divider = 0626 diff = 0001 B5K pot = 0678 diff = 0001 Volt/divider = 0625 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0626 diff = 0001 Volt/divider = 0625 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0626 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0625 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0624 diff = 0001 Volt/divider = 0625 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0624 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0625 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0624 diff = 0001 Volt/divider = 0625 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0624 diff = 0001 Volt/divider = 0625 diff = 0001 Volt/divider = 0624 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0625 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0624 diff = 0001 Volt/divider = 0625 diff = 0001 Volt/divider = 0624 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0623 diff = 0001 Volt/divider = 0624 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0678 diff = 0001 Volt/divider = 0624 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0625 diff = 0001 Volt/divider = 0624 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0623 diff = 0001 Volt/divider = 0624 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0624 diff = 0001 B5K pot = 0681 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0624 diff = 0001 B5K pot = 0681 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0624 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0624 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0624 diff = 0001 B5K pot = 0681 diff = 0002 Volt/divider = 0623 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0624 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0624 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0625 diff = 0001 Volt/divider = 0624 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0624 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0681 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0624 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0681 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0681 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0622 diff = 0001 B5K pot = 0681 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0623 diff = 0001 Volt/divider = 0622 diff = 0001 B5K pot = 0681 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0623 diff = 0001 Volt/divider = 0622 diff = 0001 B5K pot = 0681 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0681 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0681 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0681 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0681 diff = 0001 Volt/divider = 0623 diff = 0001 Volt/divider = 0622 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0681 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0681 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0681 diff = 0001 Volt/divider = 0623 diff = 0001 Volt/divider = 0622 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0622 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0681 diff = 0001 Volt/divider = 0622 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0624 diff = 0002 Volt/divider = 0623 diff = 0001 Volt/divider = 0624 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0624 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0681 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0623 diff = 0001 Volt/divider = 0624 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0624 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0624 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0624 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0623 diff = 0001 Volt/divider = 0624 diff = 0001 Volt/divider = 0623 diff = 0001 Volt/divider = 0624 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0624 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0624 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0624 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0624 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0624 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0680 diff = 0001 B5K pot = 0679 diff = 0001 Volt/divider = 0622 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0622 diff = 0001 Volt/divider = 0623 diff = 0001 B5K pot = 0679 diff = 0001 B5K pot = 0680 diff = 0001 Volt/divider = 0622 diff = 0001
Last edited by Demon; - 24th February 2025 at 23:39.
My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.
Not as dumb as yesterday, but stupider than tomorrow!
With those differences, I suppose I should add a mean average and call it a day.
My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.
Not as dumb as yesterday, but stupider than tomorrow!
Would dual TPS56637 step-down circuits help me reduce noise by PWM, LCD and other "noisy stuff"?
Would diodes help in further isolating the 2 circuits? (like blocking surges) I looking for the minimum voltage for the TPS56637 circuit now, to make sure the voltage drop from 2 diodes wouldn't interfere with 9V input.
I'd use dedicated PICs per function; 1 for input on top circuit, 1 for output on bottom circuit.
Last edited by Demon; - 25th February 2025 at 00:24.
My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.
Not as dumb as yesterday, but stupider than tomorrow!
Bookmarks