AnsweredAssumed Answered

AD9910 4FSK problem?

Question asked by AmalHiyazi on Aug 18, 2011
Latest reply on Oct 10, 2011 by DSB

I have problems with 4FSK generating from RAM. DDS is controlled by microprocessor. (SPI) Here is example how I write to registers of RAM in order to generate 4FSK:

 

WriteTo_Register_2 ;                                        // 0x1C3F4148   

IO_UPDATE();                                               // F_SYSCLK=900 MHz

delay;

 

 

WriteTo_Register_E  ;                               // 0x0802320040000001

IO_UPDATE();                                               // Ramp up  mode 

delay;                                                               // 0.-1. addresses in RAM   (profile 0)

 

 

WriteTo_Register_F ;                                       // 0x00023200C0008001

IO_UPDATE();                                               // Ramp up  mode 

delay;                                                               // 2.-3. addresses in RAM   (profile 1)

 

 

WriteTo_Register_10  ;                                    //0x0002320140010001

IO_UPDATE();                                               // Ramp up  mode 

delay;                                                               // 4.-5. addresses in RAM   (profile 2 )

 

 

WriteTo_Register_11  ;                                    //0x00023200C0018001

IO_UPDATE();                                               // Ramp up  mode  

delay;                                                               // 6.-7. addresses in RAM   (profile 3)

 

 

WriteTo_Register_16                    // 0x0FEDCBA9    freq1=56 MHz  (FTW1)

                                                  // 0x12345679        freq2=64 MHz  (FTW2)

                                                // 0x147AE148       freq3=72 MHz  (FTW3)

                                                // 0x16C16C17       freq4=80 MHz   (FTW4)

                                    // I write 4 freq. words in reg16 because I have 4 frequencies

                                    // But I use 8 addresses , from 0 to 7

IO_UPDATE();                     

delay;                                                             

 

 

WriteTo_Register_0;                // 0x80140002              ( RAM ENABLE =1)

IO_UPDATE();                       // Internal profile control 1010 == CONT PROFILE 0-3

delay;                                       // RAM destionation-> frequency ( 00 )

 

 

As it can be seen from my code, I loaded RAM locations 0-1 with FTW1  ,locations 2-3 with FTW2 and so on…So basically I wrote 4 FTW to RAM.

Should I write FTW 1 twice because profile 0 has two addresses(0 and 1) and so on for all other profiles (1,2,3)? Or maybe start and end addresses of profiles should be same? (for example start=0, end 0,  profile0) Can anyone tell me how to generate 4FSK?

 

Thanks in advance.

Outcomes