收藏本站

开盘机音响技术网

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

REVOX B215 MCU替换方案(连载)

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

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

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

x
欢迎转载,但请注明出处,在家电论坛也同步发贴.
前段时间在论坛发贴了710的mcu替换方案http://kaipanji.com/forum.php?mo ... id=60485&extra=,本来那个就是为做215的方案准备的,这贴算是正式开了.215是使用3个mab8440的mcu也是定制的ic,对应的可编程应该是mab8441p, 懒得再去找这个ic的相关资料再去学习编程 ,所以不审决定使用 类似于710的那种方式 ,找小封装的stc8,再使用转换座的方式 。4 ], \+ v2 y: L( F0 S8 R
我们先看一下215关于mcu的功能简图。$ K  l9 f* b6 K2 ?' j

+ L' r8 y. a3 k
% R' E! ~: a8 |) \; F# z 215流程图.png 4 c' N* ^: V% S

( e& M' z) r# v! J+ v/ d8 }. K0 y. p$ ]. L+ J2 M+ p; B
+ D/ `% }6 D  _) B6 d( g/ P

* Y  y: f/ p7 k; x  |: O8 J
 楼主| 发表于 2018-12-20 14:19:02 | 显示全部楼层
先stc8是因为它有硬件I2C功能,stc有32个IO口,mab8440有23个,所以够用了。之前那个手焊转换座花了不少时间,这次直接在本网上做pcb了,几十块钱就搞定了。下面是转换座的管脚对应表,以及电路图\pcb\实物图.
" t3 o9 H0 @6 g, _7 L7 Z( k LPL$UW`QFP_9$F}Z[3C0T.png 215转换座.png 转换座pcb.png 实物图.jpg ) ~' k! n+ T+ ?% J3 S! q8 F

% x' M! I" |: {# D8 A0 n3 ~
发表于 2018-12-20 13:22:44 | 显示全部楼层
大作 必须支持
发表于 2018-12-20 20:18:35 | 显示全部楼层
发表于 2018-12-21 04:55:59 | 显示全部楼层
 楼主| 发表于 2019-1-10 20:15:29 | 显示全部楼层
最近事多,好久没更新了。 才刚开始,要做的还很多,还是象之前那个,先将每个局部的功能做demo测试。. r' ], w, `- p+ c6 j1 m+ K* g
先做认为最麻烦的屏幕显示的问题,215的屏是使用飞利浦的pcf8577T来驱动显示的,使用的i2c总线接口。- N5 ]9 n0 z8 v9 a! l! u" D' v
实际可以将pcf8577当成是一个存储器,写入数据,它就会显示出来,不改变不用刷新。  
6 R7 ?  R- i5 H9 T' e# z( u+ ^要写入数据当然要先搞清楚数据格式,下图就是8577的数据格式,差不多意思就是 设备地址+控制字节+数据 ,* j3 A: w. i. m3 N
其实,要直接看文档并不那么容易测试成功,可以将逻辑分析仪接到一个正常机器的ic2,
3 e. Y. g& O: z9 t这样,直接看正常机器的数据再结合文档就非常容易了,基本没费太多波折,demo就成功了,可以驱动显示了。& v$ K4 s/ j' ~/ P, o$ X6 T
8577.png 显示的demo.jpg " t" c" ?% G. T& C, {+ d0 I& h

