家电论坛

京东旗舰店
 注册  找回密码

QQ登录

只需一步,快速开始

手机号码,快捷登录

查看: 19558|回复: 50

REVOX B710 MCU芯片MK3870替换方案(连载)

  [复制链接]

165

主题

875

帖子

20

威望

高级会员

Rank: 4Rank: 4Rank: 4Rank: 4

交易诚信度
15
注册时间
2008-3-18
发表于 2018-10-9 12:07 | 显示全部楼层 |阅读模式

马上注册 家电论坛,众多有奖活动等你来参与!

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

x
欢迎转载,但请注明出处.
前不久在给一哥们在修一台B215时,发现三个mab8440都坏了,就想着能不能找到替代的方案,找到方案只是一方面,对未知的东西学习的过程也是一种享受。
虽然是个码农,但之前没有接触过单片机编程。 所以决定从简单的开始,先找B710 MCU替换的方案。
710的MCU型号是MK3870/20 , 是70年代仙童和mostek一起开发的,分别命名为F8和mk3870, 还有外置ERROM的 mk38p70,
后来意法收购了mostek ,后期的就都是意法生产的,还有了管脚兼容的 MK41H80/MK97501 。
但是问题来了:mk3870是定制生产的,无法再次写入程序,mk38p70早已停产了,而且没有找到详细的资料。
所以只能用其它芯片代替,看管脚3870是32个I/O口,因为710应用时的逻辑也算简单,所以什么位数、速度、RAM大小不用考虑,
现在生产的芯片肯定是够用的,决定暂时使用很常见51系列单片机来代替,学习什么的也简单。
只不过51单片机管脚和mk3870是不兼容的,可以做一个转换座来解决:转换座主要是保证电源、地、复位这些对应(晶振可以不用,用内置的振荡器),I/O线对I/O线就行,
因为不是直接用原来的程序,所以I/O口位数不用对应,比如P1.0不一定要对应P1.0 ,可以是任意I/O线(如果P0口做输出要加上拉电阻),所以转换座跳线会简单一点。
(待续)



51管脚.jpg 下载.jpg

评分

参与人数 1威望 +1 金钱 +10 收起 理由
棋盘子龙睛 + 1 + 10 很给力!

查看全部评分

回复

使用道具 举报

1

主题

37

帖子

0

威望

新手上路

Rank: 1

交易诚信度
0
注册时间
2016-12-31
发表于 2018-10-9 14:55 | 显示全部楼层
回复

使用道具 举报

0

主题

17

帖子

0

威望

新手上路

Rank: 1

交易诚信度
0
注册时间
2018-9-18
发表于 2018-10-9 15:05 | 显示全部楼层
回复

使用道具 举报

61

主题

3689

帖子

50

威望

特级会员

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

交易诚信度
0
注册时间
2018-4-9
发表于 2018-10-9 15:16 | 显示全部楼层
非常强大的帖子,搬板凳坐等讲解
回复 支持 反对

使用道具 举报

48

主题

1795

帖子

9

威望

版主

Rank: 10

交易诚信度
0
注册时间
2006-1-9
发表于 2018-10-9 21:33 | 显示全部楼层
支持资料分享!
回复 支持 反对

使用道具 举报

165

主题

875

帖子

20

威望

高级会员

Rank: 4Rank: 4Rank: 4Rank: 4

交易诚信度
15
注册时间
2008-3-18
 楼主| 发表于 2018-10-9 23:41 | 显示全部楼层
因为接下来的逻辑分析和编程都会和转换座有关系 ,所以先画一下转换座的跳线。设想是两个插座水平错开一点,两种方案走线,一种是大部分水平连接,少数几根长的飞线。另一种不追求水平走线,这样每根线都很短.而且飞线间没有交叉,最终用第二种。

但是,买的洞洞板到手时才发现,单面板这样水平错开不太好焊接,所以先垂直错开,这样飞线会很乱,但先实现功能再说,以后可以弄成上下两层的,这样就不会显得乱了。


737681544325884151.jpg 541933200785425565.jpg 122493189252407129.jpg
回复 支持 反对

使用道具 举报

165

主题

875

帖子

20

威望

高级会员

Rank: 4Rank: 4Rank: 4Rank: 4

交易诚信度
15
注册时间
2008-3-18
 楼主| 发表于 2018-10-9 23:42 | 显示全部楼层
功能上看,MCU主要实现几个方面的
1.响应操作,控制继电器,卷带电机等。
2.接收转动的计数,两主轴的转带是否同步,磁带结束信号等。
3.计数器输出
4.定时开机的相关功能。
那么先挑简单的,先考虑实现第1个功能,先做一个各状态下的输出表。
1539099076(1).png




回复 支持 反对

使用道具 举报

5

主题

275

帖子

0

威望

初级会员

Rank: 2Rank: 2

交易诚信度
0
注册时间
2017-2-28
发表于 2018-10-9 23:44 | 显示全部楼层
强帖留名
回复 支持 反对

使用道具 举报

15

主题

5345

帖子

57

威望

特级会员

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

交易诚信度
0
注册时间
2011-7-18
发表于 2018-10-10 12:31 来自家电论坛网手机触屏版 | 显示全部楼层
卧槽,这等难度活你也会搞?请收下膝盖

点评

