收藏本站技术园地

开盘机音响技术网

 找回密码
 注册加入
查看: 764|回复: 12
收起左侧

REVOX B215 MCU替换方案(连载)

[复制链接]
发表于 2018-12-20 04:16:35 | 显示全部楼层 |阅读模式

赶快注册并登录访问我们网站,呈现更多精彩内容!

您需要 登录 才可以下载或查看,没有帐号?注册加入

x
欢迎转载,但请注明出处,在家电论坛也同步发贴.
前段时间在论坛发贴了710的mcu替换方案http://kaipanji.com/forum.php?mo ... id=60485&extra=,本来那个就是为做215的方案准备的,这贴算是正式开了.215是使用3个mab8440的mcu也是定制的ic,对应的可编程应该是mab8441p, 懒得再去找这个ic的相关资料再去学习编程 ,所以不审决定使用 类似于710的那种方式 ,找小封装的stc8,再使用转换座的方式 。6 H( r4 o1 Y  d- h- j
我们先看一下215关于mcu的功能简图。
5 R3 t% h! {2 o* a) W% T& a- H, u  }8 w, Y6 |+ ?

  m4 f+ G) u7 x 215流程图.png : l* r$ W+ L/ E: R( ?) [
2 L# P3 F) [/ d

7 s3 b: {, Z, Z1 D. c( p( X3 }3 B1 L3 T" b

1 t6 X# ~0 |9 y, i; K( h5 {( D. C
 楼主| 发表于 2018-12-20 06:19:02 | 显示全部楼层
先stc8是因为它有硬件I2C功能,stc有32个IO口,mab8440有23个,所以够用了。之前那个手焊转换座花了不少时间,这次直接在本网上做pcb了,几十块钱就搞定了。下面是转换座的管脚对应表,以及电路图\pcb\实物图.
$ w4 W# S5 d2 e3 T, Z LPL$UW`QFP_9$F}Z[3C0T.png 215转换座.png 转换座pcb.png 实物图.jpg
; S, E/ m; w' g- X) t* L
* f& |( }# V- N0 u1 n: Q+ W
发表于 2018-12-20 05:22:44 | 显示全部楼层
大作 必须支持
发表于 2018-12-20 12:18:35 | 显示全部楼层
发表于 2018-12-20 20:55:59 | 显示全部楼层
 楼主| 发表于 2019-1-10 12:15:29 | 显示全部楼层
最近事多,好久没更新了。 才刚开始,要做的还很多,还是象之前那个,先将每个局部的功能做demo测试。
" o( a* n" W9 W+ @( Z先做认为最麻烦的屏幕显示的问题,215的屏是使用飞利浦的pcf8577T来驱动显示的,使用的i2c总线接口。
4 ^7 ~9 Q* W6 d8 b; T7 H- E1 X实际可以将pcf8577当成是一个存储器,写入数据,它就会显示出来,不改变不用刷新。  1 c8 g& E6 k" B" {4 X; y
要写入数据当然要先搞清楚数据格式,下图就是8577的数据格式,差不多意思就是 设备地址+控制字节+数据 ,- s1 y5 ^2 ^3 ]
其实,要直接看文档并不那么容易测试成功,可以将逻辑分析仪接到一个正常机器的ic2,
) T  i/ v! ]+ Z( |这样,直接看正常机器的数据再结合文档就非常容易了,基本没费太多波折,demo就成功了,可以驱动显示了。
6 t0 v1 S' n, G9 ~" L 8577.png 显示的demo.jpg
4 Y) N( H( ?( G2 e; F
3 Q; }% X1 [& G2 e- b: ^' s6 h$ _# E# e# \/ k1 B7 e% F+ o; n  m
* J, m, s% n: o5 M
' U9 K3 I7 }  L) o/ i% t$ T% I  O
; _; ^& \# @5 O( A9 P8 L& u& v+ }
发表于 2019-3-21 08:27:29 | 显示全部楼层
可以称大师了
发表于 2019-3-25 00:37:02 | 显示全部楼层
 楼主| 发表于 2019-6-24 04:13:52 | 显示全部楼层
本帖最后由 乡村猎手 于 2019-6-24 04:17 编辑
) m( w$ g5 {0 X0 c. v
' n3 x& q- x9 L4 ~# I* @# O
因为懒很久没更新了,前两天有位玩家说需要这个,好吧,那再继续。
之前因为有几个没想清楚的问题:
1、 几个mcu使用I2C如何协同,互相通讯时主从模式怎么切换?
2、 磁带显示时间是怎么实现?
3、 偏磁测试如何实现 ?

! q5 c/ M" W" Q2 k
NRV[{%27Q~$LO719Z4XOEOW.png

3 _7 L/ }3 J4 ~; i5 I
1 B) B, [. ~( o+ V1 U
第一个问题,如果要和原机一样的方式来协同,需要使用逻辑分析仪去逆向分析工作过程,这样也挺费事,想着还是根据机器的功能全部重来,当然,这种方式的话,是无法部分更换三块MCU,要换就要全部换。虽然每个MCUI2C都需要发送和接收数据,但为了使用逻辑简单一点,始终用IC9做主控芯片,每个MCU保存自已上次的数据当数据有变化时,告诉主控(原机就留一个io口连接不同MCU),由主控去查。然后主控根据数据送去显示。

# z5 l- A  J8 v6 H/ t: }
第二个问题,之前没想明白,其实也简单,它这个时间一是倒带到头的时候,显示00:00,另一个是在中间位置播放几秒后会显示一个时间(磁带总时间之前需要手动选择),如果在中间快进退是不能显示时间的。实际上左右转轴的转速比就是两边磁带长度的反比(当然要考虑磁带转完后空盘还有大小),下面是公式,但是不是正确,还得装机后再验证。
                当时显示时间  =  磁带总时长 *(右边转速空盘转速) / [(左边转速空盘转速) + (右边转速空盘转速)]
      
第三个问题,下次再写了,欢迎有兴趣的开友提供思路。
7 x/ r* {! S9 r& `
! z) G& }5 M+ K; O; ]
4 R. S( h; [# k7 h5 Q

) |+ _$ n8 \" A' x% _$ A
 楼主| 发表于 2019-7-10 12:20:23 | 显示全部楼层
这次看一下电平表是怎么实现的。  基本的原理就是单片机循环输出数字量(1到127 )到AD7524,这样不停输出不同电压到ref, 然后用信号电压和这个ref比较,当信号电平高于ref时,那么这个时候单片机输出的数字量就代表这时信号电平高低了。 电平表一共是-30 到 +8 ,那具体每一格,给到ad7524应该是多少呢?取+8db位置数字量是127,其它再取相对值 , 当然,这里只需要要对值就行,绝对值机器上有个电位器可调的。
1 x+ j+ _  A6 y( d9 U( P- j 下面这个表列出了每个db值对应的数字量, 电路图和代码.. M) L& D. U4 x; {: }% E
dbVVdac电压设置
8
2.5118864
127
7
2.2387211
113
6
1.9952623
101
5
1.7782794
90
4
1.5848932
80
3
1.4125375
71
2
1.2589254
64
1
1.1220185
57
0
1
51
-1
0.8912509
45
-2
0.7943282
40
-3
0.7079458
36
-4
0.6309573
32
-5
0.5623413
28
-6
0.5011872
25
-8
0.3981072
20
-10
0.3162278
16
-12
0.2511886
13
-14
0.1995262
10
-16
0.1584893
8
-18
0.1258925
6
-20
0.1
5
-30
0.0316228
2

: I% T  B: D  A  k. m4 ]
- B/ L: B# V) y; |/ Y3 D% j% T: U. g; R4 x0 J$ K3 v
1562760927.png . m7 \3 h# b2 w5 c1 p
; v4 a2 ^* N& Q
' c2 @2 x' W- u% m+ v$ c

6 K( O) D) Y* n& J9 ]& u
9 V6 v( N) f4 b" d) W, Mvoid check_meterLeve()# ^* @, [! I& [% Z. D" U! j# e) @/ b
{
( i4 V+ {7 N7 e5 @" G, L        unsigned char i ;
- N& s+ r' k* L- {1 z0 A8 y        bit l,r; " A0 I7 O3 M7 j+ L
        s_meter_l = 0 ;
2 C% A* l/ P, n0 ]0 L  _        s_meter_r = 0 ;3 q( B$ L# l. c0 P' J/ M3 q
        for (i=23;i>0;i--)
" M& E' ]8 h  Z) s8 Q( |# x        {
+ S2 u! a( O' l3 M               
1 D" y# f! L( P" I* y                P_REF = meterCode[ i - 1 ];' y) ~; v# }* T9 I/ n
                LR = 1;  //检测左声道
8 X4 V0 z) q3 U                COMP = 1;7 d1 Y" R" b% l# d' O" _+ u$ Z
                if (COMP == 1 && l==0  )  
% j2 _; e  s$ P  u; m5 V                {: Y' }$ a( }  `, v) t
                        l = 1;
5 O/ z. }7 \5 q" w0 k9 K! i                        s_meter_l = i;
  Q5 _8 d- @6 D) e9 V! E! k/ u                }, Z" ^/ @  ]) f( j9 S2 w1 ^# \4 _
/ h( F- L! N! u* h* C
% R9 m6 y" c' j4 ?, O

; q/ }. N! P9 ^5 j4 Y* X! h' x7 G                LR = 0;  //检测右声道
5 y% h4 [! y7 w* b# E; |, g                COMP = 1;
; s+ Z4 D+ A" Y* x' k) k! ]                if (COMP == 1 && r==0  )
/ }* O* T" W/ ~                {3 H- Q" p3 q! m; u: O$ F
                        r = 1;' m5 e; g) `1 g1 {! c& F' \
                        s_meter_r = i;
2 \/ r4 h0 S+ d- t  a3 Z# |$ @                }
9 t; t- l+ V  ]" Y+ @3 P# ~
# _- O+ d; M1 {8 @! I                if(l == 1 && r==1)  //如果左右声道都检测到了,那就没必要再检测了# n: C! [4 c5 r' _5 n' S) ~
                {
, l6 s  W+ j" n/ Q+ ?- y$ Y/ s                        i=0;3 S! h, p; ^! C8 U& K7 l: J+ i
                }- j9 |2 [, z6 @6 K7 S, f
        }
, G4 i6 d( X0 U3 i8 I3 I
. c5 _- w( `3 d}
% B- s' A5 i% I- e
4 x5 D$ ]& p( W; L: s$ g7 j- c2 d, I# h
, M! p  }& h1 U, x' g2 E1 k# @7 l  m
发表于 2019-7-10 13:22:34 | 显示全部楼层
乡村猎手 发表于 2019-7-10 12:20% Q8 Y' }$ n/ }
这次看一下电平表是怎么实现的。  基本的原理就是单片机循环输出数字量(1到127 )到AD7524,这样不停输出 ...

4 p6 G4 ]$ N0 s, I1 Q陈生是技术人才
发表于 6 天前 | 显示全部楼层
高端技术,坛里需要这样的人才
发表于 6 天前 | 显示全部楼层
人才
您需要登录后才可以回帖 登录 | 注册加入

本版积分规则

QQ|手机版|开盘机音响技术网 ( 桂ICP备11007173号  客服电话:18077773618 邮箱:kaipanjiluntan@sina.com.cn

GMT, 2019-7-18 13:35 , Processed in 0.071247 second(s), 24 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表