( p+ v4 M9 V$ ?/ g% j* F& _; x
- e. `9 o5 B8 v2 o) r
3 \9 d8 x3 m, T- U4 t9 `8 F2 _7 \8 K* I( y; K

+ J# w6 x# r3 h6 R7 V1 _
发表于 2019-3-21 16:27:29 | 显示全部楼层
可以称大师了
发表于 2019-3-25 08:37:02 | 显示全部楼层
 楼主| 发表于 2019-6-24 12:13:52 | 显示全部楼层
本帖最后由 乡村猎手 于 2019-6-24 04:17 编辑
/ m- c6 c0 r' O& j# P6 o# n. Q3 ^6 e4 F+ @( h1 w
因为懒很久没更新了,前两天有位玩家说需要这个,好吧,那再继续。
之前因为有几个没想清楚的问题:
1、 几个mcu使用I2C如何协同,互相通讯时主从模式怎么切换?
2、 磁带显示时间是怎么实现?
3、 偏磁测试如何实现 ?

: }$ Q. I" |5 r3 B  }: l2 _9 Z
NRV[{%27Q~$LO719Z4XOEOW.png

) K" y- b0 r* U& t! j" N5 B
" z& _7 A1 h% F# I# X3 k8 D/ e+ P
第一个问题,如果要和原机一样的方式来协同,需要使用逻辑分析仪去逆向分析工作过程,这样也挺费事,想着还是根据机器的功能全部重来,当然,这种方式的话,是无法部分更换三块MCU,要换就要全部换。虽然每个MCUI2C都需要发送和接收数据,但为了使用逻辑简单一点,始终用IC9做主控芯片,每个MCU保存自已上次的数据当数据有变化时,告诉主控(原机就留一个io口连接不同MCU),由主控去查。然后主控根据数据送去显示。

4 j! M. B1 ]+ ~* q
第二个问题,之前没想明白,其实也简单,它这个时间一是倒带到头的时候,显示00:00,另一个是在中间位置播放几秒后会显示一个时间(磁带总时间之前需要手动选择),如果在中间快进退是不能显示时间的。实际上左右转轴的转速比就是两边磁带长度的反比(当然要考虑磁带转完后空盘还有大小),下面是公式,但是不是正确,还得装机后再验证。
                当时显示时间  =  磁带总时长 *(右边转速空盘转速) / [(左边转速空盘转速) + (右边转速空盘转速)]
      
第三个问题,下次再写了,欢迎有兴趣的开友提供思路。
, y  b* f) k3 |4 Z' D
( C7 F( `0 t4 ^/ J

. ~) a+ l. O* ^- h" T! l

9 @, f0 Q$ Q5 z5 ~6 v
 楼主| 发表于 2019-7-10 20:20:23 | 显示全部楼层
这次看一下电平表是怎么实现的。  基本的原理就是单片机循环输出数字量(1到127 )到AD7524,这样不停输出不同电压到ref, 然后用信号电压和这个ref比较,当信号电平高于ref时,那么这个时候单片机输出的数字量就代表这时信号电平高低了。 电平表一共是-30 到 +8 ,那具体每一格,给到ad7524应该是多少呢?取+8db位置数字量是127,其它再取相对值 , 当然,这里只需要要对值就行,绝对值机器上有个电位器可调的。 . H- Z2 d8 Z; f  u; \5 p4 v
下面这个表列出了每个db值对应的数字量, 电路图和代码.! `3 r- L: n; \/ E1 \
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
* |$ B3 j+ e8 `& \8 v4 }8 o
4 k9 [7 |- z' I1 A
0 i5 Z8 ]# S* j8 H  B! }
1562760927.png 0 [; z! l9 A" q0 O* x
2 S% l; d1 ?; L) f

3 A+ t' P, J# ]  I8 T1 K( u7 Q; @1 M0 @9 g3 b

1 N0 a; |9 K" u; Rvoid check_meterLeve()9 x$ ?6 e' m& T8 o# `6 k
{  ~) z' {  F7 v' w2 z
        unsigned char i ;$ e( i& X5 O  P0 G8 s" z
        bit l,r;
& O5 ~8 I1 L) V* z        s_meter_l = 0 ;6 x2 i" W7 e* U& K. g( D. {3 [7 z
        s_meter_r = 0 ;, V6 f" [# f/ i: u" d, L
        for (i=23;i>0;i--)- E8 A/ M' p" w, Y5 H$ @, [
        {
& u( m5 A  G8 V( S, X" }# v2 n                9 b1 [- l! J/ z1 ~) u
                P_REF = meterCode[ i - 1 ];
$ {; y4 K9 s9 X# H                LR = 1;  //检测左声道
  W: }- |0 u( V% Q4 V* w                COMP = 1;
+ y) L3 z; H* e" T0 b$ u0 h                if (COMP == 1 && l==0  )  6 b- W4 n5 O" V* o1 q5 Z# F+ G
                {$ y# b% M; X/ u$ V9 g# |" ]; C4 n1 n
                        l = 1;4 c* |: b0 \; T) V2 Y
                        s_meter_l = i;
: C0 }' ]: N- i0 v3 U                }( \' l5 b: X* e5 M& |: Z

) D! R# p# Q- q8 B1 \; S5 u: m' A6 h5 k; C
4 c% d4 {: a! \4 r3 q& Z
                LR = 0;  //检测右声道
4 W( T! B* y: g& O) N  v6 x                COMP = 1;
2 s$ m* c! F3 w+ q                if (COMP == 1 && r==0  )
* O% V6 q9 ]1 ]6 x5 Y1 P" b                {
0 O7 S+ e" q2 J! w: }6 f+ W# l                        r = 1;
1 U: \) m$ n' u1 M1 O; ]! b                        s_meter_r = i;% B/ x7 [% k" v0 D  b8 k7 K9 X
                }7 k2 I! Q) L9 f  a

7 l* q. R& c  J0 X3 ^$ I                if(l == 1 && r==1)  //如果左右声道都检测到了,那就没必要再检测了
! J8 W+ o( R6 V2 `5 v/ N                {' V3 K- Z0 z' W* o2 }( g( ]. `4 {
                        i=0;% C" e1 z5 x( o. W1 m* w
                }* I0 J* L8 ]! @2 O' m, j
        }2 y. B! H! S; g+ D( H. \

$ V7 R7 j& S; v, q+ ~2 R& `$ m. F}
! N  ?* H8 ~6 X1 O; p" V9 j4 w" C1 ?0 @6 }
7 B4 P/ ]$ v' b: C

4 H; A( T' X. |" E! X! q
发表于 2019-7-10 21:22:34 | 显示全部楼层
乡村猎手 发表于 2019-7-10 12:20) |: N9 v  d( V5 e9 k' P
这次看一下电平表是怎么实现的。  基本的原理就是单片机循环输出数字量(1到127 )到AD7524,这样不停输出 ...

. _( g7 T; _: [$ G陈生是技术人才
发表于 2019-7-12 22:31:56 | 显示全部楼层
高端技术,坛里需要这样的人才
发表于 2019-7-12 23:47:43 | 显示全部楼层
人才
您需要登录后才可以回帖 登录 | 注册加入

本版积分规则

手机版|开盘机音响技术网 ( 桂ICP备20003207号-1  公安部备 45010302002201 客服:18077773618

GMT+8, 2025-8-17 08:13 , Processed in 0.073954 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2013 Comsenz Inc.

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