收藏本站

开盘机音响技术网

 找回密码
 注册加入
查看: 4211|回复: 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,再使用转换座的方式 。% n' s$ t" _) d" j% U
我们先看一下215关于mcu的功能简图。
0 F3 I* r- ^: P! s
6 _" h; T, V$ z3 S5 V0 w+ D! ?+ x6 t: Y7 ~* C0 p. ]3 F
215流程图.png 8 n4 _5 i/ B2 A. Z0 c1 K6 M! h

+ A6 X, g: J3 b. [4 K7 H2 p6 H8 ~  w% z4 D3 J) q
, ^/ o, F: t  R% m- E
" @" M& X1 [: g1 u2 ^- \$ Y8 P
 楼主| 发表于 2018-12-20 14:19:02 | 显示全部楼层
先stc8是因为它有硬件I2C功能,stc有32个IO口,mab8440有23个,所以够用了。之前那个手焊转换座花了不少时间,这次直接在本网上做pcb了,几十块钱就搞定了。下面是转换座的管脚对应表,以及电路图\pcb\实物图.
; S5 b9 h. U' F LPL$UW`QFP_9$F}Z[3C0T.png 215转换座.png 转换座pcb.png 实物图.jpg ; J9 W3 Z9 x2 B# i8 G

( {' u7 O8 l3 T6 Y, B( h* j
发表于 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测试。" N/ `( |8 \3 ?% G2 e) m
先做认为最麻烦的屏幕显示的问题,215的屏是使用飞利浦的pcf8577T来驱动显示的,使用的i2c总线接口。. n3 m  k' C: f9 \* q4 P9 {1 `( u
实际可以将pcf8577当成是一个存储器,写入数据,它就会显示出来,不改变不用刷新。  6 R% U! {8 r( Q; J! W: f
要写入数据当然要先搞清楚数据格式,下图就是8577的数据格式,差不多意思就是 设备地址+控制字节+数据 ,
8 F5 {. s( Z) ^9 z其实,要直接看文档并不那么容易测试成功,可以将逻辑分析仪接到一个正常机器的ic2,
( k- O7 x7 f- v* E: B# t这样,直接看正常机器的数据再结合文档就非常容易了,基本没费太多波折,demo就成功了,可以驱动显示了。
- n0 t- X6 B1 b5 h/ G1 l0 D* P 8577.png 显示的demo.jpg " `) Y7 x+ T8 S, q% l. o% Y- Z; d
  A9 F% @; Y  x3 T0 K# D
& `7 L$ P. X( q$ o: d) }3 s

/ w% ^+ ]9 e. @/ y! m
3 v, E) H; [6 k
) A# h% H/ \9 q" W0 ~* x& R8 K
发表于 2019-3-21 16:27:29 | 显示全部楼层
可以称大师了
发表于 2019-3-25 08:37:02 | 显示全部楼层
 楼主| 发表于 2019-6-24 12:13:52 | 显示全部楼层
本帖最后由 乡村猎手 于 2019-6-24 04:17 编辑 $ f1 B: c5 v5 s! i3 }7 [/ s6 z

' g9 ]! \: O, u
因为懒很久没更新了,前两天有位玩家说需要这个,好吧,那再继续。
之前因为有几个没想清楚的问题:
1、 几个mcu使用I2C如何协同,互相通讯时主从模式怎么切换?
2、 磁带显示时间是怎么实现?
3、 偏磁测试如何实现 ?

0 D$ p5 k. E7 @0 }% s. k
NRV[{%27Q~$LO719Z4XOEOW.png
: y$ p( k# |4 I$ @+ e3 X
  I( a! @! y* O% y& n* b+ Y' Y
第一个问题,如果要和原机一样的方式来协同,需要使用逻辑分析仪去逆向分析工作过程,这样也挺费事,想着还是根据机器的功能全部重来,当然,这种方式的话,是无法部分更换三块MCU,要换就要全部换。虽然每个MCUI2C都需要发送和接收数据,但为了使用逻辑简单一点,始终用IC9做主控芯片,每个MCU保存自已上次的数据当数据有变化时,告诉主控(原机就留一个io口连接不同MCU),由主控去查。然后主控根据数据送去显示。
% s3 {' _3 H& K; {' I
第二个问题,之前没想明白,其实也简单,它这个时间一是倒带到头的时候,显示00:00,另一个是在中间位置播放几秒后会显示一个时间(磁带总时间之前需要手动选择),如果在中间快进退是不能显示时间的。实际上左右转轴的转速比就是两边磁带长度的反比(当然要考虑磁带转完后空盘还有大小),下面是公式,但是不是正确,还得装机后再验证。
                当时显示时间  =  磁带总时长 *(右边转速空盘转速) / [(左边转速空盘转速) + (右边转速空盘转速)]
      
第三个问题,下次再写了,欢迎有兴趣的开友提供思路。
% }1 ?- I! b( u5 R4 {4 O

9 D! X$ V/ I6 B0 I: c" Y
4 \8 M! I' D# I$ Y/ L! H' H

. N" T3 v+ n. a$ C3 Y
 楼主| 发表于 2019-7-10 20:20:23 | 显示全部楼层
这次看一下电平表是怎么实现的。  基本的原理就是单片机循环输出数字量(1到127 )到AD7524,这样不停输出不同电压到ref, 然后用信号电压和这个ref比较,当信号电平高于ref时,那么这个时候单片机输出的数字量就代表这时信号电平高低了。 电平表一共是-30 到 +8 ,那具体每一格,给到ad7524应该是多少呢?取+8db位置数字量是127,其它再取相对值 , 当然,这里只需要要对值就行,绝对值机器上有个电位器可调的。 . K6 _9 v5 J& _3 J8 f/ V" K' s3 a+ L
下面这个表列出了每个db值对应的数字量, 电路图和代码.' H: T% E, l; t( J; d
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
, S. K# O( g: p! j% h1 A
9 s$ ]. |  K, C
( r) F3 t' b' z7 a+ e6 V
1562760927.png 0 m+ a. g& a7 V, H  F, V

" `4 p' N! W& m& G) x: a' r$ F5 F. r
- Q6 i9 h5 i' F0 X2 M7 u3 t2 X! u1 S5 o. V/ v8 o

8 T) Y$ F) V7 e' h, b  U) a5 `5 gvoid check_meterLeve()
" V& n4 a' a& A/ h% ~: P{* ]" _( R9 z4 x8 W: q/ x
        unsigned char i ;
& Y! t' @* a" D$ y# v# C5 J8 z9 n        bit l,r; 6 J4 r7 s' K6 @+ q+ H; k5 h
        s_meter_l = 0 ;
2 Y( X) M( ?3 E+ e0 ~8 o        s_meter_r = 0 ;5 t! w! C5 C% g
        for (i=23;i>0;i--)
* j' a- U+ I: I  B        {! e" n4 Y" w5 I2 U+ K
               
6 T; p8 n4 Y1 h2 V                P_REF = meterCode[ i - 1 ];
+ y1 u  d) b" \( m, g" F                LR = 1;  //检测左声道& J; a1 J$ g4 H% v- G! z" |  n
                COMP = 1;
+ u' {; l- W+ B; Z: S! k  ?                if (COMP == 1 && l==0  )  
9 h; b: y" K1 C& B9 c4 p" Z( `                {
9 N: X+ I9 g3 d. n9 t9 C                        l = 1;3 Y; ~9 M) B; L( t
                        s_meter_l = i;
8 J% D& [8 C+ r4 S4 K6 c                }% ?# L9 k& H  w! C
! M& p, h, ~0 _: A( p9 }
4 b2 j! T8 p) l8 l! Z% l

4 U  q2 G$ R" G/ g$ E2 S                LR = 0;  //检测右声道
9 d; z. R+ B: ?/ P( ]                COMP = 1;
+ |: V! w! \4 E7 i6 ^; K- {                if (COMP == 1 && r==0  )4 @, T' S2 L5 Z
                {; {, ?+ p8 r6 R1 R4 U; V. q. E
                        r = 1;1 {* R& E) |3 V; E) F
                        s_meter_r = i;6 f* d2 |8 y9 R! K+ {
                }8 q$ z6 p2 K$ o$ ?: Y
: ]- {0 H: c! S/ t( S- b5 g
                if(l == 1 && r==1)  //如果左右声道都检测到了,那就没必要再检测了
) S' B% {9 K- ^' h) }% Z0 z' U( X                {
: w! I7 f6 g/ a4 D, G% ]0 N                        i=0;
& l' `8 B) p" Q# W& B8 g/ i                }& O4 B( ~- g, X: X2 M+ [! E
        }
% k7 ?1 e5 C0 M9 G0 J! Z+ I7 c7 t" J. K
}; c5 }: r4 k0 r. S
; i+ Y' b' G2 L5 |  J

8 ^# Q9 X1 c. X3 i# o) N* w% u/ X; j/ a, C2 H
发表于 2019-7-10 21:22:34 | 显示全部楼层
乡村猎手 发表于 2019-7-10 12:20
* ^# ~& A  N8 g; p5 G0 K这次看一下电平表是怎么实现的。  基本的原理就是单片机循环输出数字量(1到127 )到AD7524,这样不停输出 ...
# s" N- `* x  P, R% {5 v
陈生是技术人才
发表于 2019-7-12 22:31:56 | 显示全部楼层
高端技术,坛里需要这样的人才
发表于 2019-7-12 23:47:43 | 显示全部楼层
人才
您需要登录后才可以回帖 登录 | 注册加入

本版积分规则

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

GMT+8, 2026-3-12 20:31 , Processed in 0.107846 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2013 Comsenz Inc.

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