楼主: wangkj

跟我学嵌入式(arm fpga 原理图 pcb verilog 焊接 调试 软件硬件)

[复制链接]
 楼主| 发表于 2012-10-31 10:40:01 | 显示全部楼层
这事我从google搜到的一份中文资料。是关于st cortex-m0的

STM32F051系列数据手册简介(中文).pdf (3.5 MB)

www.st.com网站好好翻翻,找到cortex-m0的资料链接是这个 http://www.st.com/internet/mcu/subclass/1588.jsp
这个链接以后可能会有变动,大家去网站仔细翻吧。

可以点击上面图标的中国国旗标志,切换成中文,在网站的右上角。这些资料都是我们需要参考的,为了将来少被弯路,尽量多看。

http://www.st.com/internet/evalboard/product/253215.jsp
这事stm32f0 官方开发板的连接。我想,我们要做的话尽量兼容他的开发板,这样,有更多的资源科利用。兼容性设计是很重要的一点,尽量借力。

这种设计思想,很多地方都用到。尽量兼容,除非不想跟别人互通或者保密那就另说了。
 楼主| 发表于 2012-10-31 10:46:22 | 显示全部楼层
Arduino,是一个开源的单板机控制器,采用了基于开放源代码的软硬件平台,构建于开放源代码 simple I/O 接口版,并且具有使用类似Java,C 语言的Processing/Wiring开发环境。

http://zh.wikipedia.org/wiki/Arduino

我的想法,就是做一个跟st官方兼容的板子,但是去掉st-link采用串口编程,管脚兼容,这样降低学习的成本,同时保持跟官方最大的兼容性。

同时,如果可能做出这种类似java 的语言开发。

开发者        Arduino Software
稳定版本        1.0/
2011年11月30日;10个月前 [1]
编程语言        Java
操作系统        跨平台
类型        Integrated development environment
许可协议        LGPL or GPL license
网站        http://arduino.cc

1.png

这事st 原厂,采用 STM32F051R8T6 mcu做的标准开发板,我们按照这个原型设计。

DM00050135.rar (1.75 MB)


 楼主| 发表于 2012-10-31 10:54:22 | 显示全部楼层
这个cpu的相关资料:http://www.st.com/internet/mcu/product/251901.jsp

stm32启动模式的描述
http://www.st.com/internet/com/T ... NOTE/CD00167594.pdf

从这里我们可以看出,通过调整boot0,boot1管脚可以选择内置ROM的boot或者用户的BOOT,这样,通过串口我们就能下载程序到这个mcu。也就是说,st-link部分我们可以省掉。这样做,有些人可能会说调试不方便,但是,盲调是衡量嵌入式程系统的技术水平高低的重要指标。在很多场合,调试器用不了或者用不起。

比如调试linux内核,调试器差不多10万RMB。我们可以通过插入print语句的技巧跟踪。跟用调试器差不多。
这些技巧。我以后会讲到。

所以,精简到这个st-link问题不大。这也不影响官方样例程序运行。我们做的板子,排阵肯定得做成跟官方兼容的。

他的开发板考虑了太多的因素,我们以学习为主,所以,会去掉没必要的部分。这就是我的设计指导思路。

AN4080: Getting started with STM32F05xxx hardware development
http://www.st.com/internet/com/T ... NOTE/DM00051986.pdf

Embedded boot loader
The embedded boot loader is located in the System memory, programmed by ST during production. It is used to reprogram the Flash memory using one of the following serial interfaces:
●USART1(PA9/PA10)
●USART2(PA14/PA15).
For additional information, refer to application note AN2606.

这是第14页的内容,这里很关键,指明了不用st-link如何烧程序的问题。

22页提到和原来mcu的兼容管脚问题
Hardware migration from STM32F1 to STM32F0

1.jpg



 楼主| 发表于 2012-10-31 10:55:43 | 显示全部楼层
我们设计的板子,尽量保持兼容,这样,能有更多的用途。毕竟,我们是学习板子,希望一物多用,在不增加成本和难度的前提下,尽量多的增加兼容性和功能。但有时候,我们必须折中考虑。

现在我们开始着手做原理图了,在做之前,我们希望尽量能找到现成的抄。不过,我搜过之后,发现,大部分stm32是用protel 做的,原厂的也是。

如果不想学allegro,只想用protel 的可以跳过,每个人的看法不同,没必要强求用什么软件,工具就是工具,用熟练了,什么都能可以。凡事都有利有弊。

