會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





PIC18F26K20 搭配A9850模組使用
新會員
註冊日期:
2月03日 23:29:58
所屬群組:
註冊會員
文章: 3
等級: 1; EXP: 10
HP : 0 / 2
MP : 1 / 5
離線
各位好,小弟最近在使用AD9850模組
目前搭配PIC18F26K20做SPI通訊採用mode0模式

AD9850模組採用串行mode去運行,使用接腳D7、WCLK、FQUP及REST腳位做控制,發現輸出信號無變化

做資料查詢有人說明做串行數據,DO、D1脚接高電位、D2脚要接地。
但該3隻腳位位於並行模式下、這是我困惑地方

附件是我撰寫的code及9850模組圖片及串行寫入時序圖

code採用MPLAB X IDE MCC產生

8月02日 17:38:50
轉換PDF檔 列印


Re: PIC18F26K20 搭配A9850模組使用
新會員
註冊日期:
2月03日 23:29:58
所屬群組:
註冊會員
文章: 3
等級: 1; EXP: 10
HP : 0 / 2
MP : 1 / 5
離線
非常抱歉個位版大再發文有移
肉最重要的code及圖片



#include "mcc_generated_files/mcc.h"

/*
Main application
*/
//unsigned char freq[8];
unsigned char freq[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};


//-------------------------------------------------------
// AD9850 serial mode rest
//-------------------------------------------------------
void AD9850_rest_serial(void)
{
SCK_SetLow();//AD9850 WCLK
FQUP_SetLow(); //AD9850 FQUD
//rest single
AD9850_Rest_SetLow();
AD9850_Rest_SetHigh();
AD9850_Rest_SetLow();
//WCLK single
SCK_SetLow();//AD9850 WCLK
SCK_SetHigh();
SCK_SetLow();
//fQUD single
FQUP_SetLow();//AD9850 FQUD
FQUP_SetHigh();
FQUP_SetLow();

}

//-------------------------------------------------------
// Write commands and data to the AD985(serial port)
//-------------------------------------------------------
void AD9850_wr_serial(unsigned int y)
{
char i,w;
long int a,b,c,x;
//Calculate the HEX value of the frequency
a=4294967296/125000000;//2^32/125M
b=y/1000000;
c=b*a;

//write w4 data 0~7
w=(c>>0);
for(i=0;i<8;i++)
{
x=SPI_Exchange8bit('w');
x>>i&0x01;
SCK_SetHigh();//AD9850 WCLK
SCK_SetLow();//AD9850 WCLK
}
//write w3 data 8~15

w=(c>>8);
for(i=0;i<8;i++)
{
x=SPI_Exchange8bit('w');
x>>i&0x01;
SCK_SetHigh();//AD9850 WCLK
SCK_SetLow();//AD9850 WCLK

}
//write w2 data

w=(c>>16);
for(i=0;i<8;i++)
{
x=SPI_Exchange8bit('w');
x>>i&0x01;
SCK_SetHigh();//AD9850 WCLK
SCK_SetLow();//AD9850 WCLK

}
//write w1 data
w=(c>>24);
for(i=0;i<8;i++)
{
x=SPI_Exchange8bit('w');
x>>i&0x01;
SCK_SetHigh();//AD9850 WCLK
SCK_SetLow();//AD9850 WCLK

}
//write w0 data 注意
w=c;
for(i=0;i<8;i++)
{
x=SPI_Exchange8bit('w');
x>>i&0x01;
SCK_SetHigh();//AD9850 WCLK
SCK_SetLow();//AD9850 WCLK
}
//Move in enable
FQUP_SetHigh();//AD9850 FQUD
FQUP_SetLow();

}


void main(void)
{
// Initialize the device
SYSTEM_Initialize();
AD9850_rest_serial();
AD9850_wr_serial(1000);
//Serial write 1000Hz program

// If using interrupts in PIC18 High/Low Priority
Mode you need to enable the Global High and Low
Interrupts

// If using interrupts in PIC Mid-Range Compatibility
Mode you need to enable the Global and Peripheral
Interrupts
// Use the following macros to:

// Enable the Global Interrupts
//INTERRUPT_GlobalInterruptEnable();

// Disable the Global Interrupts
//INTERRUPT_GlobalInterruptDisable();

// Enable the Peripheral Interrupts
//INTERRUPT_PeripheralInterruptEnable();

// Disable the Peripheral Interrupts
//INTERRUPT_PeripheralInterruptDisable();

while (1)
{
// Add your application code
}
}
/**
End of File
*/

8月05日 22:34:25

ahao1022 於 2019年08月05日 22:53:24
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結

網頁捷徑
2019 Summer Elite 報名
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project