收藏本站

开盘机音响技术网

 找回密码
 注册加入
查看: 3320|回复: 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,再使用转换座的方式 。
; q$ M$ F+ i5 K* l我们先看一下215关于mcu的功能简图。
4 K6 [" p. |) g; x( e1 P* d) V
& c7 G( H0 N7 p/ }  @
' O/ R! V( P; g+ p" R, c" } 215流程图.png
, a! v: O% u( t
! p- |4 N& Q/ }2 o" o
3 \3 X9 Z) Q9 K0 c0 R% n# Y+ J
% U# {" @* d( d- W8 g: _5 \
) d0 @$ h! v! [$ x. I, k  K1 a
 楼主| 发表于 2018-12-20 14:19:02 | 显示全部楼层
先stc8是因为它有硬件I2C功能,stc有32个IO口,mab8440有23个,所以够用了。之前那个手焊转换座花了不少时间,这次直接在本网上做pcb了,几十块钱就搞定了。下面是转换座的管脚对应表,以及电路图\pcb\实物图." q% X* x: ]8 n
LPL$UW`QFP_9$F}Z[3C0T.png 215转换座.png 转换座pcb.png 实物图.jpg
% ^" |* c, d* H5 S" @' x
$ z( g) x2 Q0 q. D. T
发表于 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测试。" k3 R- o2 T' O6 F3 J
先做认为最麻烦的屏幕显示的问题,215的屏是使用飞利浦的pcf8577T来驱动显示的,使用的i2c总线接口。
- X" z$ G2 k4 E- g( G- b实际可以将pcf8577当成是一个存储器,写入数据,它就会显示出来,不改变不用刷新。  
. E" W8 L* i* p5 g要写入数据当然要先搞清楚数据格式,下图就是8577的数据格式,差不多意思就是 设备地址+控制字节+数据 ,
/ n3 E& n4 F$ Z+ e6 i其实,要直接看文档并不那么容易测试成功,可以将逻辑分析仪接到一个正常机器的ic2,
2 @- P6 Y9 z+ V9 ^+ X这样,直接看正常机器的数据再结合文档就非常容易了,基本没费太多波折,demo就成功了,可以驱动显示了。' j1 C5 k- H+ G- O& Q+ ^
8577.png 显示的demo.jpg
/ F* H3 W9 t+ s; ]8 u; t# v0 R3 a7 d3 z" \

, W* T+ B, o. m' d4 E5 Y% j/ [) z
) \* [1 A9 z. X' f2 j4 z. }% k, Z5 p- O+ s0 i

! T# j  V6 _! E( X/ h( c
发表于 2019-3-21 16:27:29 | 显示全部楼层
可以称大师了
发表于 2019-3-25 08:37:02 | 显示全部楼层
 楼主| 发表于 2019-6-24 12:13:52 | 显示全部楼层
本帖最后由 乡村猎手 于 2019-6-24 04:17 编辑
# `9 ?0 O- a1 G; w( s7 k- J( T. H/ k, L- z
- i- L! M. _/ a) f9 t
因为懒很久没更新了,前两天有位玩家说需要这个,好吧,那再继续。
之前因为有几个没想清楚的问题:
1、 几个mcu使用I2C如何协同,互相通讯时主从模式怎么切换?
2、 磁带显示时间是怎么实现?
3、 偏磁测试如何实现 ?

+ [3 M- m% g* \; `% B( s" g
NRV[{%27Q~$LO719Z4XOEOW.png

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

4 u' S3 o2 E6 Z( d
, z  }' M2 G6 Z$ Y7 @5 s$ X' E/ H

/ ~- l% C! U( `1 J# H8 W( x: H

5 C1 X" D+ `# A0 j
 楼主| 发表于 2019-7-10 20:20:23 | 显示全部楼层
这次看一下电平表是怎么实现的。  基本的原理就是单片机循环输出数字量(1到127 )到AD7524,这样不停输出不同电压到ref, 然后用信号电压和这个ref比较,当信号电平高于ref时,那么这个时候单片机输出的数字量就代表这时信号电平高低了。 电平表一共是-30 到 +8 ,那具体每一格,给到ad7524应该是多少呢?取+8db位置数字量是127,其它再取相对值 , 当然,这里只需要要对值就行,绝对值机器上有个电位器可调的。 7 B6 }' P7 f, f; _' M6 V1 f
下面这个表列出了每个db值对应的数字量, 电路图和代码.6 ~( m4 u6 _) N. z1 k1 k) M
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

$ M4 {! ^& v* U( K! p
  T* M9 E# H% m/ s6 E9 |
$ V" o8 ~1 r8 d' e. R* q 1562760927.png
9 C; m7 z: o3 C2 O5 r& V% L: m0 m. H* z6 P" p* Q* v, m" s0 {

* `/ J( P" X  }- a, l% O9 t& t) o, w! b! [
, E' |6 J7 j- Q3 _9 ?& V/ D" k
void check_meterLeve()
6 ^' [  K  [' m  r' e" E3 [8 P- v{
6 A, q4 g8 g  Y; S- h5 _3 d        unsigned char i ;/ h7 e' j- o5 n7 O# }9 J
        bit l,r;
+ H) ?0 p% N3 q: G0 X5 x* h        s_meter_l = 0 ;) L$ I% {7 ~1 ]$ n6 P9 t  {9 s
        s_meter_r = 0 ;- Z' W, U7 \$ T
        for (i=23;i>0;i--)
" Y4 B* I/ f( C% b( S! c+ C        {, ^, l" u) \* e8 Z* f" j
               
2 ~! E- _, D& p& ~( y: b, C                P_REF = meterCode[ i - 1 ];! s9 r, o! o- K3 H$ r5 o
                LR = 1;  //检测左声道1 W# ^- ^, X5 ?6 Z+ e1 X5 T( Z
                COMP = 1;9 A  d; f/ {" R; a" l; n$ M3 L
                if (COMP == 1 && l==0  )  7 ]* S. _* n6 ]+ U! N
                {
4 P* s3 @: P5 j1 Y                        l = 1;
0 G" r! q" _4 m* c' |                        s_meter_l = i;
: ]2 ^0 }) x) I3 X0 C                }0 v1 `1 ~" b" U* ~- n  s
/ N& U1 |; O; O; q8 ~9 t8 q# s- l
; X( e+ P, {+ q& F
( f, A4 I. T  Y# @1 Y
                LR = 0;  //检测右声道9 {$ z4 g$ B! W! W$ g+ t9 i/ l
                COMP = 1;
6 z4 ]  u% M" s5 N$ w% X: }/ \+ y                if (COMP == 1 && r==0  ), c$ @0 C) C! Y* l" Z% q
                {  B% W' \# ~( G! u+ g4 x3 x7 \8 c
                        r = 1;5 _" J. R4 a' a
                        s_meter_r = i;# ^% X3 r  s6 h# C) E- h
                }
7 Z7 O, E. d! A( r# I! d
4 N7 m2 m+ p( i0 @5 {1 [                if(l == 1 && r==1)  //如果左右声道都检测到了,那就没必要再检测了
7 J1 z; M2 Q& Q# S) l                {
' I4 E3 H! \* j                        i=0;
+ e, e- r- W  B7 Y- T1 i; U! Z- k2 F                }
6 s! a9 @2 O$ F& z8 ~. I/ P        }
/ N- P2 ?5 E, g
% i' Q( i" ?: S8 e7 h( S: u+ b7 s}
8 i% e) L, J6 D1 ?, o
4 y( a' i9 V. h& u, w( s5 ]% Z2 j4 }8 O! b7 ^, u6 a7 m7 d* o9 w

! M; e0 ?" `+ i+ ?
发表于 2019-7-10 21:22:34 | 显示全部楼层
乡村猎手 发表于 2019-7-10 12:204 O' R7 v) R- l* V0 ]0 [( U# `: w
这次看一下电平表是怎么实现的。  基本的原理就是单片机循环输出数字量(1到127 )到AD7524,这样不停输出 ...
# Z0 `0 }  ^2 E# Y* l* J5 T9 t
陈生是技术人才
发表于 2019-7-12 22:31:56 | 显示全部楼层
高端技术,坛里需要这样的人才
发表于 2019-7-12 23:47:43 | 显示全部楼层
人才
您需要登录后才可以回帖 登录 | 注册加入

本版积分规则

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

GMT+8, 2025-7-7 00:32 , Processed in 0.067237 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2013 Comsenz Inc.

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