乔老爷,好久不见。  发表于 2018-10-10 13:38
回复 支持 反对

使用道具 举报

22

主题

2230

帖子

12

威望

中级会员

Rank: 3Rank: 3Rank: 3

交易诚信度
0
注册时间
2017-2-20
发表于 2018-10-10 21:23 来自家电论坛网手机触屏版 | 显示全部楼层
牛逼坏了!
回复 支持 反对

使用道具 举报

165

主题

875

帖子

20

威望

高级会员

Rank: 4Rank: 4Rank: 4Rank: 4

交易诚信度
15
注册时间
2008-3-18
 楼主| 发表于 2018-10-10 22:23 | 显示全部楼层
前面输出的状态有了,现在来看一下按钮该如何处理。先看电路图和主要器件CD1542的真值表.CD1542的功能其实就是根据ABC脚的不同值Z输出x0...x7其中一个脚的电位。
对应到电路就就是单片机不停的输出不同的值到ABC(图中的IC6的 11,12,13),
然后检测输出Z(IC6第14脚),当检测到是低电位了,这时对应刚才输出的地址就知道是按了哪个键了。



按键示意图.png
---------------------------------------

------------------------------------ CD4512的真值表.png
回复 支持 反对

使用道具 举报

165

主题

875

帖子

20

威望

高级会员

Rank: 4Rank: 4Rank: 4Rank: 4

交易诚信度
15
注册时间
2008-3-18
 楼主| 发表于 2018-10-10 22:24 | 显示全部楼层
输入和输出的逻辑弄清楚了,写代码就是分分钟的事了。下面是这些功能的C源码。实现的功能就是快进、进退、停止、播放、录音的功能。代码当然有很多种写法,status变量暂时还没用到,可以用在进入某个一功能时判断用,如果机器已经是某个状态再按哪个按钮以不用响应,不过实际试的时候不判断好象也没什么问题。是不是其实很简单呢?
#include <reg51.h>

sbit key1 = P0^7;

char status=0; //1:play 0:stop  2:forw 3:rew 4:rec  9:off

char recflag = 0 ;

void Play(void)
{
        P1=0X48;
        P2=0XF1;
        P3=0X01;
        status=1;
}
void Rec(void)
{
        P1=0X48;
        P2=0XF5;
        P3=0X01;
        status=1;
}


void Stop(void)
{
        P1=0X8E;
        P2=0XF3;
        P3=0X48;
        status=0;        
}



void Forw(void)
{
        P1=0X7C;
        P2=0XF3;
        P3=0X20;
        status=0;        
}

void Rew(void)
{
        P1=0X0C;
        P2=0XF3;
        P3=0X27;
        status=0;        
}



void main(void)
{

        unsigned char i;
         unsigned int k;
//        unsigned char j;
        P1=0;
        Stop();
        key1=1;
        while(1)
        {

                recflag = 0 ;
                for (i=0;i<8;i++)
                {
                         P0= i<<4 ;
                        for (k=0;k<1000;k++)  
                        {
                         //        for (j=0;j<10;j++);
                        }
               
                        key1=1;


                        if (i==0&&key1==0)//play
                        {
                                recflag=1;
                        }

                        if (i==1&&key1==0) //stop
                        {
                                Stop();
                        }

                        if (i==2&&key1==0)//play
                        {
                                if (recflag==1)
                                {
                                        Rec();
                                }
                                else
                                {
                                        Play();
                                }
                                
                        }

                        if (i==3&&key1==0)//Forw
                        {
                                Forw();
                        }

                        if (i==4&&key1==0)//Rew
                        {
                                Rew();
                        }
                }
        }

}
回复 支持 反对

使用道具 举报

165

主题

875

帖子

20

威望

高级会员

Rank: 4Rank: 4Rank: 4Rank: 4

交易诚信度
15
注册时间
2008-3-18
 楼主| 发表于 2018-10-10 22:39 | 显示全部楼层
代码写好了,可以先使用proteus仿真一下,检查一下代码是否有问题。仿真的时候可以非常直观的看到各脚的电压,比装在机器上检查方便太多了。大家有兴趣的话可以对照我上面的那个表格,看这个图里的输出和表格里的状态是否是一致的(播放状态,单片机32,33,34,35的几个输入仿真的时候是不停跳动的,截图没法体现,其它的地方地固定的)。


仿真图.png

回复 支持 反对

使用道具 举报

61

主题

3689

帖子

50

威望

特级会员

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

交易诚信度
0
注册时间
2018-4-9
发表于 2018-10-11 09:45 | 显示全部楼层
楼主代客写芯片么?手头有台CPU故障的机器

点评

对其它的机器不太熟。  发表于 2018-10-11 13:35
回复 支持 反对

使用道具 举报

4

主题

170

帖子

0

威望

初级会员

Rank: 2Rank: 2

交易诚信度
2
注册时间
2009-10-19
发表于 2018-10-11 14:10 来自家电论坛网手机触屏版 | 显示全部楼层
真正的高人呀,佩服
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|客服:010-60152166 邮箱:zx@jd-bbs.com|广告合作|账号注销|家电联盟网

京公网安备 11010602010207号 ( 京ICP证041102号,京ICP备09075138号-9 )

GMT+8, 2024-4-26 12:02 , Processed in 0.150142 second(s), 27 queries , Gzip On.

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