AD9834



Ce DDS de nouvelle génération séduira ceux qui recherche une consommation minimale alliée à de bonnes performances.
L'AD9834 accepte une horloge de 50 MHz et ne consomme que 20mW sous 3V.
Il équipe le nouveau transceiver QRP KX1 Elecraft.

Programmation:

Elle diffère sensiblement des autres DDS de par le format des mots de commandes fixé à 18 bits.
Les modules correspondants sont disponible ici.

Les modules ci-dessous sont compatibles avec les PIC Microchip possèdant la fonction SPI (PIC16F873, 876, 877...)

;****************************************************************************************

;INIT_DDS AD9834 : Initialisation du DDS oscillateur local
;

;*****************************************************************************************

INIT_DDS

BANK1
MOVLW B'01000000'
MOVWF SSPSTAT
BANK0

MOVLW b'00110001' ;SPI MAster actif F/16
MOVWF SSPCON

;----------------------------------------------------------------------------------------
BCF CS ;Chip Select
;----------------------------------------------------------------------------------------


MOVLW b'00000001' ;Control register RESET
CALL RSPI

MOVLW b'00000000' ;Control register LSB
CALL RSPI

;----------------------------------------------------------------------------------------
MOVLW b'00100000' ;Control word write REG 0
CALL RSPI ;28 bits direct
CLRF TEMP
CALL RSPI



MOVLW b'01000000' ;Freq reg 0
MOVWF TEMP ;dans la variable TEMP
CALL RSPI

CLRW
MOVWF TEMP
CALL RSPI
CALL RSPI
CALL RSPI
;----------------------------------------------------------------------------------------
MOVLW b'00000000' ;Control register SET
CALL RSPI
CALL RSPI


;----------------------------------------------------------------------------------------
BSF CS ;CS OFF

MOVLW b'00110000' ;Reconfiguration SPI
MOVWF SSPCON
BANK1
CLRF SSPSTAT
BANK0

RETURN

;********************************************************************************************

;**********************************************************************************

;S/P OL9834 : Chargement du 9834 OL
;
;Le chargement utilise la routine SPI pour les données DATA et CLOCK
;La validation s'effctue par IO
;***********************************************************************

OL9834

BANK1
MOVLW B'01000000'
MOVWF SSPSTAT
BANK0

MOVLW b'00110001' ;SPI MAster actif
MOVWF SSPCON

BCF CARRY_BIT
RLF ACC3,1 ;shift G
BCF CARRY_BIT
RLF ACC3,1 ;shift G
BCF CARRY_BIT
BCF ACC3,7 ;adresse F0
BSF ACC3,6 ;adresse F0

BTFSC ACC2,7
BSF ACC3,1 ;transfert B1_ACC3
BTFSC ACC2,6
BSF ACC3,0 ;transfert b0_ACC3

RLF ACC2,1 ;Shift G
BCF CARRY_BIT
RLF ACC2,1 ;Shift G
BCF CARRY_BIT

BTFSC ACC1,7 ;B7_ACC1 ?
BSF ACC2,1 ;SI=1 set B1_ACC2
BTFSC ACC1,6 ;B6_ACC1
BSF ACC2,0 ;SI=1 set B0_ACC2
BCF ACC1,7 ;adresse F0
BSF ACC1,6 ;adresse F0

BCF CS ;CS ON

MOVLW b'00100000' ;control reg B28=1
MOVWF TEMP
CALL RSPI
CLRF TEMP ;LSB = 0
CALL RSPI

MOVF ACC1,W
MOVWF TEMP ;dans la variable TEMP
CALL RSPI

MOVF ACC0,W
MOVWF TEMP
CALL RSPI

MOVF ACC3,W
MOVWF TEMP
CALL RSPI

MOVF ACC2,W
MOVWF TEMP
CALL RSPI


BSF CS ;fin CS

MOVLW b'00110000' ;SPI MAster actif
MOVWF SSPCON
BANK1
CLRF SSPSTAT
BANK0

RETURN



;****************************************************************************************

;********************************************************************************************
;S/P RSPI: Sérialise le caractère contenu dans W en sortie de SDO
; Génère l'horloge associée en sortie de SCK
;*****************************************************************************************

RSPI
BCF PIR1,SSPIF
MOVWF SSPBUF

SPI_T BTFSS PIR1,SSPIF
GOTO SPI_T
RETURN

;*****************************************************************************************






 
© 2002 f6blk.net - f4auo