打印

求助mcp41010

[复制链接]
10269|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mbshan|  楼主 | 2011-9-7 16:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求助:有没有哪位朋友用过mcp41010,我最近做个活用到这个芯片,spi通讯高了整整2天,没有任何反应。就2个字节的控制应该算很简单,以前搞过比它复杂得多的芯片,也没费这么大劲,郁闷之极。哪位朋友用过的帮帮忙吧。我用的是贴片mcp41010I
沙发
yewuyi| | 2011-9-8 23:55 | 只看该作者
那只能说明你没弄清楚SPI,到官网下载例程去看吧

使用特权

评论回复
板凳
mbshan|  楼主 | 2011-9-10 12:40 | 只看该作者
哈哈,真的没人帮忙啊,没关系,我一定要弄出个结果,大奖大浪都都过来了,我就不信小小的数字电位器能把我拦住。到时候把结果贴出来。

使用特权

评论回复
地板
yewuyi| | 2011-9-11 23:06 | 只看该作者
哈哈,真的没人帮忙啊,没关系,我一定要弄出个结果,大奖大浪都都过来了,我就不信小小的数字电位器能把我拦住。到时候把结果贴出来。
mbshan 发表于 2011-9-10 12:40


甚好,鼓励!

使用特权

评论回复
5
ocon| | 2011-9-12 07:45 | 只看该作者
工具很重要,弄个示波器,或者淘个一两百元的逻辑分析仪,USB接口的。

使用特权

评论回复
6
lych9139| | 2011-9-13 16:27 | 只看该作者
发个我在用的。 mcp41010.rar (701 Bytes)

使用特权

评论回复
7
mbshan|  楼主 | 2011-9-15 20:19 | 只看该作者
6楼朋友的程序先收下,先谢谢了!暂时没时间试,到时会把结果贴出来。我自己单干,平时乱七八糟的事比较多,不能天天在网上看着,所以有时回帖会隔了好几天,顺便告诉前面的朋友,我07年买的20M数字示波表,
SPI通讯程序全部存储下来检查,时序上我看不出任何问题,以前也用过几款SPI通讯的芯片,都很顺利。所以有人说我没弄懂SPI我暂时还不能接受,搞开发也不下10年了,虽不敢说自己是多高的高手,(这里的真假高手很多)但也自信绝不是个菜鸟,所以被个小电位器挡住去路才会很郁闷。

使用特权

评论回复
8
mbshan|  楼主 | 2011-9-25 20:43 | 只看该作者
这几天有了点时间,从淘宝上买的mcp41010芯片收到了,焊到我原来的测试板上,工作一切正常!这次买的是直插的。靠,原来我的程序从来就没问题。我又把以前写的2个版本程序试了一下,也全好用。看来还是先买的芯片有问题。我前几天到曾怀疑芯片有问题,特意到柜台询问过,就是中发2楼卖PIC单片机的那个柜台。我问她,您这里卖的mcp41010芯片最近有没有客户反映有问题,回答:没有客户说有问题。我又问,您这里有直插的吗? 回答:没有。我也没有什么证据说他的芯片有问题,就回来了。现在看来,先买的3个贴片mcp41010或者是坏的,或者与直插的有太大差别,以至于按标准资料编写的程序完全不能工作。这事叫我碰上了,耽误了好多时间,真是不走运。把我的程序贴出来,(只通讯部分,51汇编写的)以后有谁用到这个芯片,直接调用就行,保证好用。如果不能用就是芯片的问题。


         mov   42h,#150   ;准备写入电位器的数据
         acall   spimio   ;写入电位器芯片


;-------电位器芯片SPI读写-----------------
;-------电位器芯片SPI读写-----------------
spimio:   clr   sclk
              mov   41h,#11h     ;向电位器0写入  42h的数据
          mov  r2,#16        ;16位数据
stario:   clr  pss
             mov   r6,#4
             djnz   r6,$
stark1:  clr  sclk
             nop
             nop
            nop
            lcall morl2b  ; output
            mov  pmi,c
            nop
            nop
            setb  sclk
            nop
            djnz  r2,stark1
            clr   sclk
            nop
            nop
            nop
            setb  pss
zcxfh:   ret

;---------------------------------
;发送缓冲区2Byte的高位移至C
morl2b:  clr  c        ;
         mov  a,42h    ;41h/42h
         rlc  a        ; H / L
         mov  42h,a
         mov  a,41h
         rlc  a
         mov  41h,a
         ret

使用特权

评论回复
9
ocon| | 2011-9-25 21:41 | 只看该作者
随着芯片翻新技术的提高,现在的假芯片越来越多了。

使用特权

