收藏本站技术园地

开盘机音响技术网

 找回密码
 注册加入
查看: 973|回复: 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,再使用转换座的方式 。
7 N( M4 ?2 G8 Z4 D$ m我们先看一下215关于mcu的功能简图。0 T( C- g- C6 W7 o& F/ j7 S( Q9 A

  }$ P/ W6 E/ G4 R9 `& |: k7 w0 f; ]
215流程图.png
/ L$ n" j5 ~( l* t
2 s; t! L9 I) \$ N7 a( i/ Q, b2 ]0 V; R% B2 q1 m7 i& t9 {

; K+ a; Q) u  @; Y( p; ^
. k! H( T# g1 ^
 楼主| 发表于 2018-12-20 06:19:02 | 显示全部楼层
先stc8是因为它有硬件I2C功能,stc有32个IO口,mab8440有23个,所以够用了。之前那个手焊转换座花了不少时间,这次直接在本网上做pcb了,几十块钱就搞定了。下面是转换座的管脚对应表,以及电路图\pcb\实物图.( I: r/ n  p  k$ J
LPL$UW`QFP_9$F}Z[3C0T.png 215转换座.png 转换座pcb.png 实物图.jpg
+ m8 y+ b' G2 g2 g" y/ E6 H& \) L/ b- }# @7 x8 H$ D! X; ?1 n5 {
发表于 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测试。6 l1 k7 E$ s2 W  W3 `9 o
先做认为最麻烦的屏幕显示的问题,215的屏是使用飞利浦的pcf8577T来驱动显示的,使用的i2c总线接口。
2 I4 @' N: L: e- Q: E9 Y- ?6 Z实际可以将pcf8577当成是一个存储器,写入数据,它就会显示出来,不改变不用刷新。  
" \$ V, E5 {; R$ S2 Q8 Y" ~要写入数据当然要先搞清楚数据格式,下图就是8577的数据格式,差不多意思就是 设备地址+控制字节+数据 ," }, g3 v! I5 c# P% C
其实,要直接看文档并不那么容易测试成功,可以将逻辑分析仪接到一个正常机器的ic2,/ ]7 i3 h6 z4 a: p' {
这样,直接看正常机器的数据再结合文档就非常容易了,基本没费太多波折,demo就成功了,可以驱动显示了。8 t! I. Z( S7 `) j6 [; \- B7 E
8577.png 显示的demo.jpg 7 q" `- N1 v. }0 [7 q
6 x9 S) M$ m1 J
2 G( ?  X# e/ w2 T- ^: o9 r

- r. y! N9 p# n( W( s  L6 W# `8 }
. c5 W6 [$ M0 x% g: W5 C4 ~2 n9 L: [6 `( F& @
发表于 2019-3-21 08:27:29 | 显示全部楼层
可以称大师了
发表于 2019-3-25 00:37:02 | 显示全部楼层
 楼主| 发表于 2019-6-24 04:13:52 | 显示全部楼层
本帖最后由 乡村猎手 于 2019-6-24 04:17 编辑 9 g) x: ?2 S9 L5 Y  `
, A  g  |, S& Q- d+ i
因为懒很久没更新了,前两天有位玩家说需要这个,好吧,那再继续。
之前因为有几个没想清楚的问题:
1、 几个mcu使用I2C如何协同,互相通讯时主从模式怎么切换?
2、 磁带显示时间是怎么实现?
3、 偏磁测试如何实现 ?

' z* Z8 u* z- d" a  H% S
NRV[{%27Q~$LO719Z4XOEOW.png
% }! o" }0 O; P9 Q0 `

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

7 K. p) v* O. @  M( p! |
第二个问题,之前没想明白,其实也简单,它这个时间一是倒带到头的时候,显示00:00,另一个是在中间位置播放几秒后会显示一个时间(磁带总时间之前需要手动选择),如果在中间快进退是不能显示时间的。实际上左右转轴的转速比就是两边磁带长度的反比(当然要考虑磁带转完后空盘还有大小),下面是公式,但是不是正确,还得装机后再验证。
                当时显示时间  =  磁带总时长 *(右边转速空盘转速) / [(左边转速空盘转速) + (右边转速空盘转速)]
      
第三个问题,下次再写了,欢迎有兴趣的开友提供思路。
5 _& R" n( n+ Y% q; Q; S7 E
( `0 D" x: y# A8 [$ B
% B" p0 y# O- q& b$ P- I

) E: c( N. U/ n$ x4 w9 F# N+ v: F
 楼主| 发表于 2019-7-10 12:20:23 | 显示全部楼层
这次看一下电平表是怎么实现的。  基本的原理就是单片机循环输出数字量(1到127 )到AD7524,这样不停输出不同电压到ref, 然后用信号电压和这个ref比较,当信号电平高于ref时,那么这个时候单片机输出的数字量就代表这时信号电平高低了。 电平表一共是-30 到 +8 ,那具体每一格,给到ad7524应该是多少呢?取+8db位置数字量是127,其它再取相对值 , 当然,这里只需要要对值就行,绝对值机器上有个电位器可调的。 5 U" d- G2 w8 Y% d  ~; Z
下面这个表列出了每个db值对应的数字量, 电路图和代码.
: c' ~6 x6 F" R/ P
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
# N" n7 X1 o/ `* W8 ~5 s9 x
% W4 g' v/ ~+ d* G4 N3 f

' K* Q/ ?4 n0 r 1562760927.png % \6 f3 k+ E* r
- U+ D; O3 @* N& g" I

7 d4 g; {7 ?* U- e
5 O9 M: k3 h8 `7 q) u5 H4 J+ p. |6 @2 G% b# l# R- G
void check_meterLeve()
( v, P. E$ C/ `4 Z0 H+ W: x{
& H$ {; P, n  `0 [" Y/ T        unsigned char i ;, g% [4 }& p) b1 c0 c8 ^
        bit l,r;
5 G; Z9 T) _3 W0 e( ^" q/ H8 e3 q2 }        s_meter_l = 0 ;8 I) c) u0 E, p5 E* V, M
        s_meter_r = 0 ;
; O, Z" H; q" ?) l" V' g: \        for (i=23;i>0;i--)
- `0 [  }1 ?6 l. F        {( h7 w- ^* @$ U% k4 p1 T, W
               
4 }* }+ h. i$ s: Q. [4 k                P_REF = meterCode[ i - 1 ];$ t% a: J' A+ G8 ~+ Z9 Z8 A3 V
                LR = 1;  //检测左声道; d; ?( `4 k2 E' r  }) w
                COMP = 1;) I  h/ x. }& L# [1 m
                if (COMP == 1 && l==0  )  
1 r/ A7 \' l& ]0 w" G$ e: w                {
1 I( f7 M: _; D+ K9 v! O  K                        l = 1;
- `: X3 \* [& G& o& |+ K4 l6 M6 [                        s_meter_l = i;
6 ~" L- e' l/ K+ x& t4 E                }
9 [, A9 U3 ]0 X; j+ [- S
& h' P  C; _8 E  c: j' |6 F$ }) J% H5 b% Q* |
- m7 k& P" c& d$ E# F. O* g/ w+ l
                LR = 0;  //检测右声道
# [2 {) @0 t- y6 x) s! U                COMP = 1;* Y; L9 b1 T# ]  Z( G/ r, ?! s% e; W
                if (COMP == 1 && r==0  )
( ~* @% m9 i( ]4 W) `                {
5 V7 |3 M% W7 N/ a2 H7 R9 H                        r = 1;0 Z( \" `1 X& u' j
                        s_meter_r = i;
# B0 N  [7 a' {* H                }% E% w) X3 C* u1 t/ G- M

( m& X: B! I' u4 j                if(l == 1 && r==1)  //如果左右声道都检测到了,那就没必要再检测了- D3 Q. m, C1 y4 M# X
                {
* `4 X& }! f; S- J9 I                        i=0;
0 b% `" e* w. E# y                }2 f5 f; P' |7 F) Z4 S" J
        }/ g- H) q6 Q0 l; x# I, a

: `3 M! g* ~% ^" ]' o}  M8 o3 F) U  @0 x9 F  h
# @3 K% T2 }3 a
: h, i+ u5 |" K# {& m. h
" w% K  k. j) H8 x4 ]0 }$ ?0 C( \8 t
发表于 2019-7-10 13:22:34 | 显示全部楼层
乡村猎手 发表于 2019-7-10 12:20$ l: t4 V) C7 I
这次看一下电平表是怎么实现的。  基本的原理就是单片机循环输出数字量(1到127 )到AD7524,这样不停输出 ...

2 K) G$ W8 c$ t/ n; H陈生是技术人才
发表于 2019-7-12 14:31:56 | 显示全部楼层
高端技术,坛里需要这样的人才
发表于 2019-7-12 15:47:43 | 显示全部楼层
人才
您需要登录后才可以回帖 登录 | 注册加入

本版积分规则

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

GMT, 2019-10-23 16:11 , Processed in 0.070051 second(s), 24 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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