[time-nuts] [Solved] Looking for multiple PPS timestamp logging

Tijd Dingen tijddingen at yahoo.com
Tue Oct 4 12:16:30 EDT 2011

On Tue, Oct 4, 2011 at 11:03 AM, Kevin Rosenberg <kevin at rosenberg.net> wrote:

> What I haven't decided is whether to have my son use the 34401A and GPIB

> polling via a Prologix adapter versus a simple MCU firmware using a 2.5V
> reference voltage and a 10-12 bit ADC and outputs the ADC result either
> once a second, or in response to a pulse (probably from the PPS of the XO).
> The first has merits of accuracy and simplicity, but I prefer he use
> more affordable devices than the 34401A in his experiment to even his 
> project compared with other students. The latter has the advantage of 
> price, but the disadvantage of me writing the firmware (though, the 
> firmware is almost trivial). But again, I'd like him to be as 
> independent as possible.

> So, if you know of any simple ADC to UART firmwares available, that'd
> be great so he can just reference someone else's code. The picPET
> is a perfect device at the perfect time. But, we can't rely on tvb
> to come up with a 'picADC' at a similarly serendipitous time.

You mentioned wanting to use the parallel port under linux for pps purposes, right?

So if some parallel port programming is acceptable, then you can do the following:
- get an adc with SPI bus (which means plenty of choice)
- connect the 3 SPI wires to parallel port
- bitbang spi (just google "bitbang spi" and you'll find example code. it's pretty simple to do yourself and a fairly forgiving protocol (timing wise))

Alternatively you could use a microcontroller with both spi and uart (microchip and atmel have plenty), and use that to serve as uart <--> spi bridge. Or for something like a 10 bit ADC you can use the internal adc of the MCU. 

Simplest: use the 34401A.

Cheapest: a small MCU of you choice, use the internal ADC.

Pretty darn good...est:
- get an ADS1258EVM board for about $50
- bring your own supply voltage
- bitbang spi on the parallel port
- bitbang i2c on the parallel port (this is optional for this board, not strictly needed)

And now with some minimal programming you have a 16-input 24-bit ADC, to (try and) rival that 34401A. It's one of those ADC's with an input multiplexer, so you have only one delta-sigma engine (read: 1 conversion at a time). For the lower sample rates you mentioned that is not an issue. You can also use the 16 inputs as 8 differentials.

I use one of these ads1258evm's myself roughly that way, and I like it. I say "roughly" because I use an fpga board to do spi and i2c on the ADC side, and usb on the PC side. But the idea is the same. The expense is ~ $50 and time. The reward is a nice multi-input 24-bit ADC controlled from the PC.


More information about the time-nuts mailing list