搜索
bottom↓
回复: 131
打印 上一主题 下一主题

用STM32103R8T6做的控制器,外壳是高仿西门子双通讯口

  [复制链接]

出0入0汤圆

跳转到指定楼层
1
发表于 2009-9-24 18:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大致做了2个月,pcb这是第二版。现在硬件基本已经没什么问题了。手工焊接,没有清洗,有点脏。 开关电源已经重新定做了,改为三组隔离电源,4路输出。所以板子有必要改第三版了。可以省掉通讯隔离用的DC/DC。

   
(原文件名:nEO_IMG_DSC1.jpg)


(原文件名:nEO_IMG_DSC2.jpg)


(原文件名:nEO_IMG_DSC3.jpg)


(原文件名:nEO_IMG_DSC5.jpg)


(原文件名:nEO_IMG_DSC6.jpg)


(原文件名:nEO_IMG_DSC7.jpg)


(原文件名:nEO_IMG_DSC03428.jpg)


(原文件名:nEO_IMG_DSC03425.jpg)


(原文件名:nEO_IMG_DSC03429.jpg)


(原文件名:nEO_IMG_DSC03430.jpg)

(原文件名:nEO_IMG_DSC03459.jpg)


(原文件名:nEO_IMG_DSC03460.jpg)


(原文件名:nEO_IMG_DSC03461.jpg)


(原文件名:nEO_IMG_DSC03462.jpg)


(原文件名:nEO_IMG_DSC03463.jpg)


(原文件名:nEO_IMG_DSC03464.jpg)


(原文件名:nEO_IMG_DSC03465.jpg)


(原文件名:nEO_IMG_DSC03466.jpg)


(原文件名:nEO_IMG_DSC03468.jpg)


(原文件名:nEO_IMG_DSC03471.jpg)


(原文件名:nEO_IMG_DSC03473.jpg)


(原文件名:nEO_IMG_DSC03476.jpg)

(原文件名:nEO_IMG_DSC03420.jpg)


(原文件名:nEO_IMG_DSC03453.jpg)


(原文件名:nEO_IMG_DSC03454.jpg)


(原文件名:nEO_IMG_DSC03457.jpg)


(原文件名:nEO_IMG_DSC03458.jpg)

(原文件名:nEO_IMG_DSC03477.jpg)


(原文件名:nEO_IMG_DSC03478.jpg)


(原文件名:nEO_IMG_DSC03480.jpg)


(原文件名:nEO_IMG_DSC03482.jpg)

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

2
发表于 2009-9-24 18:55:33 | 只看该作者
沙发

出0入0汤圆

3
发表于 2009-9-24 19:42:03 | 只看该作者
CPU224XP 才有两个通讯口

出0入0汤圆

4
发表于 2009-9-24 20:40:01 | 只看该作者
做得不错,很漂亮

出0入0汤圆

5
 楼主| 发表于 2009-9-24 20:56:40 | 只看该作者
硬件上,运行停止开关没有买到。 问到的进口的,超贵,而且需要几周订货。
壳子上印的西门子字符,正式使用时,会擦掉,打自己的牌子和型号。

3个通讯口,1个232,两个485,现在可以任意配置为modbus 主机或从机,ascii或rtu
modbus移植自freemodbus, 但增加了主机栈,实现了协议多实例化,改动非常多,只是使用了freemodbus的一下编程思路。
本来准备购买freemodbus的商业版本,结果人家主机栈和从机栈算两套协议,6000以上。所以,一狠心自己写了。
通讯协议预留了ppi和三菱通讯协议接口,为了监控和下载,很快会先把三菱通讯协议先实现了。

设置了实时时钟,可充电电池供电,时间戳原理的程序已经调通。

扩展口留了隔离的can接口和非隔离的spi,can只通过了简单测试程序。

板上设置了一个电压检测芯片ht7044检测系统掉电,但是因为用系统自带的PVD检测掉电+大电容瞬间保存数据已经很稳定,所以暂时不用。

数据掉电保存采用crc32校验+备份三份来保证数据可靠。

核心的plc指令使用嵌入式汇编子程序实现,嵌套层数无限制,栈指令也实现了,没有级数限制。

已经移植了版主简易plc的程序,可以暂时用pwm转C,再编译来编程,但是确实很不方便。

优化了沿指令,定时器不占用定时间中断,在主循环里计时,不需要设置映像备份。

两路电位器输入,程序已经调好。

