欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2430|回復(fù): 13
打印 上一主題 下一主題
收起左側(cè)

唯創(chuàng)芯片WT588H16-16S芯片一線串口控制,DAC沒(méi)有檢測(cè)出波形是什么問(wèn)題,求解

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:858009 發(fā)表于 2021-12-14 13:09 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本帖最后由 qwettyuio 于 2021-12-14 16:48 編輯

#include <reg52.h>
#define UC8 unsigned char
#define UI16 unsigned int
#define one_line_DATA  P1
void Line_1A_WT588H(UI16 USER_DATA)
{
        UC8 i;
        bit B_DATA;
        UC8 num_temp=0;
        UI16 ddata_temp ,pdata_temp;
        ddata_temp = USER_DATA;
        pdata_temp = ddata_temp& 0X00FF;
        ddata_temp>>= 8;
        pdata_temp<<= 8;
        ddata_temp |= pdata_temp;//用戶數(shù)據(jù)賦值
        num_temp = 16;
        one_line_DATA = 0;
        Delay_10us(500); //延時(shí) 5MS
        B_DATA = (bit)(ddata_temp&0X0001);
        for(i=0;i<num_temp;i++)
        {
                if(i==8)
                {
                        one_line_DATA = 1;
                        Delay_10us(200); //延時(shí) 2MS
                        one_line_DATA = 0;
                        Delay_10us(500); //延時(shí) 5MS
                }
                one_line_DATA = 1; //拉高數(shù)據(jù)傳輸線,準(zhǔn)備傳輸數(shù)據(jù)
                if(B_DATA==0)
                { /*表示邏輯電平 0*/
                        Delay_10us(20); // 延時(shí) 200us
                        one_line_DATA = 0;
                        Delay_10us(60); // 延時(shí) 600us
                }
                else
                { /*表示邏輯電平 1*/
                        Delay_10us(60); // 延時(shí) 600us
                        one_line_DATA = 0; Delay_10us(20); // 延時(shí) 200us
                }
                ddata_temp = ddata_temp>>1;
                B_DATA = (bit)(ddata_temp&0x0001);
        }
        one_line_DATA = 1;
}


原理圖.png (49.7 KB, 下載次數(shù): 21)

原理圖.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:624769 發(fā)表于 2021-12-14 15:13 | 只看該作者
你先用我給你的代碼試試,可能的話,監(jiān)測(cè)一下BUSY口是否有信號(hào),然后再考慮 DAC輸出的問(wèn)題。

P.S. 你如果要連續(xù)發(fā)送兩條指令的話,根據(jù)我的經(jīng)驗(yàn),兩條指令之間應(yīng)該間隔30ms以上。才能確保兩條指令都被接受并且執(zhí)行,
                                Line_1A_WT588H(0x0001);     //播放1地址音樂(lè)
                                Line_1A_WT588H(0xFFF2);     //循環(huán)1地址播放
你這樣寫(xiě),很可能會(huì)作為噪音被直接拋棄。
回復(fù)

使用道具 舉報(bào)

板凳
ID:858009 發(fā)表于 2021-12-14 15:57 | 只看該作者
188610329 發(fā)表于 2021-12-14 15:13
你先用我給你的代碼試試,可能的話,監(jiān)測(cè)一下BUSY口是否有信號(hào),然后再考慮 DAC輸出的問(wèn)題。

P.S. 你如 ...

試用了一下代碼,連接P17引腳LED不斷變化,但是busy引腳沒(méi)有變化,一直是高電平
#include <reg52.h>
#define u8 unsigned char
#define u16 unsigned int
#ifndef _WT588_C_
#define _WT588_C_

sbit WT588IO = P1^7;

