Académique Documents
Professionnel Documents
Culture Documents
.jspa> * * * * * Inicio </welcome> Actividad0 </activity> Comunicaciones </communications> Acciones0 </actions> Buscar </content>Ms <#> o Contenido </content> o Personas </people> o Lugares </places> o Marcadores </bookmarks>
Buscar:Search <#>Advanced Search <search.jspa?firstLoad=1> Analog Devices Worldwide Technical Support <http://www.analog.com/en/content/technical_support_page/fca.html> EngineerZone <http://ez.analog.com/welcome> Todos los lugares </places> Direct Digital Synthesis (DDS) </community/dds> Discusiones </community/dds/content?filterID=content~objecttype~objecttype[thread]> Ingrese un ttulo. No puede publicar un mensaje en blanco. Ingrese su mensaje y vuelva a intentar. *11 Respuestas* Respuesta ms reciente </message/19939?tstart=0#19939>: 24/02/2011 09:27 PM por Radarsign RSS </community/feeds/messages?thread=5197> AD9958 non-documented startup issue </message/16378#16378> Esta pregunta es una *supuesta respuesta.* Radarsign </people/Radarsign> Member *Radarsign </people/Radarsign>* 2/12/2010 08:22 AM Actualmente moderados A AD9958 is being used as a quadrature generator for radar testing. None of the modulation capabilities of this part are being used. The part did produce very nice sine waves but a recent code change caused the output to disappear. A SPI logic probe verified that the device was receiving the proper initialization code, same code as when the part produced an output. Register values are below.
freqh = $0040 freql = $0fb9 ' 33.333Mhz for 32583hz output default
phase = $0000 CSR = $c2 ' FR1a = $00 ' FR1b = $0000 FR2 = $0040 CFRa = $00 CFRb = $0201 ACRa = $00 ACRb = $13FF
' phase in MSB 14 bits ch0=$42, ch1=$82, both=$c2 temp set so PLL is off
A 5us positive going pulse on IO_UPDATE at the completion of the register data load sends the values to the core.
We went back to the code change and discovered that we had terminated SYNC_IO ((SDIO_3) low as we were in 2 bit serial comm mode and we did not need to terminate a serial command early. This should be the proper termination for this pin in such cases but this was the cause of the output not being updated. See page 31, left column, paragraph 6 of the data sheet.
Examining the prior working code we observed that SDIO_3 was high during the 5ms reset pulse and when brought low after the reset but before the DDS' chip select was brought low. This enables the proper output signal to be generated but is not in the documentation. Terminating SDIO_3 high or low causes the output to not function. It seems to need to be high and then go low to enable proper operation.
What is the proper sequence of signals to properly bring up the device with SDIO_3, Master Reset, and IO_UPDATE? None of the timing diagrams in the data sheet seem to show this requirement of SYNC_IO needing to have a high to low transition.
A schematic is attached.
Charles Jenkins Radarsign * HTX TEST Quadrature Gen D.pdf </servlet/JiveServlet/download/16378-4495/HTX%20TEST%20Quadrature%20Gen%20D. pdf> (279.1 K) * 3671 Vistas * Etiquetas: ninguno (agregar <#>) quadrature </community/dds/tags#/?tags=quadrature>, dds </community/dds/tags#/?tags=dds>, ad9958 </community/dds/tags#/?tags=ad9958>, sync_io
</community/dds/tags#/?tags=sync_io> * *1. </message/16398#16398> Re: AD9958 non-documented startup issue </message/16398#16398> * Georgy </people/Georgy> Regular Contributor *Georgy </people/Georgy> * 2/12/2010 11:23 AM (en respuesta a Radarsign </message/16378#16378>) Actualmente moderados Hi, Radarsign! I hope only one CLK used with? (There are two CLKs = 20 MHz and 33,333 MHz)/ And R208 (A...D) resistance? Not large? This ones may be in the way programing. o Reportar abuso </message-abuse!input.jspa?objectID=16398&objectType=2> o Me gusta (0 <#>) * *2. </message/16424#16424> Re: AD9958 non-documented startup issue </message/16424#16424> * Radarsign </people/Radarsign> Member *Radarsign </people/Radarsign> * 2/12/2010 03:06 PM (en respuesta a Georgy </message/16398#16398>) Actualmente moderados Hello Georgy
Thank you for your insight. The two clocks are options. Of course only one at a time :-). R208 is 10K and is just for unknown options if needed. Easier to overdrive a resistor than cut a trace. Since the IO functions of these pins are not programmed their termination should not matter.
As far as programming is concerned the same code was used to produce a sine wave or produce a zero output (no current sinks operating DC level on output is 1.8V). The only difference is in how I manipulated the SDIO_3 while in 2 wire mode. In this mode SDIO_3 is
supposed to be used to stop a register load at some time before the end if brought high so I figured terminating it low was best if that function is not needed. Termination low means no putput. Same with termination high. Only if it transitions high to low does the output function. This is what I am curious about. No info on this in the data sheet.
From: Georgy Shebetovskiy analog@sgaur.hosted.jivesoftware.com <mailto:analog@sgaur.hosted.jivesoftware.com> Sent: Thursday, December 02, 2010 11:23 AM To: Charles Jenkins Subject: Re: AD9958 non-documented startup issue <http://ez.analog.com/message/16424#16424> New message: "AD9958 non-documented startup issue" Re: AD9958 non-documented startup issue <http://ez.analog.com/message/16424#16424>
reply from Georgy <http://ez.analog.com/people/Georgy> Shebetovskiy in Direct Digital Synthesis (DDS) - View the full discussion <http://ez.analog.com/message/16398#16398 o Reportar abuso </message-abuse!input.jspa?objectID=16424&objectType=2> o Me gusta (0 <#>) *
*3. </message/16449#16449> Re: AD9958 non-documented startup issue </message/16449#16449> * Georgy </people/Georgy> Regular Contributor *Georgy </people/Georgy> * 3/12/2010 04:39 AM (en respuesta a Radarsign </message/16424#16424>) Actualmente moderados Hi, *Radarsign*! None the less this resistance will be no more 1000 Ohm IMHO. (I know, MK with shorted data pin no worked.)
Regards! o Reportar abuso </message-abuse!input.jspa?objectID=16449&objectType=2> o Me gusta (0 <#>) * *4. </message/16563#16563> Re: AD9958 non-documented startup issue </message/16563#16563> * DSB </people/DSB> Analog Employee *DSB </people/DSB> * 6/12/2010 04:51 PM (en respuesta a Radarsign </message/16378#16378>) Actualmente moderados Hi Radarsign,
After power up, you should send a master reset to the AD9958. The master reset is an ansynchronous operation. A master reset sets the registers to their default state. See the register map for default register settings on pages 36 - 38.
Note, the default state for the serial port interface is single-bit two wire mode. In this mode, you must control the SDIO_3 line at all times. You could hardwire SDIO_3 low, if not used. There should be no reason for the SDIO_3 to toggle high then low or vica versa if not used. If you want to change communication to (single-bit three wire mode, or dual mode or 4 bit mode), you should first write to the CSR register and IO_UPDATE. Then continue programming in whatever serial interface mode desired.
There is a note in the data sheet (on page 33, 2nd column six
paragraph) concerning the importance of controlling SDIIO_3. See the following note below. This should extend to 2 wire mode and single-bit 3 wire mode also.
When programming the device for 4-bit serial mode, it is important to keep the SDIO_3 pin at Logic 0 until the device is programmed out of the single-bit serial mode. Failure to do so can result in the serial I/O port controller being out of sequence.
Note, I purposely shorted SDIO_3 and change from default to single-bit three wire mode and 2 bit mode and it worked as expected.
o Reportar abuso </message-abuse!input.jspa?objectID=16563&objectType=2> o Me gusta (0 <#>) * *5. </message/16574#16574> Re: AD9958 non-documented startup issue </message/16574#16574> * Radarsign </people/Radarsign> Member *Radarsign </people/Radarsign> * 6/12/2010 06:50 PM (en respuesta a DSB </message/16563#16563>) Actualmente moderados Your suggestions are right on and exactly what I expected with the exception of the last line.
Each register setting after that has a high to low CS transition with a return to high at the completion of the register serial programming. We are not in need of truncating the serial string.
After the last register is programmed we do a 5uS IO_Update and expect to see output from the DACs.
In our first code that worked SDIO_3 was high during reset and brought low a short time later. 10mS after SDIO_3 was brought low the register programming starts.
We then cleaned up a few port pins by recovering the drive to SDIO_3. We tied this line low. No output. We tied it high. No output. We set it high, reset the part and set it low. We got output.
I will be moving this around tomorrow to verify. I will also switch to 2 wire and see if it makes a difference. We never do a read command so it should not affect the current code.
I am also going to try a long CS that lasts the duration of all the register programming and see if that affects anything. How did you configure your CS for the register programming?
From: DSB analog@sgaur.hosted.jivesoftware.com <mailto:analog@sgaur.hosted.jivesoftware.com> Sent: Monday, December 06, 2010 4:52 PM To: Charles Jenkins
Subject: Re: AD9958 non-documented startup issue <http://ez.analog.com/message/16574#16574> New message: "AD9958 non-documented startup issue" Re: AD9958 non-documented startup issue <http://ez.analog.com/message/16574#16574>
reply from DSB <http://ez.analog.com/people/DSB> in Direct Digital Synthesis (DDS) - View the full discussion <http://ez.analog.com/message/16563#16563 o Reportar abuso </message-abuse!input.jspa?objectID=16574&objectType=2> o Me gusta (0 <#>) * *6. </message/16613#16613> Re: AD9958 non-documented startup issue </message/16613#16613> * DSB </people/DSB> Analog Employee *DSB </people/DSB> * 7/12/2010 09:01 AM (en respuesta a Radarsign </message/16574#16574>) Actualmente moderados I used the AD9958 evaluation board and software. As a result, the pulse widths of the CSB line varies all around depending on what's been programmed. It's also different between computers and their clock speeds. However, if you have good control of the SPI lines, the CSB line could be tied low all the time. The CSB feature was implemented for multiple parts sharing the same SPI interface lines. This to pick and choose the device to program.
o Reportar abuso </message-abuse!input.jspa?objectID=16613&objectType=2> o Me gusta (0 <#>) * *7. </message/17315#17315> Re: AD9958 non-documented startup issue </message/17315#17315> * Johann </people/Johann> Member *Johann </people/Johann> * 21/12/2010 05:26 PM (en respuesta a Radarsign </message/16378#16378>) Actualmente moderados Hello everybody!!
I`ve just logged in because I want you to support me please!! I am working with the ad9958 and I've reviewed datasheet over and over and I have the same problem!! I did not get the frequency output that I want. I am using the single bit two-wire configuration but I do not have an analyzer so I cannot see the entire communication between the software and the eval board. I am using an external microcontroller and I first send a master reset pulse, then an IO_UPDATE pulse and then I am only sending the tuning word (It is supposed I am in the default mode). When I saw that anything happens, I started to access register by register till the register 04, after that I send the IO_UPDATE signal but I still have the same problem. After that I started to use the SDIO_3, when accesing each register I toggle first SDIO_3 and then CS, do I have to send an IO_UPDATE at each register configuration?? An interesting point is what Radar mentions, the question is, in the first RESET pulse, do I have only to put in high SDIO_3 and then to put it in low state?? or in each process.
Thanks a lot!!!
Regars!! o Reportar abuso </message-abuse!input.jspa?objectID=17315&objectType=2> o Me gusta (0 <#>) * *8. </message/17331#17331> Re: AD9958 non-documented startup issue </message/17331#17331> * Radarsign </people/Radarsign> Member *Radarsign </people/Radarsign> * 21/12/2010 09:49 PM (en respuesta a Johann </message/17315#17315>) Actualmente moderados I found, and have not had time to test thoroughly, that in two or three wire mode, SDIO_3 needs to be high at the master reset to the 9958 and then go low after the reset. It should stay low for the remainder of the com cycle.
I thought that CS should go low at the start of the first register access and then stay low for all other accesses. While debugging another issue below I put in a CS cycle (high low high) at each register access but I think this is redundant. For systems that have no other devices on the spi data or clock, ADI says that CS can be tied low. In keeping with good SPI design practice I control it like any SPI peripheral.
My first experience with the part produced no output even though the SDIO_3 action referenced above was taking place. I had used another device as a guide to the output filter and forgot that this part has open drain current sources. I was terminating the DACs to ground! That will not work with the 9958. The DACs are current sink only and need pull ups. 50 ohms to 1.8V on the positive output and 25 ohms to 1.8V on the negative output works. See if you are feeding the DACs some current if your SPI is working like described above.
From: Johann analog@sgaur.hosted.jivesoftware.com <mailto:analog@sgaur.hosted.jivesoftware.com> Sent: Tuesday, December 21, 2010 5:27 PM To: Charles Jenkins Subject: Re: AD9958 non-documented startup issue <http://ez.analog.com/message/17331#17331> New message: "AD9958 non-documented startup issue" Re: AD9958 non-documented startup issue <http://ez.analog.com/message/17331#17331>
reply from Johann <http://ez.analog.com/people/Johann> in Direct Digital Synthesis (DDS) - View the full discussion <http://ez.analog.com/message/17315#17315 o Reportar abuso </message-abuse!input.jspa?objectID=17331&objectType=2> o Me gusta (0 <#>) * *9. </message/17345#17345> Re: AD9958 non-documented startup issue </message/17345#17345> * Johann </people/Johann> Member *Johann </people/Johann> * 22/12/2010 10:12 AM (en respuesta a Radarsign </message/17331#17331>) Actualmente moderados Hi Radarsign!
I am going to try doing what you told me about SDIO_3 in the master reset event. I think I should not have problem with the DAC's due to the first step of my project is by using the eval board, even so, I will check it. I've got another doubt about you mentioned before, when you said that you cleaned up some port pins for recovering the drive of the SDIO_3, did you do that process before or after having programmed the registers?
Thanks for your answer and I hope you can continue helping me!
Regards! o Reportar abuso </message-abuse!input.jspa?objectID=17345&objectType=2> o Me gusta (0 <#>) * *10. </message/19917#19917> Re: AD9958 non-documented startup issue </message/19917#19917> * Johann </people/Johann> Member *Johann </people/Johann> * 24/02/2011 01:16 PM (en respuesta a Johann </message/17345#17345>) Actualmente moderados Hi again Radarsign!
I still have the same problem with the AD9958, I have decided not to use the evalboard. I think it will be better if I do the PCB with the chip, but I am now facing another problem, I am doing the design in Altium and I saw that the schematic that you shared us, is done in the same software. . . so, could you share the schematic and the footprint? Because I reviewed in the Analog Devices web and they dont have it.
Regards! o Reportar abuso </message-abuse!input.jspa?objectID=19917&objectType=2> o Me gusta (0 <#>) * *11. </message/19939#19939> Re: AD9958 non-documented startup issue </message/19939#19939> * Radarsign </people/Radarsign> Member *Radarsign </people/Radarsign> * 24/02/2011 09:27 PM (en respuesta a Johann </message/19917#19917>) Actualmente moderados You can reply to me at refd123 and I will send the Altium files. This is a gmail account.
I have included the picbasic code I used to test the DDS. It turns out that SDIO_3 can be tied low, the DDS reset and then a standard SPI interface started composed of a high to low CS then the clocking out of ALL the register data. The final operation is to raise CS and then send a pulse to IO Update to send the shift registers to the DACs.
'*****************
'*****************
freqh
var word
freql
var word
phase
var word
'b7
channel 1 enable
'b6
ch 0 enable
'b5
'b4
'b3
'b2:1
' (SPI)
'
10 2 bit serial
'
11 4 bit serial
'b0
1 = LSB first
FR1a
var byte
'b23
FR1b
var word
'b15
'b9:8
'b7
'b6
'b5
SYNC_CLK on (0)
'b4
'b3:2
00
'b1
'b0
FR2
var word
'b14
'b13
'b12
'b11:8 0000
'b7
'b6
'b5
'b4
Mask b5 (0)
'b3:2
00
'b1:0
CFRa
var byte
'
00 N/A
'
01 Amplitude Sweep
'
10 Frequency Sweep
'
11 Phase Sweep
'b21:16 000000
CFRb
var word
'b15
'b14
'b12:11 00
'b10
'b9:8
'b7
'b6
'b5
'b4
'b3
'b2
'b1
'b0
CFRTMP
var word
ACRa
var byte
ACRb
var word
'b13
'b12
'b11
'b10
setdds:
' If channel 0 is Sine and channel 1 is Cosine SUM1 will be larger than SUM2.
pauseus 100
pulsout MSTRST,50
pauseus 100
low
OE12
'
high
DDSCS
pauseus 100
'
low
DDSCS
'set FR1
'
high
DDSCS
pauseus 100
'
low
DDSCS
'set FR2
'
high
DDSCS
pauseus 100
'
low
DDSCS
'
high
DDSCS
pauseus 100
'
low
DDSCS
'set frequency
'
high
DDSCS
pauseus 100
'
low
DDSCS
'set phase
'
high
DDSCS
pauseus 100
'
low
DDSCS
'set amplitude
'
high
DDSCS
pauseus 100
'set up channel
CFRTMP = CFRb-1
'COS wave on
'
low
DDSCS
'
high
DDSCS
pauseus 100
'
low
DDSCS
high
DDSCS
pulsout IOUPDATE,50
'send to DAC
I will leave the details of PICBASIC to you or anyone else. Details are at www.melabs.com.
Charlie
From: Johann analog@sgaur.hosted.jivesoftware.com <mailto:analog@sgaur.hosted.jivesoftware.com> Sent: Thursday, February 24, 2011 1:17 PM To: Charles Jenkins Subject: Re: AD9958 non-documented startup issue <http://ez.analog.com/message/19939#19939> New message: "AD9958 non-documented startup issue" Re: AD9958 non-documented startup issue <http://ez.analog.com/message/19939#19939>
reply from Johann <http://ez.analog.com/people/Johann> in Direct Digital Synthesis (DDS) - View the full discussion <http://ez.analog.com/message/19917#19917 o Reportar abuso </message-abuse!input.jspa?objectID=19939&objectType=2> o Me gusta (0 <#>) Ir al artculo original <#5197> Acciones * Detener el rastreo <#> * Rastrear en Comunicaciones <#> Ms iguales a este * ADV7611 => FPGA => ADV7511 - Many Questions </message/52381#52381> * Re: Strange behavior testing DDR2 in ADSP-21469 custom board </message/32130#32130> * Re: AD9398 and Sony cameras </message/24137#24137> * Re: 21469 External Memory - Between 0x0200000 and 0x1200000 </message/27274#27274> * Verifying AMI initialization on 21469 custom board </message/27087#27087> Leyenda * *Respuestas correctas* - 4 puntos * *Respuestas tiles* - 2 puntos *Cargando el perfil del usuario* * Careers <http://www.analog.com/en/careers/content/index.html> * Contact ADI <http://www.analog.com/en/content/contact_analog_devices_worldwide/fca.html> * About ADI <http://www.analog.com/en/sitemap.html#About_adi> * Investor Relations <http://investor.analog.com/>
* News Room <http://www.analog.com/en/news-media-relations/media-relations/content/index .html> * About This Site <http://www.analog.com/en/content/About_this_Site/fca.html> * Site Map <http://www.analog.com/en/sitemap.html> * <http://www.analog.com/zh/index.html> * <http://www.analog.com/jp/index.html> * eNewsletters <http://www.analog.com/en/publications/adi-newsletters/content/index.html> * * * * * * * <http://ez.analog.com> <http://twitter.com/#!/adi_news> <http://www.facebook.com/AnalogDevicesInc> <https://plus.google.com/116502491843999760953> <http://www.youtube.com/user/AnalogDevicesInc> <http://www.linkedin.com/company/3450?trk=tyah> <http://www.analog.com/en/content/rss_feeds/fca.html>