14个输入点,双向光耦隔离,10个输出点,继电器输出,输出部分留了晶体管电路,可选安装为晶体管输出。

输入输出端子安排全兼容西门子。

软件上需要做的主要还剩三菱通讯协议和程序下载上传,指令编译或解释。计划采用三菱指令编码格式,以便实现程序上传,指令在下位机编译或解释执行,实现方法已经构思好了。

有意找完善稳定的上位机软件程序作者合作,做自己独立产权的通用控制器

QQ:33824483

出0入0汤圆

6
发表于 2009-9-24 21:32:27 | 只看该作者
哈哈,很高兴又有一位PLC业者出现了。
但怎么都喜欢用西门子外壳呢?

出0入0汤圆

7
发表于 2009-9-24 21:52:21 | 只看该作者
感觉西门子PLC的端子盖设计的很差劲,非常容易就掰坏了,我都掰坏好几个了。

出0入0汤圆

8
 楼主| 发表于 2009-9-24 21:53:31 | 只看该作者
foshan_lcy 允: 留个联系方式,对你的机器视觉感兴趣,聊下吧。
用西门子壳子,是因为可是前几年买到的,价格不高。
用什么壳子都行,只要价格不高,做工好。
现在还没赚到钱,舍不得自己开模啊。

出0入0汤圆

9
发表于 2009-9-24 22:58:53 | 只看该作者
对STM32还不是很了解,加了梯形图解释程序后,不知道楼主的RAM够不够用.程序最多能达到几步.

出0入0汤圆

10
发表于 2009-9-24 23:30:37 | 只看该作者
外壳哪买的?

出0入0汤圆

11
发表于 2009-9-25 08:46:32 | 只看该作者
大容量SMD电解寿命不长,这是我的维修经验,三菱也是将大容量电解按排在电源板上,掉电信号也是在电源板取出,避开了大容量SMD电解的问题.可参考我贴出的三菱原理图.

一般超小型的电解使用效果并不好,无论是SMD或插孔的,而且价高.

出0入0汤圆

12
发表于 2009-9-25 08:54:23 | 只看该作者
1、电解最好用插件的,焊接质量才能有保证,贴片电解如果焊接质量不过关的话,震动太多就会掉电容了。

2、楼主用的那种排母不可靠。最好使用那种 蜈蚣脚 的可穿透式排母,接触才能可靠。

出0入0汤圆

13
发表于 2009-9-25 08:56:54 | 只看该作者
3、敷铜间距有点小了,只有0.3mm吧,要考虑下PCB板厂的加工质量,我们想当然的事情,结果并不是这么回事。偶是吃了PCB板厂的苦了。过后所有的板子的敷铜间距都调到0.4mm甚至0.6mm以上了。

出0入0汤圆

14
发表于 2009-9-25 10:42:49 | 只看该作者
这个外壳在哪里买的,挺不错的。

出0入0汤圆

15
 楼主| 发表于 2009-9-25 19:05:42 | 只看该作者
hzxiaobao: 梯形图是在上位机被转化为指令表,在下位机可以以特定的编码格式存放,比如按三菱通讯下载时的指令格式存放,这样的好处是可以上载程序。缺点是如果指令是解释执行,解释需要时间,执行速度稍慢点。如果指令是编译执行,速度快了点,但编译生成指令代码又要占一份空间。

程序是放在Flash中的,所以最多的程序步取决于每步占用的字节数和除系统程序占用外mcu剩余Flash空间,从现在看Flash占用在30-40K左右,所以如果选RB系列,128K Flash,最多的程序步数应该可以做不少的。

出0入0汤圆

16
 楼主| 发表于 2009-9-25 19:19:54 | 只看该作者
bkkman 和benladn911 AVR猎手 提到的SMT电容的寿命和容易掉的问题,以前确实没有考虑,改为插件是个好的建议,以前过分追求贴片化了。

benladn911 AVR猎手 “2、楼主用的那种排母不可靠” 指哪个排母? 上下板连接的那个单排的?我考虑电路板上的位置不可能用双排的。

敷铜间距有点小了,都是按最小间距10mil做的,现在的这家电路板长不从,铜箔很厚,线路很好,外形铣的很准确。

出0入0汤圆

17
发表于 2009-9-25 21:38:42 | 只看该作者
foshan_lcy 允: 留个联系方式,对你的机器视觉感兴趣,聊下吧。
----------------------------------------------------------
to 21ele :
          Email:liangchongyun@21cn.com
          tel:  13630148724 上班时间公司的办公室会屏蔽电话信号,
                            所以上班时间信号不稳,晚上回家就没有问题了。