void Delay25us(u8 DelayTime)
{
        u8 t;
    while(DelayTime--)
    {
                t = 147;
        while (--t);      
        }
}
void   SendByte_WT588(u8 ByteDat)
{
        u8 i;
        WT588IO  = 0;
    Delay25us(200);                //delay 5ms
    WT588IO  = 1;
    for(i=0;i<8;i++)
    {
                Delay25us(8);      //delay 200us
        ByteDat>>= 1;
        WT588IO= CY;       //設(shè)置1/0
        Delay25us(16);     //delay 400us
        WT588IO= 0;        //IO低電平
        Delay25us(8);      //delay 200us
        WT588IO= 1;        //IO高電平
     }
}
void  SendOrder_WT588(u16 WTOrder)
{
        SendByte_WT588(WTOrder >> 8);  //發(fā)送高八位指令
    Delay25us(80);                 //delay 2ms
    SendByte_WT588(WTOrder);       //發(fā)送低八位指令
}
void main()
{
        while(1)
        {
                SendOrder_WT588(0x0010);                               
        }
}
回復(fù)

使用道具 舉報(bào)

地板
ID:624769 發(fā)表于 2021-12-14 16:35 | 只看該作者
不是啊, 我用的是  P17 你應(yīng)該  sbit 到你的 IO上才對(duì)吧? 你實(shí)際連接的的是單片機(jī)哪個(gè)IO?  P01?
回復(fù)

使用道具 舉報(bào)

5#
ID:858009 發(fā)表于 2021-12-14 16:38 | 只看該作者
188610329 發(fā)表于 2021-12-14 16:35
不是啊, 我用的是  P17 你應(yīng)該  sbit 到你的 IO上才對(duì)吧? 你實(shí)際連接的的是單片機(jī)哪個(gè)IO?  P01?

P17連接到data端口
回復(fù)

使用道具 舉報(bào)

6#
ID:858009 發(fā)表于 2021-12-14 16:41 | 只看該作者
188610329 發(fā)表于 2021-12-14 16:35
不是啊, 我用的是  P17 你應(yīng)該  sbit 到你的 IO上才對(duì)吧? 你實(shí)際連接的的是單片機(jī)哪個(gè)IO?  P01?

這是官方給的控制函數(shù),和以前我使用的STM32一鍵連接JQ8400-FLJQ8900語(yǔ)音模塊不一樣,不知道那一步驟出現(xiàn)了問(wèn)題
/*-------------------------------------- ;模塊名稱:
Line_1A_WT588H(UI16 USER_DATA) ;
功 能:實(shí)現(xiàn)一線串口通信函數(shù) ;
入 參:USER_DATA ;
出 參: ; one_line_DATA
//數(shù)據(jù)線 ;-------------------------------------*/
#define UC8 unsigned char
#define UI16 unsigned int
#define one_line_DATA P1

void Line_1A_WT588H(uint USER_DATA)
{
        uchar i;
        bit B_DATA;          
        ddata_temp = USER_DATA;
        pdata_temp = ddata_temp& 0X00FF;
        ddata_temp>>= 8;
        pdata_temp<<= 8;
        ddata_temp |= pdata_temp;//用戶數(shù)據(jù)賦值
        num_temp = 16;
        one_line_DATA = 0;
        Delay_10us(500); //延時(shí) 5MS
        B_DATA = (bit)(ddata_temp&0X0001);
        for(i=0;i<num_temp;i++)
        {
                if(i==8)
                {
                        one_line_DATA = 1;
                        Delay_10us(200); //延時(shí) 2MS
                        one_line_DATA = 0;
                        Delay_10us(500); //延時(shí) 5MS
                }
                one_line_DATA = 1; //拉高數(shù)據(jù)傳輸線,準(zhǔn)備傳輸數(shù)據(jù)
                if(B_DATA==0)
                { /*表示邏輯電平 0*/
                        Delay_10us(20); // 延時(shí) 200us
                        one_line_DATA = 0;
                        Delay_10us(60); // 延時(shí) 600us
                }
                else
                { /*表示邏輯電平 1*/
                        Delay_10us(60); // 延時(shí) 600us
                        one_line_DATA = 0; Delay_10us(20); // 延時(shí) 200us
                }
                ddata_temp = ddata_temp>>1;
                B_DATA = (bit)(ddata_temp&0x0001);
        }
        one_line_DATA = 1;
}
回復(fù)

