耳机大家坛老帖 » DIY及技术讨论区 » PCM2704/2706 ROM文件生成器v1.0发布......
«1 2 3» Pages: ( 2/3 total )
本页主题: PCM2704/2706 ROM文件生成器v1.0发布...... 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

really


级别: 骑士
精华: 2
发帖: 1062
威望: 461
金钱: 1257
在线时间:890(小时)
注册时间:2006-05-30
最后登录:2013-07-05

This means that each byte of data must be stored with its bits in reverse order.
The content of power attribute and max power must be consistent with actual application circuit configuration (PSEL, HOST setting, and actual power usage from VBUS or USB connector), otherwise, it may cause improper or unexpected PCM2704/6 operation.

上面几句话很重要,我看明白了,但是不会写程序.
bigfoot_13
PFPF
顶端 Posted: 2007-03-26 15:35 | 20 楼
bigfoot_13


级别: 蜘蛛侠
精华: 0
发帖: 3403
威望: 1096
金钱: 4014
在线时间:2128(小时)
注册时间:2005-04-18
最后登录:2013-01-27

Public ChipType As Byte
Public Power As Byte
Public Current As Byte
Dim Buff() As Byte
Dim PString(15) As Byte
Dim VString(31) As Byte
Public Filename As String

Public Sub Writefile()

For i = 0 To 16 - Len(TextPString.Text)
TextPString.Text = TextPString.Text + " "
Next i
For i = 0 To 15
PString(i) = Convert(Asc(Mid(TextPString.Text, i + 1)))
Next i

For i = 0 To 32 - Len(TextVString.Text)
TextVString.Text = TextVString.Text + " "
Next i
For i = 0 To 31
VString(i) = Convert(Asc(Mid(TextVString.Text, i + 1)))
Next i

Open Filename For Binary Access Write As #1
ReDim Buff(1)
Buff(0) = &HDD
Buff(1) = &H10
Put #1, , Buff '写入VID

Put #1, , ChipType '写入芯片型号06/04

ReDim Buff(0)
Buff(0) = &HE4
Put #1, , Buff '写入芯片型号27

Put #1, , PString '写入Product String
Put #1, , VString '写入Vendor String
Put #1, , Power '写入供电方式
Put #1, , Current '写入所需电流

ReDim Buff(2)
Buff(0) = &H50
Buff(1) = &HC9
Buff(2) = &H80
Put #1, , Buff '写入Auxiliary HID usage ID

ReDim Buff(6)
For i = 0 To 6
Buff(i) = &HFF
Next i
Put #1, , Buff '写入7个FF
Close #1

MsgBox ("成功写入到" + Filename)

End Sub

Public Function Convert(Incoming As Byte) As Byte
Dim XY, X, Y As String
XY = Hex(Incoming)
X = Left(XY, 1)
Y = Mid(XY, 2)

Select Case X
Case "1"
X = "8"
Case "8"
X = "1"
Case "2"
X = "4"
Case "4"
X = "2"
Case "3"
X = "C"
Case "C"
X = "3"
Case "A"
X = "5"
Case "5"
X = "A"
Case "7"
X = "E"
Case "E"
X = "7"
Case "B"
X = "D"
Case "D"
X = "B"
Case Else
X = X
End Select

Select Case Y
Case "1"
Y = "8"
Case "8"
Y = "1"
Case "2"
Y = "4"
Case "4"
Y = "2"
Case "3"
Y = "C"
Case "C"
Y = "3"
Case "A"
Y = "5"
Case "5"
Y = "A"
Case "7"
Y = "E"
Case "E"
Y = "7"
Case "B"
Y = "D"
Case "D"
Y = "B"
Case Else
Y = Y
End Select

Convert = Val("&H" + Y + X)

End Function

Private Sub ComboChip_click()
If ComboChip.Text = "PCM2706" Then ChipType = &H60
If ComboChip.Text = "PCM2704" Then ChipType = &H20
End Sub

Private Sub ComboCurrent_Click()
Select Case ComboCurrent.Text
Case "20mA"
Current = &H50
Case "100mA"
Current = &H4C
Case "250mA"
Current = &HBE
Case "500mA"
Current = &H5F
End Select

End Sub

Private Sub ComboPower_click()
If ComboPower.Text = "Self-Powered" Then
Power = &H3
Form1.ComboCurrent.Text = "20mA"
Form1.ComboCurrent.Locked = True
Form1.ComboCurrent.Enabled = False
End If
If ComboPower.Text = "Bus-Powered" Then
Power = &H1
Form1.ComboCurrent.Locked = False
Form1.ComboCurrent.Enabled = True
End If
End Sub