出0入0汤圆

18
发表于 2009-9-25 21:48:00 | 只看该作者
简单介绍一下我的机器视觉啦!
这个是我和我弟弟业余合作做的项目,
哈哈,不是正职,用来抄下更,所以价格比较合算。
通常会连带做点运动控制,主要是做下测量,检测,判别之类的问题。
哈哈就简单介绍那么多啦,有什么好主意可以联系下在下。
Email:liangchongyun@21cn.com

出0入10汤圆

19
发表于 2009-9-25 22:38:50 | 只看该作者
那种接线端子哪里有卖?

出0入0汤圆

20
 楼主| 发表于 2009-9-26 09:33:43 | 只看该作者
壳子是很早买的,备了一些,现在都不知道能不能买到。
接线端子是托朋友买的,具体地址我不太清楚,价格1元出头一线。

出0入0汤圆

21
发表于 2009-9-26 10:47:59 | 只看该作者
注意从电源板取出两个掉电信号,对PLC的数据安全,可靠性很重要.


(原文件名:FX2N32MT-PW.jpg)

点击此处下载 ourdev_485662.PDF(文件大小:29K) (原文件名:FX2N-32MT-PW.PDF)

其他可参考
FX2N-4AD,-2DA,-16EX,-32MTPW,-32MTIO原理图
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=1038544&bbs_page_no=1&bbs_id=3007

出0入0汤圆

22
 楼主| 发表于 2009-9-27 08:15:43 | 只看该作者
从电源板取出两个掉电信号,这个当然很好的。 但是我是后看到那个帖子的,另外,三层板的结构,把两个掉电信号引上去,稍微有点麻烦。我手里没有三菱plc,老是看着西门子做参考,西门子的掉电保护是用法拉电容做掉电保护的。

掉电保存的数据我设置了三块,都做校验,每次上电是读入掉电数据区,然后擦除掉电数据区,如果上次掉电时数据没有完整或有错误,则这次上电时就会加载掉电保存备份区的数据,如果备份区的数据也错误,那就回复出厂设定值。掉电时,PVD检测到Vcc电压到2.9V是,在PVD中断中,把新的数据写入掉电保存数据区中。

void EE_Read(void)
{
        static vu32 a,b,c;

        a = EE_Addr;
        b = EE_Addr_BAK;
        c = EE_Addr_DEF;

        //-----------------------------------------------------//
        // 断电保存数据CRC32 校验
          //-----------------------------------------------------//
        if( FlashCRC32CHK(EE_Addr, EE_U16_Size) )
        {

                //-----------------------------------------------------//       
                // 读取断电保存数据
                FlashRead(EE_Addr, EE_U16_Size);
               
                //-----------------------------------------------------//       
                // 更新断电保存数据备份区
                //-----------------------------------------------------//
                FlashErasePage( EE_Addr_BAK, EE_U16_Size);
                FlashProgram( EE_Addr_BAK, EE_U16_Size );

        }
        else
        {
                //-----------------------------------------------------//
                // 断电保存数据备份CRC32 校验
                //-----------------------------------------------------//
                if( FlashCRC32CHK(EE_Addr_BAK, EE_U16_Size) )
                {
                        //-----------------------------------------------------//       
                        // 读取断电保存数据备份
                        //-----------------------------------------------------//
                        FlashRead(EE_Addr_BAK, EE_U16_Size);

                }
                else
                {
                        //-----------------------------------------------------//       
                        // 读取断电保存数据默认值
                        //-----------------------------------------------------//
                        FlashRead(EE_Addr_DEF, EE_U16_Size);

                        //-----------------------------------------------------//       
                        // 更新断电保存数据备份区
                        //-----------------------------------------------------//
                        FlashErasePage( EE_Addr_BAK, EE_U16_Size);
                        FlashProgram( EE_Addr_BAK, EE_U16_Size );
                }
        }

        //-----------------------------------------------------//       
        // 擦除断电保存数据区
        //-----------------------------------------------------//
        FlashErasePage( EE_Addr, EE_U16_Size);
       
}

出0入0汤圆

23
发表于 2009-9-27 09:05:36 | 只看该作者
请教:
1.这个掉电保存区域用于保存一些什么数据呢?是不是一些M寄存器的值?
2.你这个是把这个掉电保存到片内的FLASH上面吧?那写入用IAP写入了?平常正常运行时,是否需要定时保存掉电保存区域呢?这个保存的频率一般是多大呢?

