[元件] MUSES72320代换PGA2310的实验

[复制链接] 查看: 28054|回复: 68

5

主题

1

好友

114

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
573619
帖子
128
精华
0
经验
114 点
金钱
108 ¥
注册时间
2013-3-13
发表于 2021-6-8 14:33 | 显示全部楼层

这是PGA2311的,72320左右声道两个数据,16位,2BIT

2

主题

1

好友

194

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
10585
帖子
141
精华
0
经验
194 点
金钱
140 ¥
注册时间
2006-7-9
 楼主| 发表于 2021-6-8 20:19 | 显示全部楼层

差点想说时序错了
然后定睛一看,是PGA2311的。。。

2

主题

1

好友

194

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
10585
帖子
141
精华
0
经验
194 点
金钱
140 ¥
注册时间
2006-7-9
 楼主| 发表于 2021-6-8 20:24 | 显示全部楼层
lzj5208 发表于 2021-6-8 14:33
这是PGA2311的,72320左右声道两个数据,16位,2BIT

72320的SPI写入时序和2311刚好相反,SCLK的高低电平出现时机需要对调一下
然后,它需要连续写入16位才能完成一次控制数据写入
最后,它的音量数据需要转换一下才能写入

5

主题

1

好友

114

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
573619
帖子
128
精华
0
经验
114 点
金钱
108 ¥
注册时间
2013-3-13
发表于 2021-6-9 19:36 | 显示全部楼层
big-eblis 发表于 2021-6-8 20:24
72320的SPI写入时序和2311刚好相反,SCLK的高低电平出现时机需要对调一下
然后,它需要连续写入16位才能 ...

L,R两个的数据也是不一样的吗

2

主题

1

好友

194

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
10585
帖子
141
精华
0
经验
194 点
金钱
140 ¥
注册时间
2006-7-9
 楼主| 发表于 2021-6-9 20:55 | 显示全部楼层
lzj5208 发表于 2021-6-9 19:36
L,R两个的数据也是不一样的吗

音量数据格式以及控制数据格式那肯定是一样的,但是有个设置地址的区别。芯片的左右声道是完全独立控制的,需要加设置地址来告诉芯片你设定是哪个通道
另外,控制代码中还有硬件地址码,需要结合实际电路设定来设定,如图
捕获.JPG

5

主题

1

好友

114

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
573619
帖子
128
精华
0
经验
114 点
金钱
108 ¥
注册时间
2013-3-13
发表于 2021-6-10 23:01 | 显示全部楼层
2.png 可不可以分享下你的源码

5

主题

1

好友

114

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
573619
帖子
128
精华
0
经验
114 点
金钱
108 ¥
注册时间
2013-3-13
发表于 2021-6-10 23:10 | 显示全部楼层
2.png

2

主题

1

好友

194

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
10585
帖子
141
精华
0
经验
194 点
金钱
140 ¥
注册时间
2006-7-9
 楼主| 发表于 2021-6-10 23:41 | 显示全部楼层
lzj5208 发表于 2021-6-10 23:01
可不可以分享下你的源码

汇编的,你想要哪部分?

5

主题

1

好友

114

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
573619
帖子
128
精华
0
经验
114 点
金钱
108 ¥
注册时间
2013-3-13
发表于 2021-6-11 11:33 | 显示全部楼层
big-eblis 发表于 2021-6-10 23:41
汇编的,你想要哪部分?

MUSES72320写入数据和1602的数字的加减

5

主题

1

好友

114

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
573619
帖子
128
精华
0
经验
114 点
金钱
108 ¥
注册时间
2013-3-13
发表于 2021-6-11 16:10 | 显示全部楼层
big-eblis 发表于 2021-6-9 20:55
音量数据格式以及控制数据格式那肯定是一样的,但是有个设置地址的区别。芯片的左右声道是完全独立控制的 ...

D7位是1就是LR一起控制

2

主题

1

好友

194

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
10585
帖子
141
精华
0
经验
194 点
金钱
140 ¥
注册时间
2006-7-9
 楼主| 发表于 2021-6-11 20:21 | 显示全部楼层
lzj5208 发表于 2021-6-11 16:10
D7位是1就是LR一起控制

这个说法哪里来的?我翻遍了官方文档没有写D7的定义啊

2

主题

1

好友

194

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
10585
帖子
141
精华
0
经验
194 点
金钱
140 ¥
注册时间
2006-7-9
 楼主| 发表于 2021-6-11 20:27 | 显示全部楼层
lzj5208 发表于 2021-6-11 11:33
MUSES72320写入数据和1602的数字的加减