原厂开发板下载资源地址
http://www.st.com/internet/evalboard/product/253215.jsp
SCHEMATIC PACKS这事原理图的下载:http://www.st.com/internet/com/T ... f0discovery_sch.zip

killall -9 nginx是不行的,必须重新运行启动php-cgi的脚本才能生效。如果是apache重启apache,我这个不是apapche,找到的都是关于apache等帖子。所以走了很多弯路。最后发现这个服务器用的是php-cgi 才找到了正确的解决方案。

解决问题很容易,找到解决方案却很难。
 楼主| 发表于 2012-10-31 10:57:33 | 显示全部楼层
现在我们开始做学做原理图了,原理图 线路板 gerber 制版 买器件 焊接 调试 出品。这是第一个具体干活的流程,不算全面的市场调查,总体设计。

如果用虚拟机的,先启动虚拟机,点击 Design Entry CIS 图标启动 原理图设计界面。如果没用虚拟机,而是在你的电脑上直接安装的allegro ,直接点击即可。

1.jpg

我打开虚拟机,准备继续写教程的时候发现,竟然不能上网了!
我晕,然后我去我的主机的网上邻居属性查看网卡,竟然vbox 的虚拟网卡不见了。
我的主机安装了 qq的电脑管家,估计是被他优化了。
我在电脑管家没找到相关设置,
干脆,我就启动vbox的安装程序,让他自己修复,然后重启电脑,就好了。
我想,可能其他的启动优化软件也会有这种问题,重新启动vbox的安装软件,点击 repair修复一些应该就会好的。

点击 Design Entry CIS 之后,选择 Orcad Capture,点击OK

2.jpg

我们现在是开始一个全新的设计,所以选择File -> New -> Project

3.jpg

 楼主| 发表于 2012-10-31 11:03:42 | 显示全部楼层
Name 填写 Stm32F0,我们这个项目是一stm32f0 cortex-m0 mcu为例来讲解的,我以,我们就起了一个这样的名字。
点击一下C:\目录,这样会把文件家放到根目录下,然后点击Create Dir 按钮,新建一个目录夹,填写目录名叫做 stm32f0,然后点击OK

1.jpg

这时候,C:\会出现 stm32f0的子目录,选中这个子目录,点击 OK

2.jpg

Select Directroy 选择我们刚刚选中的 stm32f0目录,然后点击 OK

3.jpg

 楼主| 发表于 2012-10-31 11:06:52 | 显示全部楼层
我们是在做原理图,所以,选择默认的Schematic,然后点击OK

1.jpg

点击左面的项目管理窗口 stm32f0,选择SCHEMATIC1,鼠标右键点击,选择Rename,
改名为Main,这个目录,是项目的总体说明、系统结构、索引目录

2.jpg

3.jpg

鼠标右键点击 Main的PAGE1改名为PAGE1_INDEX

4.jpg

 楼主| 发表于 2012-10-31 11:08:18 | 显示全部楼层
填入要改的名字PAGE1_INDEX,点击 OK

1.jpg

鼠标右键点击 MAIN,选择New Page,
NAME填写Page2_ARCH,
点击 OK

2.jpg

3.jpg

类似增加PAG3_MAIN

4.jpg

 楼主| 发表于 2012-10-31 11:10:36 | 显示全部楼层
双击 PAGE1_INDEX,出现该页的编辑窗口,
调整该窗口到你希望的样子,这是我调整之后的样子,每个人喜欢不同的风格,这是我喜欢的。
这种样子,项目管理窗口和工作窗口都能比较清楚的看到也比较容易切换。

1.jpg

先点击一下我们的工作窗口,然后
点击 窗口右侧的 place text 图标。上那个带abc和+号标准的图标。

这个软件的菜单和快捷操作是动态切换的,根据你的工作状态,软件动态切换需要的操作菜单。
所以操作之前,先点击选中需要操作的窗口,然后选取需要的操作。

2.jpg

点击之后,如图输入“标题       分组        页码”拿不准空格数量的,可以拷贝分号中的内容。
注意,要改变字体,默认的字体比较小不清楚。
现在上选中状态是红色的,我选择的颜色上绿色,非选中之后,就是绿色了。

3.jpg

 楼主| 发表于 2012-10-31 11:12:10 | 显示全部楼层
再次点击 Place  Text输入"索引              Main                  1“

1.jpg

按住 ctrl 键,然后鼠标拖动 索引              Main                  1
复制两份,一共三份,然后点击分别双击第二份,第三份,修改一下内容。

2.jpg

这时候,我们发现,他的页面数字上自动增加的。
哈哈,页面我们就省的修改了。
标题分别改成  系统结构 顶层模块