谢谢指点!

出0入0汤圆

24
 楼主| 发表于 2009-9-27 09:48:17 | 只看该作者
掉电保存的数据,对于plc来说,就是部分D单元和M单元。

掉电后,再上电,这些单元不被清零,而是读入上次掉电时刻的值。

写入的Flash,就是程序存储器。所以,如果写入时如果发生混乱,有可能损坏主程序。有一定的危险性。

正常运行时数据时不需要保存。 掉电保存数据,就是仅仅在掉电时的瞬间保存一下而已。上电时读入。正常运行时更行改变。

Flash写入次数是有限的,有的场合需要很短时间就保存一下数据,比如累计长度,累计时间,这种情况下即使是EEPROM的写入寿命也可能是不够的。所以仅在掉电时保存一下数据,效果因该是最好的。

出0入0汤圆

25
发表于 2009-9-28 06:54:08 | 只看该作者
花了不少时间,PCB做了2次,如要做好,PCB还要改5次,到明年了!

出0入0汤圆

26
发表于 2009-10-19 11:05:01 | 只看该作者
做的不错!留个记号!

出0入0汤圆

27
发表于 2009-10-24 09:54:03 | 只看该作者
电源有没有变压器的绕线方法参数,或者是哪里有现成的卖?

出0入0汤圆

28
发表于 2009-10-24 10:10:53 | 只看该作者
不错!

出0入0汤圆

29
 楼主| 发表于 2009-10-25 18:23:27 | 只看该作者
上面的电源是从力源定做的,实际使用效果不太好,辅路降压芯片是用mc43063做的,发热很大。主24只能输出200-300毫安,功率不足。变压器没有资料,当时是计划委托他们做的。

出0入0汤圆

30
 楼主| 发表于 2009-10-25 18:33:22 | 只看该作者
现在已经重新请人设计了电源板,4路输出,3路隔离。

主24V 400ma(PLC对外供电) ,  辅24V 200ma(2596稳压,给继电器供电) 和共地的一个5V 200ma(2595稳压,给mcu电路供电), 辅5v 100ma(7805稳压,给隔离通讯电路供电 )。  

设计为全直插单面板,bom成本<30元。

样板做了20套,全部满载测试过了,很稳定,发热很小,最热的是24的2596,没加散热片,大致80-90度。

板子稍微修改了一下,重新做了200块,已近快做好了。 变压器定只做了100个。

这个板子有全套图纸,原理图,pcb,变压器绕制图。

出0入0汤圆

31
 楼主| 发表于 2009-10-25 18:36:17 | 只看该作者
新电源板,功率很足,每路都有余量,我很满意。 主24我带了两个触摸屏测试,轻松带起来了,连续工作几天,没什么问题。

出0入0汤圆

32
 楼主| 发表于 2009-10-25 18:45:57 | 只看该作者
点击此处下载 ourdev_495818.pdf(文件大小:77K) (原文件名:20W电源原理图.pdf)

出0入0汤圆

33
发表于 2009-10-25 18:47:05 | 只看该作者
不错

出0入0汤圆

34
 楼主| 发表于 2009-10-25 18:53:38 | 只看该作者
点击此处下载 ourdev_495832.pdf(文件大小:80K) (原文件名:20W电源原理图.pdf)

刚才发现转换为黑白的了,换个彩色的。

出0入0汤圆

35
 楼主| 发表于 2009-10-25 19:16:08 | 只看该作者

(原文件名:20W电源照片.jpg)

出0入0汤圆

36
 楼主| 发表于 2009-10-25 19:20:14 | 只看该作者
板子左侧有部分没有放置元件,并且做了一个拼版的槽孔,可以掰开,目的是,掰开以后,板子的大小将是西门子单通讯口,就是普通西门子200的电源板大小。一板两用。

出0入0汤圆

37
 楼主| 发表于 2009-10-25 19:29:15 | 只看该作者
点击此处下载 ourdev_495837.pdf(文件大小:40K) (原文件名:20W电源测试数据.pdf)

出0入0汤圆

38
发表于 2009-11-8 12:52:07 | 只看该作者
学习

出0入0汤圆

39
发表于 2009-11-10 23:30:13 | 只看该作者
mark

出0入0汤圆

40
发表于 2009-11-20 20:09:34 | 只看该作者
mark

出0入0汤圆

41
发表于 2009-11-25 23:08:42 | 只看该作者
开关电源的变压器规格是怎么算出来的?

