收藏本站

开盘机音响技术网

 找回密码
 注册加入
查看: 4007|回复: 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,再使用转换座的方式 。, `) z9 N8 E# ~1 B# V
我们先看一下215关于mcu的功能简图。
5 v/ C% ~5 A0 i- ^  ?
6 t# K+ D5 B  }) k1 u% {0 J$ N: d/ c, ^$ t# g4 g
215流程图.png * j) K3 ~; c* v  w! n- F

6 \, Z. v6 V1 P3 @/ X* G8 P
( b' T$ N  ~  F1 K( d. G+ B8 P9 F4 V6 e- z6 d0 f) U
& ]0 N- r9 n9 L( ]1 V- T3 n
 楼主| 发表于 2018-12-20 14:19:02 | 显示全部楼层
先stc8是因为它有硬件I2C功能,stc有32个IO口,mab8440有23个,所以够用了。之前那个手焊转换座花了不少时间,这次直接在本网上做pcb了,几十块钱就搞定了。下面是转换座的管脚对应表,以及电路图\pcb\实物图.: w1 h" u" G6 y6 m
LPL$UW`QFP_9$F}Z[3C0T.png 215转换座.png 转换座pcb.png 实物图.jpg
$ n6 X* r& t5 J* V* y
8 G2 a$ x  K# t  Y
发表于 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测试。5 ?( Y$ y( H/ H; \9 L* d
先做认为最麻烦的屏幕显示的问题,215的屏是使用飞利浦的pcf8577T来驱动显示的,使用的i2c总线接口。
1 m* Q0 Q; @  Y实际可以将pcf8577当成是一个存储器,写入数据,它就会显示出来,不改变不用刷新。  2 `3 D2 q  y7 A' o$ y0 ]* {( u
要写入数据当然要先搞清楚数据格式,下图就是8577的数据格式,差不多意思就是 设备地址+控制字节+数据 ,
; i/ w1 W. g$ Y& Q! L$ o  b. ?$ k其实,要直接看文档并不那么容易测试成功,可以将逻辑分析仪接到一个正常机器的ic2,& Y' H; i5 q) M" @  x( X
这样,直接看正常机器的数据再结合文档就非常容易了,基本没费太多波折,demo就成功了,可以驱动显示了。
$ {0 s3 Z! X* f) l( O% h 8577.png 显示的demo.jpg ) h: E, Y+ k, M, I. Y/ I3 @9 Q0 g
: e" K6 ^; ]2 L" R
1 d4 F2 h4 `7 t$ ~, n, d2 `

1 S9 i7 ^9 r. I9 k
. r2 M: \$ N: v/ u  v9 Q- u+ ~4 \9 a$ m/ T# b+ n% r+ w
发表于 2019-3-21 16:27:29 | 显示全部楼层
可以称大师了
发表于 2019-3-25 08:37:02 | 显示全部楼层
 楼主| 发表于 2019-6-24 12:13:52 | 显示全部楼层
本帖最后由 乡村猎手 于 2019-6-24 04:17 编辑
8 B6 l- L. u" \& b7 Z. s* g6 U2 x# n, e% c: g, f. x0 H9 @% m
因为懒很久没更新了,前两天有位玩家说需要这个,好吧,那再继续。
之前因为有几个没想清楚的问题:
1、 几个mcu使用I2C如何协同,互相通讯时主从模式怎么切换?
2、 磁带显示时间是怎么实现?
3、 偏磁测试如何实现 ?
, \# N! @4 m8 n  f2 a7 t% F! q
NRV[{%27Q~$LO719Z4XOEOW.png
; c# f+ ]8 ^1 |0 |+ |9 e5 Y1 e8 b

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

/ ?4 c/ I& N7 G- o$ g. m7 q% Z) J$ q4 t
第二个问题,之前没想明白,其实也简单,它这个时间一是倒带到头的时候,显示00:00,另一个是在中间位置播放几秒后会显示一个时间(磁带总时间之前需要手动选择),如果在中间快进退是不能显示时间的。实际上左右转轴的转速比就是两边磁带长度的反比(当然要考虑磁带转完后空盘还有大小),下面是公式,但是不是正确,还得装机后再验证。
                当时显示时间  =  磁带总时长 *(右边转速空盘转速) / [(左边转速空盘转速) + (右边转速空盘转速)]
      
第三个问题,下次再写了,欢迎有兴趣的开友提供思路。

2 |: i9 a4 O, i% W
/ V8 n" e8 J. U. @
9 p! \0 T! l* x8 m
4 p3 O& E7 u' w% e9 ?
 楼主| 发表于 2019-7-10 20:20:23 | 显示全部楼层
这次看一下电平表是怎么实现的。  基本的原理就是单片机循环输出数字量(1到127 )到AD7524,这样不停输出不同电压到ref, 然后用信号电压和这个ref比较,当信号电平高于ref时,那么这个时候单片机输出的数字量就代表这时信号电平高低了。 电平表一共是-30 到 +8 ,那具体每一格,给到ad7524应该是多少呢?取+8db位置数字量是127,其它再取相对值 , 当然,这里只需要要对值就行,绝对值机器上有个电位器可调的。
9 H/ Q7 l& h2 K6 z 下面这个表列出了每个db值对应的数字量, 电路图和代码.8 k1 @0 g: o* @
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

+ D, T. H: B" e+ m: w) W- h. z% |
2 F0 h: c9 @/ J# @; u3 q
% b3 @% l' ^  r3 U% J0 } 1562760927.png
5 M) E$ B+ N! s2 q* \; F' R( D7 v  J- S

/ G2 t. N* z, ^3 J6 M( l. G! N0 g9 \- j# T2 m" B
6 s" t9 ]+ n0 Z  Y1 \1 y
void check_meterLeve()
  q! X( i/ [! m( l{
6 N+ z8 K, G7 M0 Z$ E        unsigned char i ;
8 u% B3 R* f, F0 W4 a6 E# L        bit l,r; , N7 }; ?! X# B0 g
        s_meter_l = 0 ;
  J: g! h9 f$ Z9 P) o- D7 B+ u" O        s_meter_r = 0 ;
* A* [" ~& C" t        for (i=23;i>0;i--)  g0 U; {5 O, e" n; A
        {" m& y, b/ \1 Y6 K
               
* L3 J7 C) {& X+ ~# K( z2 B                P_REF = meterCode[ i - 1 ];- K4 U, o0 x1 V% G. q& l% g: }$ j. B
                LR = 1;  //检测左声道) j3 @) @. d3 r8 V
                COMP = 1;
4 x7 Z8 N( C& y4 Q+ w- M2 E                if (COMP == 1 && l==0  )  8 k- c% {- ~+ F& G' s# V
                {
) C2 r! Y8 |" b5 p6 x                        l = 1;4 S1 Z7 m9 s! G6 q9 Q
                        s_meter_l = i;, ?4 h' N# _# j: v7 {
                }8 i/ g6 R, b1 o# o
5 K  [1 O2 C/ A5 H

# t: E9 }( B8 R, f4 D, Z: P0 \) z0 C4 K
                LR = 0;  //检测右声道
; @  E2 c8 q5 O- C1 q) S                COMP = 1;1 j  ^' ^( y/ \& ?1 M- x: e
                if (COMP == 1 && r==0  )
6 O8 R. \/ S3 B2 G/ u0 d1 A7 e                {
% y6 ^2 f/ c" F6 K5 t3 d                        r = 1;- p; s1 O5 F' J! d3 p0 ]( k
                        s_meter_r = i;; ~4 x! g; D, G1 R$ l
                }
) s$ [% P6 ]5 U( y1 E
' S$ x! V$ R  }" P                if(l == 1 && r==1)  //如果左右声道都检测到了,那就没必要再检测了7 N- [: P7 I- j8 z1 ^1 K0 j! N: ^
                {" Z5 o/ @3 f) \# O  |
                        i=0;
8 b. R  `5 e! C( T# i                }
6 A* a) ^) N! Q8 S8 u/ o) C5 c+ f        }* k1 O& G& {- X  Q3 x! k$ i

* T4 j2 q6 Y& r& z}2 J, F4 F- ^0 K
: `) Y2 a  Q/ p, J' J6 ]) Y
3 Z8 i1 Y8 {6 c, }3 f, Y# r# b$ ?
( S* a4 y) _1 L9 |. Z. E
发表于 2019-7-10 21:22:34 | 显示全部楼层
乡村猎手 发表于 2019-7-10 12:20/ z8 W" I1 V; H2 K
这次看一下电平表是怎么实现的。  基本的原理就是单片机循环输出数字量(1到127 )到AD7524,这样不停输出 ...
0 S* h2 E2 Y/ n4 \7 g+ i
陈生是技术人才
发表于 2019-7-12 22:31:56 | 显示全部楼层
高端技术,坛里需要这样的人才
发表于 2019-7-12 23:47:43 | 显示全部楼层
人才
您需要登录后才可以回帖 登录 | 注册加入

本版积分规则

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

GMT+8, 2025-12-30 05:53 , Processed in 0.070415 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2013 Comsenz Inc.

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