Private Sub CommandAbout_Click()
AboutForm.Show
End Sub

Private Sub CommandExit_Click()
End
End Sub

Private Sub CommandRun_Click()

If ComboChip.Text <> "" And ComboPower.Text <> "" And ComboCurrent.Text <> "" Then
  Filename = Form1.TextFolder.Text
  If Dir(Filename, vbDirectory) <> "" Then
  A = MsgBox("文件已存在,无法生成,请改名", 48, "注意")
  Else
  Call Writefile
  End If
Else
A = MsgBox("请正确选择型号和参数", 48, "注意")
End If

End Sub
顶端 Posted: 2007-03-26 15:38 | 21 楼
bigfoot_13


级别: 蜘蛛侠
精华: 0
发帖: 3403
威望: 1096
金钱: 4014
在线时间:2128(小时)
注册时间:2005-04-18
最后登录:2013-01-27

我用的办法非常笨……
顶端 Posted: 2007-03-26 15:38 | 22 楼
really


级别: 骑士
精华: 2
发帖: 1062
威望: 461
金钱: 1257
在线时间:890(小时)
注册时间:2006-05-30
最后登录:2013-07-05

C语言写的?
顶端 Posted: 2007-03-26 15:45 | 23 楼
really


级别: 骑士
精华: 2
发帖: 1062
威望: 461
金钱: 1257
在线时间:890(小时)
注册时间:2006-05-30
最后登录:2013-07-05

我要用SELF POWER模式,这样指标会高些
所以The content of power attribute and max power must be consistent with actual application circuit configuration
顶端 Posted: 2007-03-26 15:46 | 24 楼
bigfoot_13


级别: 蜘蛛侠
精华: 0
发帖: 3403
威望: 1096
金钱: 4014
在线时间:2128(小时)
注册时间:2005-04-18
最后登录:2013-01-27

是VB
用Self-Power的话,USB上的+5V不供电,只是提供检测功能,很小就够了。所以我的程序里面如果选Self-power,电流就固定20mA了
顶端 Posted: 2007-03-26 16:49 | 25 楼
really


级别: 骑士
精华: 2
发帖: 1062
威望: 461
金钱: 1257
在线时间:890(小时)
注册时间:2006-05-30
最后登录:2013-07-05

Quote:
下面是引用bigfoot_13于2007-03-26 16:49发表的:
是VB
用Self-Power的话,USB上的+5V不供电,只是提供检测功能,很小就够了。所以我的程序里面如果选Self-power,电流就固定20mA了



是的,但是必须确保ROM数据和几个选择PIN的设置一致
顶端 Posted: 2007-03-26 20:25 | 26 楼
clark_h



头衔:没见过比我更坏的人了 没见过比我更坏的人了

级别: 城市猎人
精华: 1
发帖: 2579
威望: 2364
金钱: 5061
在线时间:254(小时)
注册时间:2005-07-13
最后登录:2012-05-31

Quote:
下面是引用bigfoot_13于2007-03-26 15:38发表的:
Public Function Convert(Incoming As Byte) As Byte
Dim XY, X, Y As String
XY = Hex(Incoming)
X = Left(XY, 1)
Y = Mid(XY, 2)

Select Case X
Case "1"
X = "8"
Case "8"
X = "1"
Case "2"
X = "4"
Case "4"
X = "2"
Case "3"
X = "C"
Case "C"
X = "3"
Case "A"
X = "5"
Case "5"
X = "A"
Case "7"
X = "E"
Case "E"
X = "7"
Case "B"
X = "D"
Case "D"
X = "B"
Case Else
X = X
End Select

Select Case Y
Case "1"
Y = "8"
Case "8"
Y = "1"
Case "2"
Y = "4"
Case "4"
Y = "2"
Case "3"
Y = "C"
Case "C"
Y = "3"
Case "A"
Y = "5"
Case "5"
Y = "A"
Case "7"
Y = "E"
Case "E"
Y = "7"
Case "B"
Y = "D"
Case "D"
Y = "B"
Case Else
Y = Y
End Select

Convert = Val("&H" + Y + X)

.......


不用那么夸张的去交换字节吧.
顶端 Posted: 2007-03-27 09:50 | 27 楼
bigfoot_13


级别: 蜘蛛侠
精华: 0
发帖: 3403
威望: 1096
金钱: 4014
在线时间:2128(小时)
注册时间:2005-04-18
最后登录:2013-01-27

那怎么办啊?不知道有什么算法可以简单实现
顶端 Posted: 2007-03-27 10:26 | 28 楼
clark_h