出0入0汤圆

42
发表于 2009-12-29 20:08:21 | 只看该作者
相当不错,顶

出0入0汤圆

43
发表于 2010-3-21 12:31:46 | 只看该作者
21ele
能不能整个联系方式上来,对你的产品感兴趣

出0入0汤圆

44
发表于 2010-3-21 12:34:23 | 只看该作者
搞到这一步了就应再进一步,你用的端子我知道哪有买的,大约7毛一位,在深圳。

出0入0汤圆

45
 楼主| 发表于 2010-3-24 09:11:58 | 只看该作者
QQ:33824483

现在程序按FX2N写,已经完成上传,下载,监控,强制,指令基本指令做了不少,正在做跳转调子功能指令等,计划指令全兼容三菱,最少兼容到80-90%。

出0入0汤圆

46
 楼主| 发表于 2010-3-24 09:14:43 | 只看该作者
我的端子是托朋友买的,好像也是深圳,只是价格稍高,是1元左右一位。另外关键是那个运行停止开关太难买了。进口的太贵。

这两天正在组织生产,因为已经开始在自己的项目上用。本来想外委加工,但一是加工数量少,二是担心外委加工质量和周期无法控制,所以还是决定先自己生产。我前几年早就买了一个5温区纯热风回流焊机,这次又买了超声波清洗机和洗板水。

去年外委到昆山加工了一批其他的板子,价格不贵,但是品质很不好,返修率非常高,估计锡膏不好,焊点发暗,焊接不良很多,对方说,因为业务多,所以我的单子他们又委给别人做的,而且周期拖得很长。所以对外委很有心里负担。

依据这个控制器,去年底我又变形了一个单板的控制板,计划今年批量使用。硬件设计很快,几天就画好了。软件基本上没变化,直接用,因为io定义变化很少。

出0入0汤圆

47
发表于 2010-3-26 11:44:34 | 只看该作者
mark

出0入0汤圆

48
发表于 2010-3-26 15:17:05 | 只看该作者
佩服,能共享一下变压器的参数跟绕制图吗

出0入0汤圆

49
发表于 2010-3-31 16:52:58 | 只看该作者
请问电源中主控芯片是什么型号?我怎么没有找到呀,谢谢!

出0入0汤圆

50
发表于 2010-4-2 13:04:59 | 只看该作者
关注!

出0入0汤圆

51
发表于 2010-4-2 14:29:53 | 只看该作者
楼主给个邮箱,我对你的产品有兴趣,我的邮箱:tony.zhang@vimar.cn

出0入0汤圆

52
发表于 2010-4-2 22:07:14 | 只看该作者
常常常常常常常常常常吃

出0入0汤圆

53
发表于 2010-4-2 22:20:22 | 只看该作者
关注.

出0入0汤圆

54
发表于 2010-4-3 09:50:13 | 只看该作者
STM32103R8T6这款芯片的资源有点少,要是做解释型PLC,就有点不够了。

出0入0汤圆

55
 楼主| 发表于 2010-4-3 10:48:16 | 只看该作者
解释型没有问题啊,资源少主要是指D元,FX2N, 8000个D元,要占16K RAM, R8/RB只有20K RAM, 所以D元无法完全仿出来。
RB和R8价格相差很小,现在在用RB, 128K flash,做解释或编译型都是够用的了。

出0入0汤圆

56
发表于 2010-4-7 09:56:28 | 只看该作者
楼主: modbus 可以改成通过 CAN 口实现吗? QQ:1046100764

出0入0汤圆

57
 楼主| 发表于 2010-4-8 09:38:25 | 只看该作者
板上预留了磁耦隔离的can, CAN接口留在io扩展口里,软件只写了一个测试程序。can上实现modbus ? 没有试过。

出0入0汤圆

58
发表于 2010-4-8 17:48:05 | 只看该作者
回复【54楼】21ele
解释型没有问题啊,资源少主要是指D元,FX2N, 8000个D元,要占16K RAM, R8/RB只有20K RAM, 所以D元无法完全仿出来。
RB和R8价格相差很小,现在在用RB, 128K flash,做解释或编译型都是够用的了。
-----------------------------------------------------------------------

假如扩展SRAM,就都有了。
松下FP0用一片并行EEPROM及一片SRAM。

出0入0汤圆

59
发表于 2010-4-9 10:01:31 | 只看该作者
我是说用CAN口实现 MODBUS 的功能,如程序下载,在上位机显示下位机状态,控制下位机等

