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
;*****************************************************************************************
|