Yeah, I ran several data profiles with the panels shielded from light or under dark conditions before moonlight.I assume that was tested in the dark, yes?
Yeah, I ran several data profiles with the panels shielded from light or under dark conditions before moonlight.I assume that was tested in the dark, yes?
Reference noise is irrelevant. The input voltage is ratiometrically related to the reference. I'll probably eliminate the reference for the final design with, theoretically, no reduction in performance. I'll report back when I've confirmed this.
I could increase the current through the transducer, thus developing a larger signal.
Success!Wait...I have an idea...
No, it won't! Yes, the transducer current increases (by 32%), but the overall current stays approximately the same*. I forgot that I was biasing the reference. Without the reference, the excess current required to keep the reference biased is eliminated. So -- more signal, less S/N, same operating current....but that'll impact my battery life (another project criteria).
How is that possible? Is it because of the alternating polarity technique that you mentioned, as it cancels any noise produced by that switching DC-DC converter?I removed the LM4040 entirely -- the transducer and the ADS1242 are now driven directly by a MCP1640 3.3V switcher. Noise penalty: the equivalent of 4 nV P-P over 1 minute
Magic.How is that possible?
No. I scrapped the chopper -- extra complexity for no measurable improvement.Is it because of the alternating polarity technique that you mentioned, as it cancels any noise produced by that switching DC-DC converter?
What low-drift problem (aside from what this entire discussion has been about)?Also, how did you solve the low drift problem?
I should've known...Magic.
My bad, I meant to write "long term, low drift" ... referring to your quote:What low-drift problem (aside from what this entire discussion has been about)?
FYI, the objective is long-term stability (i.e. minimal drift and very low low-frequency noise).
Very impressive.So, my total 1 minute P-P noise is now the equivalent of 75nV - 24nV + 4nV = 55 nV, a 27% improvement. Yay!
I started this thread to report successfully meeting the objective of a new project. It turned into, "Can I do better?" And the answer was, "Yes".My bad, I meant to write long term, low drift ... referring to your quote:
Just to be perfectly clear, I am now reporting numbers based on "equivalency" to the old design -- so as to make comparison to the original numbers easy.Very impressive.
An instructor I once had would have said "That's smaller than a flea fart".
;process iir filter
pushsint adsxn ;put current value on stack
pushfpc ffca0 ;get a0 coefficient
call mulf ;stack -> A0*Xn
pushfl adsyn ;get Yn
pushfl ffcb0 ;get b0 coefficient
call mulf ;stack -> B0*Yn
call addf ;stack -> B0*Yn + B1*Yn-1
pushfl adsyn1 ;get Yn-1
pushfl ffcb1 ;get b1 coefficient
call mulf ;stack -> B1*Yn-1
call addf ;stack -> A0*Xn + B0*Yn + B1*Yn-1
;copy Yn to Yn-1
movflfl adsyn,adsyn1
;capture new filter output to Yn for next pass
peekfl adsyn
Mind elaborating what the "mulf" function is/does? Or does it just multiply by a factor?For fun, here's the assembly code to process the IIR filter:
Code:;process iir filter pushsint adsxn ;put current value on stack pushfpc ffca0 ;get a0 coefficient call mulf ;stack -> A0*Xn pushfl adsyn ;get Yn pushfl ffcb0 ;get b0 coefficient call mulf ;stack -> B0*Yn call addf ;stack -> B0*Yn + B1*Yn-1 pushfl adsyn1 ;get Yn-1 pushfl ffcb1 ;get b1 coefficient call mulf ;stack -> B1*Yn-1 call addf ;stack -> A0*Xn + B0*Yn + B1*Yn-1 ;copy Yn to Yn-1 movflfl adsyn,adsyn1 ;capture new filter output to Yn for next pass peekfl adsyn
mulf -- floating point multiplyMind elaborating what the "mulf" function is/does? Or does it just multiply by a factor?
'nuff said... thanks. Another question... did you write those .asm routines yourself? I only write .asm for the 8051, that's why I'm asking.mulf -- floating point multiply
divf -- floating point divide
addf -- floating point add
subf -- floating point subtract
...etc.
I write all my own libraries and code. I've never used a third party library. And I've never met a programmer I'd trust with my livelihood.'nuff said... thanks. Another question... did you write those .asm routines yourself? I only write .asm for the 8051, that's why I'm asking.
I'm with you on that... unless the code is open source. I just hate black boxes... that's why I'm disliking MS Windows more and more.I've never used a third party library
It's one of the main reasons why I dislike C for microcontrollers -- aside from the compiler inefficiencies.I'm with you on that... unless the code is open source. I just hate black boxes... that's why I'm disliking MS Windows more and more.
+1I write all my own libraries and code. I've never used a third party library. And I've never met a programmer I'd trust with my livelihood.
Besides, why would I pay someone to interpret what I want to tell the microcontroller to do when I can just tell it what to do directly myself?
Only cryogenics can help me now. It's pure Johnson noise.Also, try wrapping the whole thing in pink (no-stat) bubble wrap. Air currents over the board can create localized static charges...