头衔:没见过比我更坏的人了 没见过比我更坏的人了

级别: 城市猎人
精华: 1
发帖: 2579
威望: 2364
金钱: 5061
在线时间:254(小时)
注册时间:2005-07-13
最后登录:2012-05-31

Quote:
下面是引用bigfoot_13于2007-03-27 10:26发表的:
那怎么办啊?不知道有什么算法可以简单实现

一起在QQ讨论下
顶端 Posted: 2007-03-27 14:34 | 29 楼
clark_h



头衔:没见过比我更坏的人了 没见过比我更坏的人了

级别: 城市猎人
精华: 1
发帖: 2579
威望: 2364
金钱: 5061
在线时间:254(小时)
注册时间:2005-07-13
最后登录:2012-05-31

Quote:
下面是引用clark_h于2007-03-27 14:34发表的:

一起在QQ讨论下


和bigfoot_13兄讨论了一下,发现bigfoot_13兄果然是编程的高手,观察能力太强了,佩服佩服!
顶端 Posted: 2007-03-27 17:24 | 30 楼
bigfoot_13


级别: 蜘蛛侠
精华: 0
发帖: 3403
威望: 1096
金钱: 4014
在线时间:2128(小时)
注册时间:2005-04-18
最后登录:2013-01-27

哪里哪里,就大学学过一点点VB,都忘光了阿!
顶端 Posted: 2007-03-27 17:42 | 31 楼
bigfoot_13


级别: 蜘蛛侠
精华: 0
发帖: 3403
威望: 1096
金钱: 4014
在线时间:2128(小时)
注册时间:2005-04-18
最后登录:2013-01-27

顶一下,为人民服务!
顶端 Posted: 2007-04-13 17:33 | 32 楼
微尘




级别: 骑士
精华: 0
发帖: 1035
威望: 251
金钱: 1017
在线时间:874(小时)
注册时间:2004-08-10
最后登录:2013-09-18

请发一份到 hecheng1057@163.com.谢谢!
顶端 Posted: 2007-04-13 18:40 | 33 楼
bigfoot_13


级别: 蜘蛛侠
精华: 0
发帖: 3403
威望: 1096
金钱: 4014
在线时间:2128(小时)
注册时间:2005-04-18
最后登录:2013-01-27

LS的已经发了
顶端 Posted: 2007-04-16 10:41 | 34 楼
微尘




级别: 骑士
精华: 0
发帖: 1035
威望: 251
金钱: 1017
在线时间:874(小时)
注册时间:2004-08-10
最后登录:2013-09-18

已经收到,谢谢!
顶端 Posted: 2007-04-16 12:13 | 35 楼
ydss


级别: 蝙蝠侠
精华: 1
发帖: 2631
威望: 520
金钱: 2167
在线时间:1124(小时)
注册时间:2004-05-04
最后登录:2013-09-06

2702咋没新ROM刷呢
顶端 Posted: 2007-04-17 23:31 | 36 楼
bigfoot_13


级别: 蜘蛛侠
精华: 0
发帖: 3403
威望: 1096
金钱: 4014
在线时间:2128(小时)
注册时间:2005-04-18
最后登录:2013-01-27

2702根本就不支持外接ROM,只有2704和2706可以
另外2705和2707可以通过SPI总线来修改信息
顶端 Posted: 2007-04-18 09:24 | 37 楼
wsc780




级别: 新手上路
精华: 0
发帖: 1
威望: 1
金钱: 1
在线时间:0(小时)
注册时间:2007-05-08
最后登录:2007-05-08

bigfoot_13  :

      请给我发一份呀,多谢。另请问PCM2704做字符显示最多可以显示多少个英文字符?
wsc780@163.com
顶端 Posted: 2007-05-09 09:16 | 38 楼
bigfoot_13


级别: 蜘蛛侠
精华: 0
发帖: 3403
威望: 1096
金钱: 4014
在线时间:2128(小时)
注册时间:2005-04-18
最后登录:2013-01-27

LS的发了
Product string 16个字符
Vendor string 32个字符,但是我不知道有什么用
顶端 Posted: 2007-05-09 09:30 | 39 楼
«1 2 3» Pages: ( 2/3 total )
耳机大家坛老帖 » DIY??????

Powered by PHPWind 网友所发文章不代表本站立场,耳机大家坛版权所有,未经许可不得转载。 www.erji.net 浙icp备08008246号
战略合作伙伴:深圳市恒之瑞科技有限公司 《中华人民共和国增值电信业务经营许可证》粤B2-20120704
耳机大家坛成立于2002年  《耳机大家坛》图形LOGO及文字均为注册商标