home *** CD-ROM | disk | FTP | other *** search
/ Peanuts NeXT Software Archives / Peanuts-2.iso / Developer / hardware / dsp / drbub / board / note6 < prev    next >
Encoding:
Text File  |  1991-09-07  |  3.9 KB  |  92 lines

  1. Building a DSP board, Part Six: SM5805s, leave the driving to us
  2. ----------------------------------------------------------------
  3.  
  4. This is the sixth in a series on how I went about building
  5. a dual Motorola DSP56000 sampling board.
  6.  
  7. The SM5805 plays a major role in my board.  It provides the signals
  8. for driving the S/Hs, the DACs, the ADCs, and the 56000 itself.
  9. We'll start on the input side of things and step thru all of the
  10. signals that it generates.
  11.  
  12. Here's a diagram of the signals that apply...
  13.  
  14. Processor (clock) output:
  15.      ---+                                +-------
  16. LRCK    +---------------------------------------------------------------+
  17. (left-right clock)
  18.      ---+                +-------------------------------+
  19. WDCK    +-------------------------------+                +-------
  20. (word clock)
  21.  
  22. SM5805 output:
  23.      ---+                        +---------------+
  24. SH    +-----------------------------------------------+        +-------
  25. (sample/hold mode control)
  26.     +-+                                +-+
  27. CC   ---+ +-------------------------------------------------------------+ +-----
  28. (ADC convert command)
  29.      ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++         ++ ++ +
  30. BBC  ----++-++-++-++-++-++-++-++-++-++-++-++-++-++-++-++-++--------------++-++-+
  31. (bit rate clock)
  32.  
  33. ADC output:
  34.  
  35. DINL        |ms|15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2|ls                |ms|
  36. (left channel data)
  37.  
  38. DINR        |ms|15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2|ls                |ms|
  39. (right channel data)
  40.     +------------------------------------------------+        +-------
  41. STATUS--+                         +--------------+
  42. (convert done)
  43.  
  44. Data to 56000:
  45.         +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ 
  46. OBCK   -+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-
  47. (bit rate clock)
  48.  
  49. DOL     |msb| 15| 14| 13| 12| 11| 10| 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |lsb|msb| 15
  50. (from SM5805 - merged bitstream)    left channel at t-1         rt chan
  51.  
  52.  
  53. After going thru the analog filters, the first thing that must be done
  54. to the signal is sampling and holding.  The reason the signal must be
  55. held is that our ADC (like most 16bit ADCs today) uses successive approximation
  56. to determine the analog value.  It has a DAC inside.  It tries a DAC value,
  57. and if the analog signal is bigger, it increases the DAC value and tries the
  58. comparison again.  Remember that it is almost impossible to match the value
  59. exactly, so it keeps retrying until it is within +/- 1/2 DAC step.  If
  60. the analog value wasn't held, the ADC might never converge.
  61.  
  62. Okay, look at the SH and CC signals.  When SH is high, the sample/hold
  63. lets the output signal float.  When low, it clamps the analog value.
  64. So, the SM5805 tells the s/h to hold the signal and then tells the ADCs to
  65. sample the signal.  BBC is the bit rate clock used to tell the ADCs to
  66. get the next bit of serial data out the door.  The first pulse on BBC
  67. tells the ADC we are ready, and the next pulses clock out all 16 bits.
  68. Note that these are not the 16 bits that go out the SM5805 in the merged
  69. bitstream.  The SM5805 uses the samples from t-1/2 (remember, the output
  70. is decimated) and t-1 and t-n/2 all the way to n = 121 (it uses a 121st
  71. order FIR filter) to generate the output at t.
  72.  
  73. The output is clocked by OBCK (this can be generated from the master
  74. clock) for the bitrate, and LRCK and WDCK for the left/right channel
  75. designation and the word clock.  LRCK is the oversampling sample rate
  76. and WDCK is twice that value.
  77.  
  78. The DAC side of things works almost completely the same way, except
  79. that the merged bitstream is the input to the SM5805 and the oversampling
  80. bitstream is the output.  In other words, the SM5805 is interpolating.
  81. Another small difference is that the oversampling bitstream completely
  82. fills the time taken by the word clock, instead of just a portion.
  83. The sample/holds hold the signal during the time that the output from the
  84. DACs might have spikes.
  85.  
  86. BTW, I think I calculated that the highest (final, i.e. no oversampling)
  87. sampling rate using my methods is about 52 kHz, so it will work with
  88. DAT players.
  89.  
  90. Next: Serial Loader Bootstrap.  Let's boot this puppy and run with it!
  91.  
  92.