3.jpg

 楼主| 发表于 2012-10-31 11:13:38 | 显示全部楼层
美化一下,我们加入一些线条,记住,要用画线功能,不要用布线的wire,bus功能。
否则,后面为pcb生成 网络表 会出错的。
如果从画线等功能操作状态切换出来,(这时候的鼠标上十字星)

1.jpg


鼠标右键单击,选择 End Mode 。这时候鼠标就变成 指针状态了鼠标选中 工程管理窗口,然后 保存,可以用保存的快捷方式,也可以用菜单FILE \ Save
经常保存你的工作成果是个好习惯。
我现在上传这份工作成果,
退出程序。

2.jpg

在电脑的C盘中找到这个文件夹stm32f0,压缩之后上传。
这就是我刚才的那文件夹。

stm32f0.rar (4.63 KB)

 楼主| 发表于 2012-10-31 11:15:09 | 显示全部楼层
我们再次打开 Design Entry CIS 原理图编辑软件,
这时候,我们会发现,在File 菜单中多出来一个
1 C:\stm32f0\Stm32F0.opj的选项,这个就是刚才我们的工程文件,
直接选择就能打开,将来,你如果使用的工作文件多了,这里还有更多。
这样,我们就省的自己寻找,能快速打开经常用到的工作文件了。

我们再次打开 Design Entry CIS 原理图编辑软件,
这时候,我们会发现,在File 菜单中多出来一个
1 C:\stm32f0\Stm32F0.opj的选项,这个就是刚才我们的工程文件,
直接选择就能打开,将来,你如果使用的工作文件多了,这里还有更多。
这样,我们就省的自己寻找,能快速打开经常用到的工作文件了。

1.jpg

打开之后,竟然发现,我们的PAGE2_ARCH,PAGE3_MAIN竟然没在,
这可能上因为我当时没在上面写东西的原因?
没关系,增加这两个原理图页面就是了。

双击PAGE2_ARCH,并调整他的窗口到你喜欢的样式。

我们之所以用PAGEx开头,是因为,这些页面是按照字母顺序排序的,
如果不加这个PAGEx,会出现我不希望的排列顺序。只是为了清楚排列才这样做的。

用Place Text, Place Rectengle,Place Line等功能画出我们的系统结构图。
如果内容中,需要换行,请用ctrl+enter换行。
如果需要旋转,用鼠标选中目标,右键点击,出现的菜单中就有旋转一项。
最后,点击保存完成我们的设计。

2.jpg

3.jpg

发表于 2012-10-31 21:51:38 | 显示全部楼层
目测楼主大神,受教了
 楼主| 发表于 2012-11-1 10:37:34 | 显示全部楼层
上面的这两个页面,对于电路设计,没有实际的任何影响,这两个页面,是页面索引目录和系统结构,让初学者或者一个团队中,新来的人,能很快明了整个设计思路用的。

我现在准备用另外一台电脑继续写这个教程,我把这个虚拟机中做的者部分压缩上传到这里了。

stm32f0.rar (5.53 KB)

Allegro 支持层次化设计,对于一个庞大的工程设计来讲,非常有利,这样,可以极大程度设计重用,减少重复工作量,同时,多个部门团队有序协作,更有利于整个项目的控制。

我下面讲到的层次图,是最简单的应用方式,我们的项目很简单,但我用这个层次图,是为了以后的工作,实际的项目往往很大。所以,我们的这个简单设计,也是麻雀虽小五脏俱全,就是为了清晰明了的了解在实际工作中的整个流程。

层次图工作模式,首先得进行模块划分。

我的模块很简单,系统总体 接口 mcu  usb-ttl转换 电源

这在以前的讲过。下面我们就具体把这几部分化成层次图。

虽然,这个设计好简单,层次图也可以完全不用,但为了掌握将来可能面临的负责设计,还是尽量学会这部分,将来,如果复杂设计,用这种层次图,整个设计会非常清晰明了。

这是关于层次设计的非常详细的描述,适用于想精进allegro的好学者,这份资料不适合初学,如果对allegro还没有一个初步的了解或者用过一段时间,暂时先不看,留在以后再看。我怕以后找不到这份资料,先放到这里了,以后方便。

层次设计和设计重用方法详述.pdf (236.62 KB)


 楼主| 发表于 2012-11-1 10:43:14 | 显示全部楼层
我们画的层次图的顶层图,就是以前贴过的page2_arch图的细化和功能画。
page2_arch只是个示意图,我们在page3_main中把他具体化。

1.jpg

