Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Ik ben bezig om een AD9833 tot leven te wekken, wat niet erg wil vlotten.
Ik heb gezocht in de diverse posts over de AD983x chips, maar daar zie ik eigenlijk nergens een oplossing. (alleen de problemen)
Heeft iemand de chip al eens aan de praat gekregen? (ik gebruik een PIC 24FJ256GA106 met de volgende (MikroBasic) code:
symbol DDS_FSYNC = LATB.14
'==================================================================================================
Sub Procedure Init_App() 'Initialize
'==================================================================================================
delay_ms(100)
TRISB = %0000000111000000 'Init port and DDR
LATB = %0110000000001000
AD1PCFGL = %1111111111111111 'All pins digital
REFOCON = %1010010000000000 'Clock out 1MHz for DDS
Unlock_IOLock() 'PPS settings
PPS_Mapping_NoLock(0,_OUTPUT,_SDO2) 'RB0 (RP0)
PPS_Mapping_NoLock(1,_OUTPUT,_SCK2OUT) 'RB1 (RP1)
Lock_IOLock()
'Init SPI2
Spi2_Init_Advanced(_SPI_MASTER,
_SPI_16_BIT,
_SPI_PRESCALE_SEC_4,
_SPI_PRESCALE_PRI_16,
_SPI_SS_DISABLE,
_SPI_DATA_SAMPLE_MIDDLE,
_SPI_CLK_IDLE_HIGH,
_SPI_IDLE_2_ACTIVE) 'DDS SPI port
Delay_ms(100)
DDS_FSYNC = 0
SPI2_Write(%0010000000000000) 'Commands
DDS_FSYNC = 1
DDS_FSYNC = 0
SPI2_Write(%0100110101011111) 'Freq0 data (14 bit LSB)
DDS_FSYNC = 1
DDS_FSYNC = 0
SPI2_Write(%0100000000000111) 'Freq0 data (14 bit MSB)
DDS_FSYNC = 1
End Sub '
De MCLK is er, 1MHz. Verder lijkt het ding geheel dood...
Blackfin
This is the world we know best, the world of madness
Pagina 18 van de datasheet laat een heel duidelijk flow diagram zien voor initialisatie en operatie. Ik zou deze eens goed bestuderen.
Ik zet ze regelmatig in ontwerpen en heb de software mensen nog nooit over DDS chips van AD horen klagen m.b.t. onverklaarbaar gedrag.
Roland van Leusden
It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.
http://tuomasnylund.fi/drupal6/content/ad9833-based-usb-function-gener…
AVR + C-code.
[Bericht gewijzigd door Roland van Leusden op (10%)]
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Datasheets zijn niet echt het sterkste punt van AD... (ik heb ze duidelijker gezien...
) Ook de interne opbouw van de chip had wat simpeler gekund.
Nu is het effect van sommige bits in het commandoregister afhankelijk van de stand van een of twee andere bits. Wat registertjes extra was handiger geweest.
Ik ga die sourcecode eens bestuderen (jammer genoeg C...
)
Wat me er in opviel is dat er kwistig met 5uS delayloops wordt gestrooid, terwijl dat volgens de datasheet helemaal niet nodig is. (5...15nS wordt gegeven)
Ik gebruik een MCLK van 1MHz, en wil bijv een frequentie van 440Hz opwekken.
Volgens de datasheet zou de waarde voor het freq0 (of 1) register dan 440 / (1000000/268435456) = 118112 moeten zijn, met die AVR routine krijg ik heel wat anders...