;=====================================================================
;写入音量数据到MUSE72320,音量范围-111.5~0dB,数值范围1~224.数值1=(-111.5dB),数值224=0dB
WriteRealGain:
                         LCALL LimitGain               ;限制音量数据范围在允许值
                         MOV A,RealGain
                         JZ WRGN1                      ;音量数据=0则直接写入
                         DEC A
                         SWAP A
                         INC A
                         SWAP A
                         CPL A                         ;计算求真实写入数值
WRGN1:                   MOV MuseData1,A
                         MOV MuseData0,#0x20
                         LCALL WriteMUSE               ;配置右声道
                         LCALL Delay30us
                         MOV MuseData0,#0x00
                         LCALL WriteMUSE               ;配置左声道
                        
                         LCALL Delay30us
                         LCALL ConfigGain
RET
;=====================================================================

;=====================================================================
;写数据进MUSE72320芯片
WriteMUSE:
                         CLR VOL_CS                    ;使能MUSE72320
                         LCALL Delay5us
                         MOV A,MuseData1               ;高8位
                         LCALL WriteSPI                ;写入数值到MUSE72320
                         LCALL Delay5us
                         MOV A,MuseData0               ;低8位
                         LCALL WriteSPI                ;写入数值到MUSE72320
                         LCALL Delay5us
                         SETB VOL_CS
                         SETB VOL_SCLK
                         SETB VOL_SDI
RET
;=====================================================================

;=====================================================================
;模拟SPI写入
WriteSPI:
                         MOV R7,#0x08                  ;设定数据位宽为8bit
WPGA0:                   LCALL Delay5us
                         SETB VOL_SCLK
                         RLC A
                         MOV VOL_SDI,C                 ;将数据左移一位到SDI端
                         LCALL Delay5us
                         CLR VOL_SCLK                  ;写入数据
                         DJNZ R7,WPGA0                 ;查看是否写完
RET
;=====================================================================

延时程序,音量数值限制以及增益控制程序你自己补一个,有上面这些已经很容易改一个出来了
另外我不用1602显示的,没有这个程序

5

主题

1

好友

114

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
573619
帖子
128
精华
0
经验
114 点
金钱
108 ¥
注册时间
2013-3-13
发表于 2021-6-11 22:45 | 显示全部楼层
好高级,看不懂,不过还是谢谢了

4

主题

0

好友

601

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
876741
帖子
576
精华
0
经验
601 点
金钱
573 ¥
注册时间
2020-4-27
发表于 2021-6-11 23:06 | 显示全部楼层
8 KB 的汇编啊,壮观哦。

2

主题

1

好友

194

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
10585
帖子
141
精华
0
经验
194 点
金钱
140 ¥
注册时间
2006-7-9
 楼主| 发表于 2021-6-11 23:45 | 显示全部楼层
lzj5208 发表于 2021-6-11 22:45
好高级,看不懂,不过还是谢谢了

汇编可以嵌入C里使用的。。。

4

主题

0

好友

601

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
876741
帖子
576
精华
0
经验
601 点
金钱
573 ¥
注册时间
2020-4-27
发表于 2021-6-12 10:32 | 显示全部楼层

勾起了点回忆,
闲的问一下。
看到了 delay 副程式,
用的是 nop ,
或是用(计时器 + 中断)程序?
十分好玩的汇编 RTOS.

2

主题

1

好友

194

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
10585
帖子
141
精华
0
经验
194 点
金钱
140 ¥
注册时间
2006-7-9
 楼主| 发表于 2021-6-12 20:24 | 显示全部楼层
Upuops 发表于 2021-6-12 10:32
勾起了点回忆,
闲的问一下。
看到了 delay 副程式,

nop+循环
简单好用
定时器说不定还要干别的,一般不占用

1

主题

0

好友

94

积分
     

论坛游民 当前离线

Rank: 3Rank: 3

UID
833180
帖子
112
精华
0
经验
94 点
金钱
92 ¥
注册时间
2017-6-1
发表于 2021-6-18 15:54 | 显示全部楼层
big-eblis 发表于 2021-6-12 20:24
nop+循环
简单好用
定时器说不定还要干别的,一般不占用

我一直用的是51汇编,
发我一份吧?
谢谢!

2

主题

1

好友

194

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
10585
帖子
141
精华
0
经验
194 点
金钱
140 ¥
注册时间
2006-7-9
 楼主| 发表于 2021-6-18 20:32 | 显示全部楼层
xjwwrly 发表于 2021-6-18 15:54
我一直用的是51汇编,
发我一份吧?
谢谢!

前面不是发了吗!关键部分有就可以了吧,其它的你要根据自己的要求写,我发的是操作72320的关键部分

8

主题

0

好友

134

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
116249
帖子
154
精华
0
经验
134 点
金钱
132 ¥
注册时间
2009-7-5
发表于 2021-6-27 19:34 来自手机端 | 显示全部楼层
好久不用汇编了,还是C可阅读性,通用性更佳。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc.

返回顶部