点击右侧边框中的 place hierarachical Block

2.jpg

3.jpg

在出现的放置层次图对话框中
Reference 填写 Power
Implementation Type 选择 Schematic View 我们画的上原理图
Implementatiion name 填写 20_Power

20_Power 前面的20是为了调整原理图页面显示顺序 后面的Power表示我们这个页面上电源相关的。

4.jpg
 楼主| 发表于 2012-11-1 10:44:52 | 显示全部楼层
点击 OK 之后,按住鼠标左键,画一个矩形框
如果想调整 20_power Power这两个字符串的位置,可以点击右侧快捷工具栏中的 鼠标箭头标志,然后拖动这两个字符串到合适的位置。我喜欢两个都放到同一平面,个人爱好。

1.jpg

2.jpg

比照上面的操作方法,增加 MCU,Inte**c,UsbTTL
另外三个顶层模块
如果想旋转字符串,点击选中字符串,然后点击鼠标右键选择旋转功能即可。

3.jpg

 楼主| 发表于 2012-11-1 10:47:05 | 显示全部楼层
我们这种设计上自顶下下的设计,先设计好总体架构,
然后再细化各个功能子模块。这样做的好处是总体结构清楚。
但需要对细节足够的了解,如果总体设计上出现一个最终的细节
无法实现的功能,那后果将是灾难性的。所以,设计者必须对细节有很好的把握,
才能做好这种总体设计。

现在,顶层模块图已经画完了。下面开始各个功能模块的设计。
我们先具体化各个功能模块。
我们以Power模块为例。
双击这个模块,出现这个模块的实例化对话窗,我们这个设计比较简单,
就是一页,所以直接点击OK就行,如果个页面组成一个功能模块
最好启用比较有意义的名字,比如PAGE1_Power_In,PAGE2_DCDC,PAGE3_LDO等等。

1.jpg

点击确认之后,出现 Power的子窗口,调整到你喜欢的位置。
然后重新双击选中顶层Main/PAGE3_MAIN窗口,然后按照上面的办法
分别双击Inte**ce,MCU,UsbTTL三个功能模块,分别建立各自的功能模块页面。

2.jpg

现在,我们的总体设计完成了,记录下我们的完成日志,
双击 Main/Page1_INDEX,
用右侧工具栏中的Place text功能,写下 Follow me Project,Create at 20121028 by wangkj

3.jpg



 楼主| 发表于 2012-11-1 10:48:45 | 显示全部楼层
我们的工作,告一段落,这时候,保存文件,上传或者保存到你认为比较安全的另外一个地方。
经常备份是个好习惯。
保存之后,鼠标右键点击C:\stm32f0这个文件夹
选择添加到压缩文件,选择 备份
点击选中按掩码产生压缩文件名,
这样生成的文件包含日期信息,将来,如果某个时期的版本需要用到,很容易找到。

1.jpg

这就是我们刚才做的成果。

stm32f020121028111206.rar (7.64 KB)

现在,我们开始做MCU部分的原理图,
STM32F051是很新的MCU,封装库中没有。
我在网络找,也没人用allegro做过这种原理图,所以,
我们自己做原理图的部件。

点击 File->New->Library

2.jpg

 楼主| 发表于 2012-11-1 10:50:42 | 显示全部楼层
出现 添加 元件库 提示窗,
增加这个元件库,既可以作为一个单独的工程文件,也可以作为本工程的一部分。
我们这个工程比较简单,我们选择默认的作为这个工程的一部分。、
如果多人写作工作,可以作为一个单独的工程。

无论那种方式,生成的库文件,都可以被单独拷贝出来,多次重复使用。

1.jpg

点击确认之后,控制窗口出现一个Library出现一个子目录,
这个目录,就是新建原件库的目录,
里面的library1就是默认的原件库文件名。
我们把这个元件库改名,改成我们项目的名字。
鼠标右键点击这个元件库文件名,选择 save as
然后选择目录,选择到我们这个工程文件所在的目录C:\stm32f0
填写文件名stm32f0
点击保存

2.jpg

3.jpg




 楼主| 发表于 2012-11-1 11:02:34 | 显示全部楼层
这是一份allegro教程,想详细了解的可以仔细看,
如果想先学会,然后再深入的,可以跟着我做,然后后来在看,
这时候,会有更深的体会。

Cadence 简明教程.pdf (2.82 MB)

我们找到厂家的原理图,在第三页,是他的MCU原理图,我们的器件封装参考他这个制作。


1.jpg

MB1034.pdf (648.2 KB)

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

本版积分规则

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表