出0入0汤圆

60
 楼主| 发表于 2010-4-9 10:03:00 | 只看该作者
用不着扩展,扩展多麻烦,选新出来的105/107系列就行了。

出0入0汤圆

61
发表于 2010-4-9 14:13:25 | 只看该作者
扩展是麻烦,还有干扰问题。

出0入0汤圆

62
发表于 2010-4-20 11:11:51 | 只看该作者
我感兴趣的是那漂亮的外壳哪有。。。

出0入0汤圆

63
发表于 2010-4-20 12:15:58 | 只看该作者
好东西,MARK一下。同问外壳哪里搞的到?

出0入0汤圆

64
发表于 2010-4-20 13:23:06 | 只看该作者
不错,做个记号,以后来看

出0入0汤圆

65
发表于 2010-4-29 22:21:54 | 只看该作者
产品型号:STM32F103RCT6
Package / Case: LQFP-64
Program Memory Size: 256 KB
Data RAM Size: 48 KB

*************************************************
这个应可以了吧

出0入0汤圆

66
发表于 2010-4-30 14:45:28 | 只看该作者
我也正在做和你这块类似的板子,有好多问题想要请教,想和楼主联系,期待回复

出0入0汤圆

67
发表于 2010-7-11 02:38:37 | 只看该作者
mark

出0入0汤圆

68
发表于 2010-8-29 09:49:01 | 只看该作者
mark

出0入4汤圆

69
发表于 2010-8-29 12:01:24 | 只看该作者
此贴非常有价值

出0入0汤圆

70
发表于 2010-8-30 22:34:27 | 只看该作者
回复【4楼】21ele
-----------------------------------------------------------------------

板上设置了一个电压检测芯片ht7044检测系统掉电,但是因为用系统自带的PVD检测掉电+大电容瞬间保存数据已经很稳定,所以暂时不用。  

数据掉电保存采用crc32校验+备份三份来保证数据可靠。
-__________________________________________________

综合了您上面的和人家一起讨论的内容。

想确认一下您这里是如何设计的。
1)您是在PVD中通过检测到2.9V后进入掉电保存。
2)您是使用了大电容瞬间保存数据。

还是想像您确认

1)您保存的数据大概有多大? 512B, 1K? 或者其他?
2)PVD检测后,您怎么处理?大致是不是下面的操作?
   A)关闭所有外设,
   B)擦除FLASH
   C)写入数据,存储校验值?

   因为不知道具体操作过程。A操作的时间很短,没有问题。 但是B)和C)操作的时间就比较长了。
   按照规格书,一个page的擦除时间TERASE时间在-40~105度的情况下,最小是20MS,最大是40MS
写入的时间是70US, 如果假设您写入的是512个字节,那么需要70*256约为18MS,擦除时间是40MS
这样计算下来,您如果写入512个字节就需要18mS+40=58MS。
   而在运行擦除和烧写的时候,都需要不小的电流消耗,写是最大7MA,擦是5MA。

   当然看您解释似乎是上电复位的时候进行擦除操作的,所以仍旧需要写入512字节的18MS的时间。


    以上的计算都是按照最坏情况进行考虑的。

    不知道您是如何进行的设计的?采用的大电容是不是仅供电给MCU,和主电源之间您增加了二极管?
这个电容您是如何选择的?

出0入0汤圆

71
 楼主| 发表于 2010-9-3 11:41:27 | 只看该作者
电容我现在都是用1000uF, 位置是在3.3V 。

擦除时间比较长,所以肯定是放在上电期间进行的。

pvd中断处理,你猜的是对的,来了之后,所作的工作就是关闭外设,向已经擦除了的扇区写入需要掉电保存的数据,并在最后附上crc32校验,要更完善点,也可以接着检测电压是否恢复并保持足够时间,直接恢复工作状态,否则等待,直到彻底没电。

上电期间,读取上次掉电保存区的数据,并检查校验,如果正确,则将数据载入ram,否则读取上上次掉电数据,并检查数据有效性,如果数据仍然有问题,则载入出厂设置数据。

电容保持时间,我拿示波器看过,时间是最够的,比如保存1-2k字节数据。 我程序中保存1K 多数据,实际使用,可以可靠保存。

出0入4汤圆

72
发表于 2010-9-3 11:50:41 | 只看该作者
楼主的端子哪里买的,找不着呢

出0入0汤圆

73
发表于 2010-9-3 13:12:22 | 只看该作者
mark