评论回复
10
xaq79| | 2011-9-30 15:25 | 只看该作者
这个也有假?找正规代理商吧

使用特权

评论回复
11
yp1991| | 2013-7-30 15:51 | 只看该作者
有没有基于51单片机的mcp41010的程序啊,急需啊!!!!!

使用特权

评论回复
12
JTAO| | 2014-1-24 16:18 | 只看该作者
调好一个C的:
const u8 dcp_res[7] = {             //根据需求设定数据,或直接输入数据
        36,73,109,146,182,219,255,
};

void InitializeDcp(void){
        DCP_SCK_H();
        delayus(20);
        DCP_SI_L();
        delayus(20);
        DCP_CS_H();
        delayus(20);
}

void DcpWrite(u8 cmd, u8 dat){
        u8 i;
        DCP_CS_L();
        for(i = 0; i < 8; i ++){                        //传输命令字节
                DCP_SCK_L();
                delayus(20);
                if(cmd & 0x80){
                        DCP_SI_H();
                }
                else{
                        DCP_SI_L();
                }
                delayus(20);
                DCP_SCK_H();
                delayus(20);
                cmd <<= 1;
        }
        for(i = 0; i < 8; i ++){                        //传输数据字节
                DCP_SCK_L();
                delayus(20);
                if(dat & 0x80){
                        DCP_SI_H();
                }
                else{
                        DCP_SI_L();
                }
                delayus(20);
                DCP_SCK_H();
                delayus(20);
                dat <<= 1;
        }
        DCP_SI_H();
        DCP_CS_H();
}

void DcpClose(void){
        DcpWrite(0X21,0X00);
}

void DcpSet(u8 grd){
        DcpWrite(0x11,dcp_res[grd]);
}

使用特权

评论回复
13
lovehyojoo| | 2014-5-8 16:40 | 只看该作者
有没有会用stm8s单片机编MCP41010的程序

使用特权

评论回复
14
yewuyi| | 2014-5-9 10:46 | 只看该作者
现在看来,先买的3个贴片mcp41010或者是坏的,或者与直插的有太大差别,以至于按标准资料编写的程序完全不能工作。
-------------------------------------------------------------------------------------------------------------------------------

干了这么多年,还这么分析原因,我实在服了。

1、买3片MCP41010,竟然全坏了,虽然有这种可能,但估计也算是极品中的绝顶奇葩概率才能让你遇到。
2、如果还怀疑芯片直插和贴片的应用代码不一样,你可以先看看手册,如果手册没有区别,那出现这种区别的概率就如同小行星明天撞地球一样极致。
   并且你买的3片贴片都和直插有这样的区别,那只能说明芯片设计时就有区别,这估计等同于小行星天天撞一次地球的概率了。
3、如果说那种柜台作假芯片骗钱还有点可能,但那种柜台现在作假比例也很少了,特别是做长期生意的柜台。
4、综合而言:个人设计原因的可能90%,芯片作假的可能9.9999999999%,芯片厂家问题的可能:0.0000000001%

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
杭电凌云 + 1 赞一个!
15
823070663| | 2014-5-28 22:46 | 只看该作者
有木有人懂用mcp41010控制功放的音量等级(至少八级)????(用单片机控制)

使用特权

评论回复
16
褚帆子哥| | 2014-9-6 19:23 | 只看该作者
大哥有没有调好的mcp41010的C程序看看,小弟刚学

使用特权

评论回复
17
qewsd| | 2015-5-26 21:57 | 只看该作者
求问一下有没有89c52调控MCp41010并且在1602显示屏上显示音量大小的C语言程序 求一个能用或者求帮编一个我给报酬

使用特权

评论回复
18
Light_David| | 2015-5-28 00:05 | 只看该作者
qewsd 发表于 2015-5-26 21:57
求问一下有没有89c52调控MCp41010并且在1602显示屏上显示音量大小的C语言程序 求一个能用或者求帮编 ...

:D联系我咯

使用特权

评论回复
19
qewsd| | 2015-5-28 23:55 | 只看该作者
Light_David 发表于 2015-5-28 00:05
联系我咯

企鹅525696681求联系大神

使用特权

评论回复
20
罹颜维絮| | 2015-7-1 17:26 | 只看该作者
JTAO 发表于 2014-1-24 16:18
调好一个C的:
const u8 dcp_res[7] = {             //根据需求设定数据,或直接输入数据
        36,73,109,146, ...

您这程序主函数是啥?放到while(1)循环中的确可以调,但是每次都变,本来是写的固定的值,我只想写一次就够了,但是去掉while循环就不写了。求原因

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

35

帖子

0

粉丝