使用道具 舉報(bào)

7#
ID:624769 發(fā)表于 2021-12-14 16:44 | 只看該作者
那你就要確認(rèn),你的 聲音文件又沒(méi)有正確燒錄到  Flash 里面了。 如果 Flash 里面空的也是無(wú)法播放的。
回復(fù)

使用道具 舉報(bào)

8#
ID:624769 發(fā)表于 2021-12-14 16:46 | 只看該作者
最關(guān)鍵的是:
測(cè)試的話,要這樣寫(xiě)……
你之前那樣寫(xiě), 不停的在發(fā)指令, WT588 壓根沒(méi)機(jī)會(huì)執(zhí)行指令。

void main()
{
                Delay25us(200);
                Delay25us(200);
                Delay25us(200);
                SendOrder_WT588(0x0010);                                
                while(1);
}
回復(fù)

使用道具 舉報(bào)

9#
ID:858009 發(fā)表于 2021-12-14 16:47 | 只看該作者
188610329 發(fā)表于 2021-12-14 16:44
那你就要確認(rèn),你的 聲音文件又沒(méi)有正確燒錄到  Flash 里面了。 如果 Flash 里面空的也是無(wú)法播放的。

官方燒錄進(jìn)去才發(fā)貨給我的,地址是1地址
回復(fù)

使用道具 舉報(bào)

10#
ID:858009 發(fā)表于 2021-12-14 16:50 | 只看該作者
188610329 發(fā)表于 2021-12-14 16:46
最關(guān)鍵的是:
測(cè)試的話,要這樣寫(xiě)……
你之前那樣寫(xiě), 不停的在發(fā)指令, WT588 壓根沒(méi)機(jī)會(huì)執(zhí)行指令。

現(xiàn)在最頂層的就是他們給的一線串口通信函數(shù)
回復(fù)

使用道具 舉報(bào)

11#
ID:624769 發(fā)表于 2021-12-14 17:42 | 只看該作者
qwettyuio 發(fā)表于 2021-12-14 16:50
現(xiàn)在最頂層的就是他們給的一線串口通信函數(shù)

反正,我這邊是可以用的, 你delay25us 里面的步進(jìn)有沒(méi)有根據(jù)你單片機(jī)實(shí)際 速度修改? 我這個(gè)147, 是在STC15系列 24MHz 情況下的設(shè)置。 你難道也是?
回復(fù)

使用道具 舉報(bào)

12#
ID:858009 發(fā)表于 2021-12-15 09:49 | 只看該作者
188610329 發(fā)表于 2021-12-14 17:42
反正,我這邊是可以用的, 你delay25us 里面的步進(jìn)有沒(méi)有根據(jù)你單片機(jī)實(shí)際 速度修改? 我這個(gè)147, 是在S ...

不是,修改了延時(shí)的
回復(fù)

使用道具 舉報(bào)

13#
ID:858009 發(fā)表于 2021-12-15 09:51 | 只看該作者
188610329 發(fā)表于 2021-12-14 17:42
反正,我這邊是可以用的, 你delay25us 里面的步進(jìn)有沒(méi)有根據(jù)你單片機(jī)實(shí)際 速度修改? 我這個(gè)147, 是在S ...

我用的是89c51,修改了延時(shí)的
回復(fù)

使用道具 舉報(bào)

14#
ID:624769 發(fā)表于 2021-12-15 13:22 | 只看該作者
本帖最后由 188610329 于 2021-12-15 13:28 編輯
qwettyuio 發(fā)表于 2021-12-15 09:51
我用的是89c51,修改了延時(shí)的

要是實(shí)在不行, 你先試試看兩線串口協(xié)議能不能驅(qū)動(dòng)? WT588H好像不支持按鍵操作, WT588D還能用按鍵測(cè)試一下。方便判斷芯片是否正常工作。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表