出0入0汤圆

74
发表于 2010-9-4 01:36:42 | 只看该作者
回复【70楼】21ele  
-----------------------------------------------------------------------

谢谢您的回复!

关于掉电这部分我已经明白您的软件设计了。非常感谢!学到了很多设计上的经验。
但仍旧有需要向您确认。
“电容我现在都是用1000uF, 位置是在3.3V 。”

因为没有看过您的电路图,所以根据您的信息再次猜测。
1)您并不是我说的,在布线的时候在主电源和CPU供电间增加一个DIODE,然后单独为CPU增加大电容。而是在主电源上增加了1000UF的电容。
2)根据1,我猜测,您没有使用外部的复位电路,是不是仅仅使用RC回路,而采用的是STM32F的内置POV?

    但上诉设计方案,我认为在正常操作范围内是一个正确的流程,想再次向您确认一下
3)您是否对上诉的软件设计采取过随机power on/OFF的时间呢?随机的上电,断电一定的次数而机器无任何软件,硬件,程序的损伤。


您的设计是我看到比较完整的产品之一。

4)另外也同71楼同问,您的端子台在什么地方购买?MOLEX看到了这个产品,询问价格吓死人啊!而且说是有专利费的。
5)您的右侧扩展端口如何设计?这部分在整个论坛里似乎讨论的很少,都是仅仅本体的设计。但是仅仅I/O没有模拟量的应用局限性也不小。

    我的信箱是gpfrank@163。com,您是否可以告知联络方式,方便学习交流呢?给您添麻烦了!

出0入0汤圆

75
 楼主| 发表于 2010-9-4 18:08:09 | 只看该作者
1,2 你的猜测是对的,3.3V电源主回路并大电容简化了硬件设计,这个也是我试验的结果,曾经在5V侧串二极管并大电容再过LDO为3.3, 但是掉电效果不好。 3.3V电源主回路并大电容最大的缺点是上电期间,大电容充电,电流比较大。

3 严格的测试没有进行过,只是模拟实际工作状态时,反复多次进行随意掉电,再次上电,发现最后状态ram值都能得以保存。

理论上这种方法的掉电保存数据是有一定危险的,主要就是怕电容没充足电,就掉电了,这样可能数据没有保存完就没电了。这种情况下校验数据没有生成,下次上电校验无法通过,就只好取上上次掉电数据了。第二种情况就是,上电后数据载入完成后,刚刚开始擦除扇区,就掉电了,这种情况下,应该是要等擦除完成才能写入的,擦除时间又比较长,所以很可都数据也是写不完就没电了,仍然是下次上电校验无法通过,就只好取上上次掉电数据了。但是刚才两种情况下按常理系统应该都没有怎么正常运行,也就没有产生新的有效数据,所以读入上上次数据应该也是没有问题的。

4 端子不算太难买,价格1元一位左右。另外以前在苏州和上海的电子市场逛是也发现过这个端子。

5 扩展我只是预留了CAN和SPI ,还没有仔细考虑如何实现。但是按最近项目的经验,原则上本地的io扩展最好是不带cpu,直接纯硬件扩展比较好,考虑好级联的方式就行。 远程扩展IO, CAN应该是比较合适的方式。

出0入0汤圆

76
发表于 2010-9-4 22:28:13 | 只看该作者
mark mark

出0入0汤圆

77
发表于 2010-9-5 12:26:00 | 只看该作者
回复【74楼】21ele
-----------------------------------------------------------------------

"5 扩展我只是预留了CAN和SPI ,还没有仔细考虑如何实现。但是按最近项目的经验,原则上本地的io扩展最好是不带cpu,直接纯硬件扩展比较好,考虑好级联的方式就行。 远程扩展IO, CAN应该是比较合适的方式。"

   您的意思是也类似于“windows7”的方案中的采用 串行转 595,165的方式?

   这个方式不知道是否可行,如果像西门子,三菱,OMRON等那样是采用一段10CM线的方式,不知道是否能够抵抗住噪音。
   采用595,165的方式扩展I/O似乎还可以,如果扩展AD/DA,一个通道就要用掉16位。做个4个通道就要32位,如果使用595,165的方法也要用掉8片,似乎也不是很方便。

    网络上看到很多仿西门子的扩展单元,不知道是用什么方式,从线的数目上看,肯定是简单的串行,不会是CAN等总线的方式。不知道西门子是如何处理对抗噪音实验的。这部分应当是本体PLC设计的一个难点现在看来。因为都讨论本体设计了。本体如果电源设计的好,大部分噪音实验应当是没有问题的,而这部分看似是内部的总线,但是如果没设计好,引入很多噪音,对PLC的问题定性有一定的问题。

