AD9833 DDS

Šula Miloš sula@rps.cz
Pondělí Leden 21 08:30:16 CET 2008


Ahoj,
postavil jsem si DDSku s Ad9833, bohužel se mi nedaří měnit frekvenci. Vždy mi to po zavolání AD9833_reset() a nastavení frekvence sice začne nějakou frekvenci generovat, ale ta se po dalším volání SetDDSFrequency vůbec nezmění. Můžete mi poradit co s tím ? Driver jsem si psal víceméně sám podle dokumentace a příkladů co jsem našel na internetu, takže pravděpodobná chyba je více, než jistá.

díky
Miloš

#define   FREQ0      0x4000      
#define   B28          (1<<13) 
#define   HLB          (1<<12) 
#define   FSELECT      (1<<11) 
#define   PSELECT      (1<<10) 
#define   ADRESET      (1<<8) 
#define   SLEEP1       (1<<7) 
#define   SLEEP12      (1<<6) 
#define   OPBITEN      (1<<5) 
#define   DIV2         (1<<3) 
#define   ADMODE       (1) 

#define FSYNC PIN_B3 //select chip

void AD9833_Write(unsigned int16 value) 
{ 
int8 clsb, cmsb; 

clsb = (int8)value; 
cmsb = value >> 8; 
output_low(FSYNC); 
delay_us(5); 
spi_write(cmsb); 
spi_write(clsb); 
delay_us(5); 
output_high (FSYNC); 
} 

void AD9833_reset() 
{ 

 AD9833_Write(B28|ADRESET|OPBITEN|DIV2); //reset 
 AD9833_Write(B28|OPBITEN|DIV2); // square wave 

} 


void SetDDSFrequency(float Freq) 
{ 
unsigned long i,lsb,msb; 

   Freq = Freq / 0.093132258;     // for 25Mhz osc 
   i = (unsigned long)Freq; 
   lsb = (i & 0x3fff) + FREQ0; 
   msb = ((i>>14) & 0x3fff) + FREQ0; 
   AD9833_Write(lsb); 
   AD9833_Write(msb); 
} 
************************************Hlavni program*****************************
#include <16F819.h> 
#device PASS_STRINGS = IN_RAM 
#fuses NOWDT, INTRC_IO, NOPROTECT,NOBROWNOUT,NOMCLR,NODEBUG 
#use delay(clock=8M) 

#use fast_io(b) 

void main (){ 

SET_TRIS_B(195); 

setup_spi(SPI_MASTER | SPI_L_TO_H | SPI_XMIT_L_TO_H |SPI_SS_DISABLED | SPI_CLK_DIV_4 ); 
AD9833_reset(); 
SetDDSFrequency(10000); 
delay_ms(2000); 
SetDDSFrequency(2000); 
} 

------------- další část ---------------
HTML příloha byla odstraněna...
URL: http://list.hw.cz/pipermail/hw-list/attachments/20080121/a717061d/attachment-0002.htm 


Další informace o konferenci Hw-list