Reply by AmyLe September 18, 20072007-09-18
Hi everyone,

Thank you for your responses, I have a better understanding of the
interface now.  Thanks a lot!

Reply by Mark Borgerson September 15, 20072007-09-15
In article <mt2dnVtxyYjognbbnZ2dnUVZ_hudnZ2d@web-ster.com>, 
tim@seemywebsite.com says...
> On Fri, 14 Sep 2007 20:57:52 +0000, AmyLe wrote: > > > Hey, > > > > Oh yeah, I'm using the ADC78H90 (http://www.national.com/pf/DC/ > > ADC78H90.html). But in general, where should I start? > > I general, you should start with three things: the ADC data sheet, the > processor data sheet, and a brain. By preference the brain should belong > to you, but if you must use one that doesn't then you should consider > brain training aids, like offers of beer. > > Aside from these three necessary things, an oscilloscope is handy, to let > the brain make sure that the code is doing what it should. > > Have the brain read both of the data sheets, particularly the sections > that pertain to the SPI interface. Have the brain write whatever code is > necessary to make the processor emit the necessary bit stream for the ADC, > and read in the bit stream from the ADC. While you're at it, have the > brain look at the schematic of the board. > > This may not work at first -- you may have to flog the brain for a while > to get it to write code that works. Hence the preference for using your > own brains -- other people tend to get upset when you flog their brains. > This is also where the 'scope comes in handy -- usually having a 'scope > handy during the initial trials will significantly reduce the amount of > time you have to flog the brain. > > Good luck, and don't forget the beer. >
Simplified versin: Make sure that you can see a clock on SCLK when you call the ADC conversion routine. No Clock to ADC == No data! You can do this stuff without fancy logic analyzers. You can do it without a COMPLETE understanding of the chip. You CANNOT do it without an oscilloscope! Mark Borgerson
Reply by Neil September 15, 20072007-09-15
AmyLe wrote:
> Hey, > > Oh yeah, I'm using the ADC78H90 (http://www.national.com/pf/DC/ > ADC78H90.html). But in general, where should I start? >
1) figure the correct SPI. The data may transfer on the rising or falling edge of the clock. Check the MPU data sheet and the A2D data sheet timing diagrams. 2) Check the clock rate. the A2D has a maximum clock rate and sometimes a minimum rate.
Reply by Tim Wescott September 14, 20072007-09-14
On Fri, 14 Sep 2007 20:57:52 +0000, AmyLe wrote:

> Hey, > > Oh yeah, I'm using the ADC78H90 (http://www.national.com/pf/DC/ > ADC78H90.html). But in general, where should I start?
I general, you should start with three things: the ADC data sheet, the processor data sheet, and a brain. By preference the brain should belong to you, but if you must use one that doesn't then you should consider brain training aids, like offers of beer. Aside from these three necessary things, an oscilloscope is handy, to let the brain make sure that the code is doing what it should. Have the brain read both of the data sheets, particularly the sections that pertain to the SPI interface. Have the brain write whatever code is necessary to make the processor emit the necessary bit stream for the ADC, and read in the bit stream from the ADC. While you're at it, have the brain look at the schematic of the board. This may not work at first -- you may have to flog the brain for a while to get it to write code that works. Hence the preference for using your own brains -- other people tend to get upset when you flog their brains. This is also where the 'scope comes in handy -- usually having a 'scope handy during the initial trials will significantly reduce the amount of time you have to flog the brain. Good luck, and don't forget the beer. -- Tim Wescott Control systems and communications consulting http://www.wescottdesign.com Need to learn how to apply control theory in your embedded system? "Applied Control Theory for Embedded Systems" by Tim Wescott Elsevier/Newnes, http://www.wescottdesign.com/actfes/actfes.html
Reply by CBFalconer September 14, 20072007-09-14
AmyLe wrote:
> > Oh yeah, I'm using the ADC78H90 (http://www.national.com/pf/DC/ > ADC78H90.html). But in general, where should I start?
Start what? Believe it or not, that is why normal Usenet users quote the pertinant parts of the previous messages. Usenet is a 'best efforts' delivery mechanism, and there is no guarantee that your reader has ever, or ever will in the future, read any other messages. Thus it is essential that the quotes make each message complete in itself. -- Chuck F (cbfalconer at maineline dot net) Available for consulting/temporary embedded and systems. <http://cbfalconer.home.att.net> -- Posted via a free Usenet account from http://www.teranews.com
Reply by AmyLe September 14, 20072007-09-14
Hey,

Oh yeah, I'm using the ADC78H90 (http://www.national.com/pf/DC/
ADC78H90.html).  But in general, where should I start?

Reply by John Speth September 14, 20072007-09-14
"AmyLe" <amyle.01@gmail.com> wrote in message 
news:1189789319.398691.36650@k79g2000hse.googlegroups.com...
> I want to know how I can interface the SPI with an external ADC. Has > anyone done this before? Also, I prefer using polling instead of > interrups.
First, you need to select an ADC. No additional work can proceed until you've selected it. JJS
Reply by AmyLe September 14, 20072007-09-14
Hi,

I want to know how I can interface the SPI with an external ADC.  Has
anyone done this before? Also, I prefer using polling instead of
interrups.



Here is my INIT SPI function:

=============================INIT_SPI=================================

void Init_SPI(void)
{
  P3SEL |= 0x3F;		      // Select P3.0,1,2,3,4,5
  P3DIR |= 0x0B;                    // Select P3.1,3 as output
directions
  P3OUT &= ~0x01;
  ME1 |= USPIE0;                    // ENABLE USART0 SPI
  UCTL0 |= CHAR + SYNC + MM;        //  8-bit data, SPI mode
  UTCTL0 |=  CKPH + CKPL + SSEL1;  //  Inv.delay, ACLK
  UBR00 = 0x2A;                     // Baud Rate = 115200
  UBR10 = 0x0;
  UMCTL0 = 0x0;                     // Clear Modulation
  UCTL0 &= ~SWRST;                  // Initialize USART state machine

  //_BIS_SR(LPM3_bits + GIE);         // Enter LPM0 w/interrupt

} //end Init_SPI

====================================================================

I'm using IAR.  Thank you so much for your help!