Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] DDS AD9850 and reset

Status
Not open for further replies.

paulfjujo

Advanced Member level 4
Advanced Member level 4
Joined
Jun 9, 2008
Messages
1,469
Helped
298
Reputation
596
Reaction score
286
Trophy points
1,363
Location
France 01800
paulfjujo.free.fr
Activity points
10,639
hello

i am working with a AD9850 mounted on a break board HC-08 Q=125Mhz
i can work with this device,no problemo
but i tried to use the Reset pin5 to do a clean start
but vwhen i connect this input (to RC2 pic Output)
even i manage this output low at hardware initialisation
i get a strange behavior

On power ON, Pic & AD9850 in same time,no probleme for
initialisation,i get the sinus output ok
but, if i do a "PIC RESET" , no sinus output !
i tried to put resistor 4,7k to gnd, or to VCC to fixe voltage level
same result.
the only way i have to fix this probleme is to put Reset input to Gnd.
Question:
does someone successfully handle this Reset function on AD9850?

datasheet is not enough.detailled about this..
even for the last 2 bits control byte..w38 W39
 

The AD9850 reset is active high. During the brief time between the PIC being reset and RC2 being programmed to go low, the voltage on the DDS reset pin goes far enough above logic low to reset it. I would suggest adding an inverter (either IC or simple transistor circuit) between the PIC and DDS to eliminate this. Make sure to pull the PIC side of the inverter high so when the PIC is in reset, the input to the inverter is still pulled high.
 

hello,

The AD9850 reset is active high. During the brief time between the PIC being reset and RC2 being programmed to go low, the voltage on the DDS reset pin goes far enough above logic low to reset it. I would suggest adding an inverter (either IC or simple transistor circuit) between the PIC and DDS to eliminate this. Make sure to pull the PIC side of the inverter high so when the PIC is in reset, the input to the inverter is still pulled high.

thank's for your answer
i will try it..
 

I have used this chip a lot with Pic 16F84A and 16F628A and I have not seen this problem. There is no need for a inverter. I have implemented a reset with my software in case of lock up, and have experienced no problems. The data sheet contains all of the required information if you read it very carefully. I suspect that your software that handles the reset is in error. Are you in serial or parallel mode? post your reset software. If you have any questions on the AD9850, post here I may be able to help.
 

hello


spudboy488

I added a transistor to inverse the signal ,but same probleme ( and inverse commande also !)
If i send a Reset commande , no more signal
I must power off Power On to obtain again an output siganl.
if i keep the power supply and do a Pic Reset (MCLR pin) , same probleme , no more sinus output

pjmelect
i am working with this breadboard, in serial mode ...
here is my code test 18F46K22_test_AD9850.c
No problemo if i put Reset pin permanently to ground.
i check it with an oscilloscope and dialogue on RS232 terminal
Frequency value on sinus output is OK..
Only the reset probleme to solve ...and

I opened another post about Phase value in Byte control..
I didn't find out details explanation about correspondance between Phase in ° and value of bits W39..W35
 

Attachments

  • AD9850_HC_R08_pins.jpg
    AD9850_HC_R08_pins.jpg
    27 KB · Views: 109
  • 18F46K22_DDS_AD9850_joystick.zip
    41 KB · Views: 72

Try this code, I do not know C as I program in assembler so if I have made any syntax errors forgive me. Issuing two FU_UD pulses is a good idea in case the protected bits have ones written to them. The equivalent code in assembler works on my hardware.



void Reset_AD9850 ()
{


FU_UD = 0;
W_CLCK = 0;
SDATA=0;


Pin_Reset_AD9850=1;
Delay10TCYx(10);
Pin_Reset_AD9850=0;
Delay10TCYx(10);



// init AD9850
SDATA=0;
W_CLCK = 0;
FU_UD = 0;
Delay10TCY();

W_CLCK = 1; //1ere
Delay10TCY();
W_CLCK = 0;
Delay10TCY();

FU_UD = 1; // reset adresse to W0
//Delay10TCYx(10);
//Delay10TCY();
FU_UD = 0;



FU_UD = 1; // Enable serial mode
Delay10TCY();
FU_UD = 0;
Delay10TCY();

- - - Updated - - -

I could not find your post on "Phase value in Byte control." but basically the phase byte is simply a number between 0 and 31 that specifies a phase shift of between 0 and 348.75 degrees. so that each digit between 0-31 represents a phase angle of 11.25 degrees. This number in HEX (0-1FH) is then shifted 3 places to the left, so that 1 is 8 and 31 is 0F8H.
 
Hello,

pjmelect;1235660 I could not find your post on "Phase value in Byte control." but basically the phase byte is simply a number between 0 and 31 that specifies a phase shift of between 0 and 348.75 degrees. so that each digit between 0-31 represents a phase angle of 11.25 degrees. This number in HEX (0-1FH) is then shifted 3 places to the left said:
Thank's a lot ,for your Help , because i didn't find out these details in my AD9850 specsheet,
and i tried it => it works fine

with my RS232 terminal, when i send letter P , i increase Dephasage value..

Code:
 case 'P':  // dephasage AD9850
         {  
           Dephasage++;
           if (Dephasage >31) Dephasage=0;
           Ad9850_Control= (Byte)(Dephasage <<3) ;
           F1=(float)Dephasage * 11.25;
           fltToa (F1,txt,1);
           k=fprintf(_H_USART,"  Ad9850_Control = %02X output SINUS AD9850 %s ° \r", Ad9850_Control,txt);
           AD9850_Charge_Freq(Freq_AD9850);
           Tempo(10000L);
           Raz_Receipt();     
           break;

I tested using lissajous figures on my oscilloscope
with a constant 1000 Hz sinus made by the DAC PIC on X channel
and the Ad9850 sinus output on Y chanel.

But for AD9850 Reset managment problem , no issue at all..
so i will keep Reset pin to Gnd.
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top