EmbeddedRelated.com
Forums

preventing SPI noise on ADC

Started by Glenn July 11, 2004
How can I best prevent noise on the SPI lines communicating 
between my ADC (Burr-Brown 16-bit 8-ch ADS8344) and a 5V 
microcontroller (AVR ATmega32)?

I've tried to keep the digital lines as far away from the 
analog lines as possible, and have a 2-layer design with 
seperate analog / digital ground planes.

Should I buffer all the SPI lines?  if so, which buffer 
chips would be suitable?
Do I use series resistors?

I've seen some opto-isolated designs, but we'll be running 
off of the same power supply for the AD and the 
microcontroller and they will only be a couple of 
centimetres apart.


Thanks.

Glenn wrote:
> How can I best prevent noise on the SPI lines communicating between my > ADC (Burr-Brown 16-bit 8-ch ADS8344) and a 5V microcontroller (AVR > ATmega32)? > > I've tried to keep the digital lines as far away from the analog lines > as possible, and have a 2-layer design with seperate analog / digital > ground planes.
AFAIK I had similar problems and i fixed it with TL431 Voltage ref on ADS Vref pin. Assume that power lines are noiseless, Vcc logic and Vcc analog should be physicaly separate with two PCB tracks connected to CP power (100uF Tantalium) Vlogic -----------------------------------| Vanal ---/\/\/\-------| ----- | 10 ----- ----- C2 Power --- ----- C1 Power | --- 100nF | | | | AGND | -------------------- ----- DGND With LARGE tracks on AGND, DGND and Vlogic. a simple 1order RC filter on Vanal may improve noise immunity of analog path. Mux COM input as close as possible to AGND Finally i placed a high stability 2.5V ref on input and the average of 100,000 samples shows a very good distribution.
> Should I buffer all the SPI lines? if so, which buffer chips would be > suitable? > Do I use series resistors? > > I've seen some opto-isolated designs, but we'll be running off of the > same power supply for the AD and the microcontroller and they will only > be a couple of centimetres apart. > > > Thanks. >
Good Luck, Habib.
In article <eX6Ic.178$RD4.4750@news20.bellglobal.com>, 
monkeytech@sympatico.ca says...
> How can I best prevent noise on the SPI lines communicating > between my ADC (Burr-Brown 16-bit 8-ch ADS8344) and a 5V > microcontroller (AVR ATmega32)? > > I've tried to keep the digital lines as far away from the > analog lines as possible, and have a 2-layer design with > seperate analog / digital ground planes. > > Should I buffer all the SPI lines? if so, which buffer > chips would be suitable?
Probably not necessary.
> Do I use series resistors?
Probably not necessary.
> > I've seen some opto-isolated designs, but we'll be running > off of the same power supply for the AD and the > microcontroller and they will only be a couple of > centimetres apart. >
If you look at the data sheet, most SPI ADC converters will show a sampling method that has the SPI lines quiescent during the actual conversion and then active again after the conversion to transfer the data. There is quite often a faster method which clocks out the data as the conversion takes place and may actually use the SPI clock as the conversion clock. This may result in more conversion noise. The best way to get good noise results is to keep the SPI lines stable during the conversion as much as possible, and use an internal clock as the conversion clock. This may reduce your maximum conversion rate, but life is full of such tradeoffs. The ADS8344 data sheet discusses these tradeoffs on Page 14.
> > Thanks. > >
Mark Borgerson
Hi Glenn,

You got some good advice here. Just one more comment: Splitting digital 
and analog ground may often not be such a good idea. In theory a split 
might work but at several MHz into the noise spectrum which your SPI and 
other clock transitions will certainly create, such a separation 
vanishes quickly. Then it becomes an uncontrolled matter where these 
grounds really meet and by how much.

I never use split grounds unless there is an isolation requirement for 
safety reasons, such as in medical gear.

Regards, Joerg

http://www.analogconsultants.com
Glenn wrote:
> How can I best prevent noise on the SPI lines communicating between my > ADC (Burr-Brown 16-bit 8-ch ADS8344) and a 5V microcontroller (AVR > ATmega32)? > > I've tried to keep the digital lines as far away from the analog lines > as possible, and have a 2-layer design with seperate analog / digital > ground planes. > > Should I buffer all the SPI lines? if so, which buffer chips would be > suitable? > Do I use series resistors? > > I've seen some opto-isolated designs, but we'll be running off of the > same power supply for the AD and the microcontroller and they will only > be a couple of centimetres apart.
To start with, when the SPI is running to read out the values, then ADC already has a conversion finished. So the SPI signals to the ADC to rerad it out are of no convern. However, the signals on the SPI lines that are not caused by your intent to read out the ADC are of concern. I went as fas as trying the magnetic isolators from Analog devices, ADum1400 and such, but they are somewhat overkill. Yes, series resistors on the SPI lines dampen the reflections. Rene -- Ing.Buero R.Tschaggelar - http://www.ibrtses.com & commercial newsgroups - http://www.talkto.net
And no SPI lines under the ADC device will also help.

Gerard