出0入0汤圆

78
发表于 2010-9-5 12:47:30 | 只看该作者
很好!

出0入0汤圆

79
 楼主| 发表于 2010-9-5 15:40:37 | 只看该作者
即使只有10CM线,如果是用ttl电平传送信号,也很可能受到干扰。 现场的干扰,如大功率变频器+电机的干扰几乎是无处不在的,10cm的线做够引入干扰了。

所以必须想办法避免干扰。能想到的办法有两个:一是该电流环传递信号,简单,实用,价格低,容易实现隔离,缺点是速度不能做到太快。 另外一个办法就是用rs485之类芯片,用差分电平传送信号,这个方法速度快,效果好,是专业做法。

如果只扩io, 电流环+595+165比较实用。

如果IO较多,或要扩AD, 那恐怕还是要用mcu或cpld或fpga.

出0入0汤圆

80
发表于 2010-10-21 22:27:33 | 只看该作者
8错

出0入0汤圆

81
发表于 2011-2-22 17:23:21 | 只看该作者
marker,结构做的不错,值得借鉴,请问那个接线柱那里买的

出0入0汤圆

82
发表于 2011-2-24 13:24:44 | 只看该作者
mark

出0入0汤圆

83
发表于 2011-2-24 20:42:40 | 只看该作者
牛!

出0入0汤圆

84
发表于 2011-3-14 16:44:17 | 只看该作者
厉害啊111

出0入0汤圆

85
发表于 2011-3-14 16:50:24 | 只看该作者
外形看上去很酷啊~~
支持,支持~~

出0入0汤圆

86
发表于 2011-3-14 17:10:31 | 只看该作者
标记 阅读 !

出0入0汤圆

87
发表于 2011-3-20 18:44:08 | 只看该作者
层叠堆积,外壳很绚丽。

出0入0汤圆

88
发表于 2011-7-10 13:59:27 | 只看该作者
口水啊

出0入0汤圆

89
发表于 2011-7-19 18:37:27 | 只看该作者
这个外壳不错哪里买的?

出0入0汤圆

90
发表于 2011-12-6 13:14:32 | 只看该作者
厉害呀 牛

出0入0汤圆

91
发表于 2012-3-24 22:37:20 | 只看该作者
楼主厉害。佩服!

出0入0汤圆

92
发表于 2012-3-26 00:27:34 | 只看该作者
好好好好好好好

出0入0汤圆

93
发表于 2012-7-5 03:54:03 | 只看该作者
楼主很牛啊,向你学习了,能不能发个PLC的输入输出口的原理图给小弟参考下,我有个单片机的产品会用到,刚好也是用stm芯片,先谢过了,我的邮箱37566037@qq.com

出0入0汤圆

94
发表于 2012-7-7 09:36:05 | 只看该作者
这个资料很有营养,值得学习。

出0入0汤圆

95
发表于 2012-8-12 18:31:36 | 只看该作者
支持LZ。能否给一份PCB的外形尺寸。制作PCB用的。谢谢 QQ454655312

出0入0汤圆

96
 楼主| 发表于 2012-8-17 11:55:24 | 只看该作者
计划想全部开源软硬件,出售硬件套件,仅作为单片机开发板,只是太忙了,没时间。

出0入0汤圆

97
发表于 2012-8-17 14:10:12 | 只看该作者
21ele 发表于 2012-8-17 11:55
计划想全部开源软硬件,出售硬件套件,仅作为单片机开发板,只是太忙了,没时间。 ...

   lz的想法很诱人啊     你的这个设计比较完善了  
不知道楼主测试稳定性怎么样啊??

出0入0汤圆

98
发表于 2012-8-17 14:24:01 | 只看该作者
哦。。。开源,那不错,订一套搞搞

出0入0汤圆

99
发表于 2012-8-17 14:28:56 | 只看该作者
很期待
`

出0入0汤圆

100
发表于 2012-8-19 09:13:02 | 只看该作者
21ele 发表于 2012-8-17 11:55
计划想全部开源软硬件,出售硬件套件,仅作为单片机开发板,只是太忙了,没时间。 ...

俺给你顶起   不知道我能否帮上忙呢    瓦 乃一大三学生   时间还算充裕
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 03:05

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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