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

2012年10月30日 15:39    发布者:wangkj
本人从事嵌入系统工作10多年,
从windows编程,到linux都做过很久,
硬件设计protel从最古老的tango1.0开始,当然,现在用allegro,更好用的eda设计软件。
verilog做的显卡设计,支持非常多的硬件特性。

我想,现在,把整套的嵌入系统设计流程,从总体设计到最后的线路板焊接调试都详细的讲一遍,
如果都学会的话,月薪2万不成问题。如果学会一种4,5k不成问题,51单片机部分例外,这部分工资比较低。

不要以为,学arm比学51难,其实都是一回事。不要纠结具体的系统结构,现在都是辅助设计,具体的硬件结构已经不重要,
重要的是,掌握其中的使用方法,多看硬件手册,多看例程,多看原厂的硬件资料手册(datasheet),原厂的例程和原始设计很重要,
但不能完全相信,原厂有时候,为了某些利益,选用的原件不是最优化或者说,最适合你的。

当然,广交朋友,互相交流,同样重要,不可掉在别人曾经掉在的坑里面。

大家如果下载的时候遇到流量用完不能下载的问题,
请点击http://yunpan.360.cn/invite/vnlrvnceukq
申请个账户。点保存到云盘,选择文件转存。
转存到你的账号你就可以在你的里面下载了
该文章有附件资料,如需下载请访问 电脑版

网友评论

wangkj 2012年10月30日
我的设计就是我的显卡设计的重新组合版本,更加实用化,同时完全开源(verilog部分由一个开源的显卡,商业应用的不开源,开源部分已经足够使用和学习)

是套版设计。显卡板子采用 actel的fpga,当然,这个部分可以用epm570替代,但epm570价格较高,同时没有硬件pll,不是太合适做显卡这个项目。选型理由,后续说明。

控制部分:cortex-m0的cpu,stm32,51都可以,我采用stm32设计,至于51和cortex-m0部分,看情况是否单独讲解。

软件部分:keil-c uc-gui,这是典型的嵌入编程环境,uc-gui小巧的开源不免费的图形编程界面,详情我在设计过程中讲解

整个设计,包括硬件软件系统集成软件移植总体设计详细设计市场需要等,是非常典型的工作流程。
wangkj 2012年10月30日
我假设是学习者是一张白纸,我尽量从最简单的讲起,如果有人觉得我讲的太简单,就跳过不看。

首先,我从系统安装讲起。

如果对系统安装很熟悉的可以跳过不看,我做这个目的,就是先建立一个干净的系统,从0开始讲起开发环境的搭建。

我使用虚拟机搭建这些环境,下面我从虚拟机的选择讲起。


wangkj 2012年10月30日
Win7下虚拟机个人使用小结:Virtual PC,VMware和VirtualBox。

想来用了很多年的虚拟机了,换了Win7之后,种种原因又需要使用虚拟机,这里就简单介绍和比较一下。

Virtual PC:

如果想做Windows虚拟机的话,Virtual PC在之前的系统是最佳选择了,在使用vista系统的时候装过MSDOS6.2,7.1,Windows3.1,3.2,95,98,me,xp,2000,2003,vista,2008,win7几乎所有找得到的Windows操作系统。作为MS自已的产品,在自己的平台下使用非常方便,内存占用小,启动快。

网络方面,即不用桥接也不用NAT共享虚拟网卡,直接可以作为同一子网的一台普通电脑使用,不用进行任何网络设置即可上网,比如你的网关是192.168.0.1,你的IP是192.168.0.135,而你的虚拟机的IP可能是192.168.0.136。

一其它虚拟机不能安装的盘一般都可以装上。

不知为什么到了Win7的环境下,以前的Virtual PC都不能安装,只能安装一个专用版本,还有一个名字叫Windows XP Mode,就是说只能使用XP虚拟机。在Win7下安装了这个就可以直接使用XP虚拟机而不用再找安装盘安装。这样做方便了那些舍不得离开XP的用户,导致更多人流向其它虚拟机产品。

Win7下的XP Mode并不支持直接向虚拟机中拖拽文件,但是主盘的所有盘符都会被自动映射为网络硬盘,方便共享使用文件。主盘的硬盘空间默认约有130G,是动态扩展的,开始用时实际容量只有几百M。

相当长一段时间没有找到如何创建虚拟机,原来是在开始菜单中点击“Windows Virtual PC”:

然后在打开的资源管理器中工具栏(如果有的话)下面的显示控制栏中的“刻录”和“新建文件夹”中间,有一个“创建虚拟机”,注意设置主硬盘和差异硬盘的位置。

Virtual PC可以安装其它操作系统甚至Linux,XP Mode只是它的一个特殊应用罢了。

VMware:

这个用得时间最长了,至少5年时间,安装过N种Windows,Linux,Unix,Mac系统,原来只有一个版本,后来有了分支,现在基本一直在用Workstation产品,目前公认最好用的是6.0.5的某个绿色版本,只有几十个M,因为我舍得让它占空间所以一直用完整版本,这个月又有了新版,7.0.0 build-203739,约有500M,装好后可以直接使用以前版本生成的虚拟机文件,兼容性不错,VMware Tools也可以正常使用,不过也可以用最新的。装好后就可以直接向虚拟机中拖文件了。

当初常用这个软件是因为它的快照系统,它允许你在任意开机时刻创建系统快照和恢复,主要用于调试极易产生蓝屏的软件和工具,十分实用。现在在7的版本中又加入了录制Record的功能,挺鸡肋的。

有点不好的地方在于它安装时会虚拟两块网卡,还可以在设置中虚拟更多的虚拟网卡,一般来说使用桥接Bridge的方法就可以让虚拟机上网,基本没有用过NAT方式。之所以不喜欢是因为我在使用Vista SP1时打SP2的补丁后主机不能上网,找了半天才知道是系统将一块虚拟网卡做为主网卡,当然总是会显示为未识别的网络连不上网关而上不去网。它和VirtualBox一样都是会修改电脑本身的网卡设置。

硬盘方面,可以设置为动态扩展或是固定大小,我一般设置为固定大小8个G,如果是XP系统的话装个VS2008都够了,固定大小据说速度快些,我都是单用一个逻辑硬盘来做虚拟机磁盘的缓冲,留大概100G。

貌似从6.0.5开始VMware就开始支持D3D,这样在虚拟机中玩3D游戏也不成问题了,只要内存够大,显卡够好,就可以实现游戏多开的外挂功能了。对我来说,方便的就是在其它操作系统中调试XNA3D游戏,要知道XNA本身就对显卡性能要求很高,能在虚拟显卡中使用,也算够用了。

如果文件太大的话可以开启文件共享功能,小文件就直接拽进屏幕:

VMware还有另一个功能就是做为Visual Studio的一个插件使用,如果之前安装过Viusal Studio 2008,在关于中会显示:

在Viusal Studio 2008中的功能菜单:

总结:很好很强大

VirtualBox:

这是最近才试用的,Sun公司的产品,属于轻量级的虚拟机平台,最新版本3.0.10,完整安装包几十M,功能相对也很精简,快照功能这里叫备份和快速修复,在不同的快照间跳转用起来感觉不是很方便 。可以设置是否启用3D加速,但是却怎么也无法运行我调试的XNA游戏。

虚拟的Windows虽然装了自身的插件,也不能实现文件拖拽的功能。

文件共享方面,在这里叫“数据空间”,在关机的状态下,先设置中选择本机的一个目录来加入到固定分配栏中:

然后在虚拟机中右键单击我的电脑选择“映射网络驱动器”,在文件夹浏览中整个网络里的”VirtualBox Shared Foders”选择刚才共享的那个文件夹,确定后就可以将其映射为我的电脑中的一个盘符使用了。

其它的还没发现什么亮点,期待老用户指教。

虚拟机For Win7 收费情况 最新版本 安装包大小 特点
Virtual PC XP Mode 免费 - 548M(含一个XP系统) 与Windows结合紧密
VMware Workstation 收费 7.0 497M 周边产品众多,功能多到用不到
VirtualBox  免费 3.0.10 69M 轻便,一般应用足够
wangkj 2012年10月30日
我个人比较喜欢vbox但缺点是,有些软件运行有问题。我先用vbox讲解,如果出现问题,我再换用其他的虚拟机。

如果学习的话,用自己的电脑更好。没必要我用虚拟机学习的时候就一定跟我学着用虚拟机。学习,就要动脑,不要一味别人咋做你就咋做,学习的更重要的是创新,青出于蓝而胜于蓝,如果比老师强,社会怎么进步?

比如,我用vbox,你就可以用vmware等其他软件,或者用电脑,我也希望,学习者,能把他自己的学习经验贴出来,一起共享。

linux其实是我最擅长的,不过,这次暂时不讲。这次讲座估计得持续2-3个月,是一个完整的产品开发过程。如果像学linux的人多的话,我可以做一个linux的arm版本,06年我做过,at91rm9200的,在arm上直接编译,不用pc的交叉编译环境,非常省事。
在那个arm上当搭建了一个论坛,discuz5.0版本的。
wangkj 2012年10月30日
简介

VirtualBox 是一款功能强大的 x86 虚拟机软件,它不仅具有丰富的特色,而且性能也很优异。

Oracle VirtualBox是由德国InnoTek软件公司出品的虚拟机器软件,现在则由甲骨文公司进行开发,是甲骨文公司xVM虚拟化平台技术的一部份。它提供使用者在32位元或64位元的Windows、Solaris及Linux 操作系统上虚拟其它x86的操作系统。使用者可以在VirtualBox上安装并且执行Solaris、Windows、DOS、Linux、OS/2 Warp、OpenBSD及FreeBSD等系统作为客户端操作系统。

与同性质的VMware及Virtual PC比较下,VirtualBox独到之处包括远端桌面协定(RDP)、iSCSI及USB的支援,VirtualBox在客户机操作系统上已可以支援USB 2.0的硬件装置,不过要安装 virtualbox extension pack。

最新版本:VirtualBox 4.2.0(2012-09-13发布)

现在的VirtuaBox已经可以运行 Android 4.0系统。

编辑本段特点
  ·支援64位元客户端操作系统,即使主机使用32位CPU
  ·支援SATA硬盘NCQ技术
  ·虚拟硬盘快照
  ·无缝视窗模式 (须安装客户端驱动)
  ·能够在主机端与客户端共享剪贴簿 (须安装客户端驱动)
  ·在主机端与客户端间建立分享资料夹 (须安装客户端驱动)
  ·内建远端桌面服务器
  ·支援VMware VMDK磁盘档及Virtual PC VHD磁盘档格式
  ·3D虚拟化技术支援OpenGL(2.1版后支援)、Direct3D(3.0版后支援)、WDDM(4.1版后支援)
  ·最多虚拟32颗CPU(3.0版后支援)
  ·支援VT-x与AMD-V硬件虚拟化技术
  ·iSCSI支援
  ·USB与USB2.0支援

编辑本段安装VirtualBox

在VirtualBox网站下载主机操作系统对应的二进制文件。VirtualBox可以安装在32位和64位操作系统上。在32位主机操作系统上运行64位的虚拟机是可以的,但必须在主机的BIOS中启用硬件虚拟化特性。

运行二进制安装文件将开启一个简单的安装向导,允许用户定制VirtualBox特性,选择任意快捷方式并指定安装目录。USB设备驱动以及VirtualBox host-only网络适配器将一起安装。

编辑本段创建虚拟机

在VirtualBox中创建虚拟机相当简单,很多设置可以按照用户个人的喜好进行配置。一旦安装了客户操作系统并选择了资源和网卡设置,就可以尝试在小环境或开发环境中使用VirtualBox了。

总体来说,在VirtualBox中创建虚拟机分三步:

1. 为创建VirtualBox虚拟机做准备

首先,命名虚拟机并选择将要运行的客户操作系统类型。此时选择的客户OS会影响之后向导中出现的默认设置。

接下来,配置计划分配给每个虚拟机的内存大小。VirtualBox不支持内存过量使用,所以不能给一个虚拟机分配超过主机内存大小的内存值。

最后一个步骤是创建虚拟磁盘并指定虚拟机磁盘文件的类型和大小(见图3)。在Oracle VM VirtualBox中,你可以选择动态扩展的磁盘或者固定大小的磁盘。动态磁盘起始值较小,随着客户操作系统写入数据到磁盘而逐渐增加。对于固定磁盘类型来说,所有的磁盘空间在虚拟机创建阶段一次性分配。之后也可以给虚拟机增加磁盘,或者使用VBoxManage命令行工具增加磁盘大小。

2. 安装VirtualBox客户操作系统

一旦完成了VirtualBox虚拟机创建向导,就可以开始安装客户操作系统了。为了挂载客户操作系统光盘,选择虚拟机,单击设置,开始编辑虚拟机硬件配置。(1)选择左边面板中“存储”选项.(2)选择“存储”选项下的CD/DVD图形。(3)选择属性视图下带箭头的CD/DVD图形配置虚拟的CD/DVD驱动器。

客户操作系统安装完成后,应该安装增强功能包,增强功能包包括一些便于集成主机和虚拟机的驱动程序。为安装增强功能包,需要打开虚拟机控制台窗口,在顶部菜单中选择设备,然后选择安装增强功能包,启动一个简单的安装向导。增强功能包安装完成后,会重启虚拟机。

3. 在VirtualBox中设置虚拟机

虚拟机关闭时,可以编辑虚拟机设置并更改硬件。VirtualBox具有高级硬件设置特性,启用了IO APIC、PAE/NX和嵌套分页。用户还可以修改虚拟CPU的数量—最多支持32个—不用管主机具有的物理CPU的核数。

最后配置虚拟网卡。VirtualBox允许在一个虚拟机上配置至多四块虚拟网卡。默认的是AMD PCnet-FAST III,大多数操作系统都支持AMD PCnet-FAST III。也可以选择AMD PCnet-PCI II和Intel PRO-1000系列的网卡,以及支持直接存取主机网卡的准虚拟化网卡。

编辑本段模拟环境

软件模拟

能够安装多个客户端操作系统,每个客户端系统皆可独立开启、暂停与停止。主端操作系统与客户端操作系统皆能相互通讯,多个操作系统同时运行的环境,也彼此能够同时使用网络。
硬件模拟

· VirtualBox支援Intel VT-x与AMD AMD-V硬件虚拟化技术。

·硬盘被模拟在一个称为虚拟磁盘映像档(Virtual Disk Images)的特殊容器,目前此格式不相容于其它虚拟机平台运行,通常作为一个系统档存放在主机端操作系统(副档名.vdi)。VirtualBox能够连结iSCSI,且能在虚拟硬盘上运作,此外VirtualBox可以读写VMware VMDK档与VirtualPC VHD档。

·ISO映像档可以被挂载成CD/DVD装置,例如下载的Linux发行版DVD映像档可以直接使用在VirtualBox,而不需烧录在光碟片上,亦可直接在虚拟机上挂载实体光驱。

·默认上VirtualBox提供了一个支援VESA相容的虚拟显卡,与一个供Windows、Linux、Solaris、OS/2客户端系统额外的驱动程式(guest addition),可以提供更好的效能与功能,如当虚拟机的视窗被缩放时,会动态的调整分辨率。在4.1更支援WDDM相容的虚拟显卡,令Windows Vista及Windows 7可以使用Windows Aero。

·在声卡方面,VirtualBox虚拟一个Intel ICH AC97声卡与SoundBlaster 16 声霸卡。

·在以太网接口卡方面,VirtualBox虚拟了数张网络卡:AMD PCnet PCI II、AMD PCnet-Fast III、Intel Pro/1000 MT Desktop、Intel Pro/1000 MT Server、Intel Pro/1000 T Server。

编辑本段网络设置

VirtualBox提供了多种网络接入模式,他们各有优缺点,用户可以根据自己的需要进行选择。

1、NAT模式:最简单的实现虚拟机上网的方式,无需配置,默认选择即可接入网络。虚拟机访问网络的所有数据都是由主机提供的,访问速度较慢,和主机之间不能互相访问。

2、Bridged Adapter模式:即网桥模式,可以虚拟出一个独立的网卡,有独立的IP地址,所有网络功能和主机一样,并且能够互相访问,实现文件的传递和共享。(注: Windows 7系统选择网桥模式时,需要手动安装VirtualBox 的桥接服务驱动。在本地连接的属性选项中,选择“Microsoft网络客户端”点击安装,网络功能类型选择“服务”点击添加,选择从磁盘安装,找到驱动路径“Oracle\VirtualBox\drivers\network\netflt”,选择VBoxNetFlt_m文件安装完成。)

3、Internal模式:即内网模式,虚拟机与外网完全断开,只实现虚拟机于虚拟机之间的内部网络模式,和主机之间不能互相访问,就相当于虚拟机之间架设了一个独立的局域网。

4、Host-only Adapter模式:即主机模式,是所有接入模式中最复杂的一种,需要有比较扎实的网络基础知识才行。前面几种模式所实现的功能,通过虚拟机及网卡的设置都可以被实现。

编辑本段虚拟机参数

1、虚拟机名称和系统类型:为将要创建的虚拟机命名,要求是唯一的标识,用来区分该虚拟机硬件配置、操作系统、软件等数据。并选择将要安装的操作系统类型和版本,以便VirtualBox自动配置合适的硬件环境;

2、内存:指定虚拟机可用内存大小,系统会自动分配,也可自行设置;

3、虚拟硬盘:选择一个虚拟硬盘作为主硬盘,也可以新建一个,第一次创建,默认即可。如果是选择新建,将进入硬盘类型选择界面(VDI:VirtualBox的格式,VMDK:VM虚拟机的格式,VHD:微软VirtualPC虚拟机的格式,HDD:Parallels虚拟机的格式),默认选择VDI即可。另外,几种格式都可以相互转换,网上有相应的转换软件;

4、硬盘存储类型:分为动态扩展和固定大小两种,其中动态扩展类型最初只需占用非常小的物理硬盘空间,然后根据虚拟机的实际需求动态分配,固定大小类型就是建立时就分配指定的大小给虚拟机使用。后者在性能上有一定优势,但建立时间较长;

5、摘要:显示虚拟机的各项数据情况,确定后完成虚拟机的创建。
wangkj 2012年10月30日
这是vbox的下载地址:
https://www.virtualbox.org/
wangkj 2012年10月30日
如上点击右侧的download,选择windows平台版本下载

点击后,出现下载窗口,我用的是qq旋风,如果你用的不同的下载客户端,可能出现的不同,但下载链接基本类似,http://download.virtualbox.org/virtualbox/4.2.0/VirtualBox-4.2.0-80737-Win.exe
保存到你的下载目录中即可,这事一个安装程序,需要安装才能使用。

91702

91703

91704

wangkj 2012年10月30日
这是下载过程,大概90M,也或许,以后你会看到更高版本不同容量vbox。
顺便显摆一下我的下载速度:2M是字节哦,不是bps,我现在用的是20M宽带。

91705

补充一下,qq旋风是腾讯的下载软件,如果想偷懒,照猫画虎,一模一下的跟我学,可以到腾讯网站下载。http://xf.qq.com/下载地址是这个qq旋风默认是隐藏的,点击这里找到他。在电脑屏幕的最右下角

91706



wangkj 2012年10月30日
双击旋风打开,然后右键点击已经下载的vbox安装文件,选择打开文件夹。
当然,直接双击这个安装文件也能直接开始安装。
我讲的比较啰嗦,如果对系统比较熟悉的,按照你自己想法去做就是了,没必要按照我的办法,按部就班。

91707

这时,你看到vbox的安装文件,双击打开这个文件,开始安装。

91708

出现如下界面,点击next

91709


wangkj 2012年10月30日
一般来讲,直接点击next,不用管太多,虚拟机,如果坏掉或者系统重装,系统映像文件还在的话,重装系统和虚拟机之后,没有任何影响。如果觉得不放心,也可以点击browse安装到别处。

91717

还是默认next,这两个打对勾的,意思是在你 电脑桌面和 快速启动条出,安装菜单,如果不选,你只好到 开始处找vbox的启动程序了。一般默认吧。

91718

下面出现的,是警告,意思是,你的网卡将被复位,也就是说,网卡会有几秒钟不能用。这是由于vbox安装虚拟网卡造成的,这时候,如果有网络的关键应用,等关键应用完成后再安装。放心,安装结束后,你的网络又恢复正常了,就像拔掉网线,又重新安上一样。

91719

wangkj 2012年10月30日
这次是点击 yes ,没有next了 ,意思是,你确认知道了这个瞬间网络掉线的事情。

准备安装,准备好了吗?那就点install吧。

91720

windows很霸道,不经过他检验的程序都认为不可信。windows可信吗?反正我没见过他的源码,见过了,也肯定看不懂,太多了,谁知道有没有后门。

驱动程序,从原则上来讲,能控制你电脑的一切硬件,所以,不可靠的驱动,确实危险,不过这个驱动是SUN提供的,应该没问题,就像windows一样,我们只能假设他没问题,点仍然继续。

91721

会出现很多次哦,要耐心的多点几次,这器件网卡会有几秒钟掉线。然后就是耐心等待几十秒甚至几分钟,直到出现这个画面,就表示安装成功了。

91722

wangkj 2012年10月30日
如果勾选的安装完成后,启动vbox,在点击finish vbox就启动了。否则,请双击桌面上的vbox图标启动。

91723

这事启动vbox之后的界面,里面的win2003和 winxp是我以前安装好的,这次重新安装,又找到了。
也算一个重装vbox的例子吧。
现在不管这两个已经安装好的系统映像,我们重新建立一个新的系统映像,如果是真实电脑主机,
如果您比较富裕或舍得吧自己的电脑重装的话,也可以直接用电脑,不用虚拟机。
如果您觉得,我这样做太罗嗦,您已经对系统非常熟悉,或者已经做过这些工作,就跳过,不管这些。
我讲这些,是针对的尽量多的想学习的人,别嫌我罗嗦哦。每个人可以根据自己的实际情况,选择其中的需要的部分学习。

91724

点击vbox左上角的新建

91725


wangkj 2012年10月30日
我们新建的这个虚拟电脑的名称为  跟我学
系统类型是ms windows
版本xp
我对xp比较熟悉,所以我选xp,如果跟我一样用虚拟机的话,尽量选择一样的。
不同的系统,可能会出现不同的问题。尽量减少才地雷的可能,学会之后,您就可以随意试验了。
当然,如果你想多学习多做些试验,那更好,做的过程中,希望您的经验和教训能和大家分享。

91726

点击下一步之后,出现如下界面,默认192M内存,这点内存,运行我后面讲到的allegro线路板设计和fpga编译环境,确实很困难。所以我们必须调整。

91727

我的电脑是16G内存,原来装过双系统,win7 64可以直接识别,win7 32还得破解,其实,对于厂家来讲,xp,win7 不同版本,支持大内存非常容易,只是ms基于市场策略,不这么干而已。

这就是典型的垄断阻碍技术进步。关于这些,大家可看linux关于内存管理方面的源码,对于操作系统来讲,这些底层的东西都大同小异。

现在,我的电脑用的是xp系统,只能识别不到4G的内存,我们就将就一点吧。如果您的电脑太过古老,不到4G内存,建议不要用虚拟机学习后面的章节,我用的软件都是大型软件。现在内存便宜,不到4G的请升级哦,亲。

好,我把虚拟机的内存,调整到1792,正好是可识别内存的一半。这些,启动vbox之后,讲被直接从你的物理内存被占用走
也就是说,你的主机这部分内存专门调整给vbox用,你的系统的其他部分是不能使用的。
比如我这种划分方法,系统内存就只剩下了1792了。

91728

wangkj 2012年10月30日
点击下一步之后,出现如下界面,一半默认不动,继续点击next.
三个选项中,
第一个:不添加虚拟磁盘,这种适合以后添加或者做无盘启动模式。如果感兴趣,可以自己玩玩试试。
第二项:创建虚拟磁盘,就是在硬盘上的,创建一个大文件,或者使用物理磁盘。这个后面详细解释
第三个:使用已有的硬盘文件,这就是我以前说过的,系统重装之后,这个磁盘文件还在,你原来的虚拟系统就还在
选中原来磁盘文件,就能启动你的虚拟电脑的系统。

91729

我们假设是从一个空白刚买来的电脑开始讲解的,所以我们选择默认的 第二项,现在创建虚拟硬盘,然后点击 创建按钮
选择 vdi 类型的磁盘文件,我一般是用这个选项,其他选项没研究过。如果谁感兴趣,可以研究明白之后共享给我们。

91730

点击下一步,进入磁盘存储模式选择,如果选择固定大小,会直接占用磁盘的对应空间,
如果系统不大,追求磁盘速度,或者不希望很多个磁盘散乱,可以选择这种。
如果不知道将来会用到多少空间,建议选择动态分配。
当然,如果选择固定大小之后,将来如果需要更多的磁盘空间,可以分配另外一块虚拟磁盘。

我们选择 动态分配 然后点击进入下一步

91731

wangkj 2012年10月30日
点击 下一步,进入虚拟磁盘 位置和大小设置,这个界面,可以选择磁盘文件存储的位置,默认的是,你安装vbox的位置,但我们希望,磁盘数据文件,不要和系统搀和在一起。所以我们需要重新选择这个磁盘文件存储的位置。

91732

点击界面上的这个文件夹图标,进入硬盘和目录以及文件选择界面。

91733

这事我们选择磁盘空间位置的界面,找到一个16G以上空余空间的磁盘,如果不足的话,将来可能会不够用。

91734

wangkj 2012年10月30日
名字用默认的  跟我学.vdi  当然你可以换别的名字

91735

我们设为32G大小,磁盘不会立即用这么多,而是不断增加的。这是动态磁盘的好处,缺点是访问速度可能受碎片化影响不会太快。

91736

这事创建之后的界面

91737

wangkj 2012年10月30日
选择 跟我学 点击设置
我们需要更改网卡的连接方式

9173891738

黄色字体提示,我们使用了过多的内存,好吧,我们减少一点内存占用。
点击系统,设置内存占用为1280,如果将来不够用,我们在调整。

91739

再次点击网络,回到网络设置,选择 网卡1 桥接网卡
这种连接方式,虚拟电脑,跟实际的电脑一样,独立占用一个ip,就像真实电脑一样。
可以通过网上邻居访问,如果你不告诉别人,这是一台虚拟主机的话,别人是不会知道的。
这事最真实的模拟方式。但得多占用一个ip地址,默认的nat是子网方式,这台虚拟电脑相当于你的主机的子网。
补充 连接方式肯定选择桥接网卡
界面名称选择自已自已用的网络  

91740


wangkj 2012年10月30日
点击确认,回到vbox主界面,你发现,网络那块已经变成了桥接模式。

91742

这四个连接,是winxp TomatoWinXP_SP3_V1.21.iso 的压缩版本,
我一个为例,讲解系统的安装。首先,下载者四个连接。
http://yunpan.cn/lk/27e2jxxpvn
http://l6.yunpan.cn/lk/27j1sfi0vn
http://l6.yunpan.cn/lk/27npyuxuvn
http://l6.yunpan.cn/lk/27mcay45vn

点击链接,四个都要下载。
不要选择打开,选择 保存文件

严重声明:这个下载链接仅供教学学习研究之用,请学会之后立即删除。

91743

下载过程

91744

wangkj 2012年10月30日
解压缩到当前文件夹,当然,你也可以解压缩到其他文件夹,记住位置。

91745

解压缩之后的文件是:TomatoWinXP_SP3_V1.21.iso

91746

TomatoWinXP_SP3_V1.21.iso
这个文件是windows xp操作系统用的,如果是真实的电脑,请把这个iso刻录成光盘,设置电脑为光盘启动。
然后开机。下面的安装过程,跟虚拟机一模一样,只是,后期的驱动安装,得找你的电脑随机带的光盘。或者到mydrives.com下载驱动精灵,当然,网卡你必须先搞定,这个驱动精灵是联网自动安装,如果搞不定你的网卡,可以从淘宝买一个usb无线网卡(wifi),但你必须有无线网络环境,如果没有的话,只能是买普通的usb网卡了。

当然,找别人帮忙帮你安装系统也是一个办法。
关于光盘刻录,有很多种方法
一般是用NERO软件,还得有刻录机。
现在刻录机很普及,如果有,就自己搞定,没有的话,找你有刻录机的朋友帮忙。
一张光盘片,也就是2块钱,记得用cd-rom不是dvd,这个iso影像文件是cd-rom格式的。

关于windows 系统安装这块,有问题的也可以发到这里,我会详细解答。

现在回到vbox,点击设置,选择存储,点击没有盘片,选择一个虚拟光驱。

91747

wangkj 2012年10月30日
选择我们刚刚下载的那个启动文件,这个过程,
如果是真实的电脑,不是虚拟机,和往光驱里面插入这张启动光盘一样。
记得,刻录光盘的时候,要用光盘映像刻录模式,不要刻录这个文件模式,
这是一张启动光盘。

91748

点击确定

91749

点击启动按钮

91750


wangkj 2012年10月30日
现在这个启动界面,跟实际的电脑一样,只不过中间多了个提示。忽略那个提示就是了。
除非专业作图,一般来讲32位16位色我们这些电子工程师是不会注意的。不仔细看,根本没区别

91751

出错了
知道为啥吗?没设置光盘启动!
按右边的ctrl+del键,不是左边的。
这个跟你的电脑按ctrl+alt+del 一样。
复位。
重新启动,见到上面的那个启动画面之后,选择1,用鼠标或者键盘选择都可以。
鼠标控制切换,按 右面的那个 ctrl 键 ,你按一下,移动鼠标看看。
如果需要鼠标控制虚拟机,用鼠标点击虚拟机屏幕上的任意位置。如果切换回鼠标控制你自己电脑,按ctrl键

91752

点击一下 这个虚拟机电脑 按 C 键,创建磁盘分区
回车,直接创建一个32G的磁盘分区。

91753

wangkj 2012年10月30日
一路回车,系统就开始自动安装了,不用管,等着吧。
这个比windows原装的系统安装容易,都被自动配置好了。
如果像买正版的xp,只需要买个正版号码就行。微软不管介质,只有给钱,你就算正版的。

91756

中间出现一个不能建立D盘的文件,这个点击确认跳过就是了。
这个文件夹,对应的是 电脑桌面的我的文档文件夹
因为我们没有D盘。

这就是安装好的系统

右键点击我的文档,选择 还原默认值,一律点击确认,
这样,我的文档目录夹就能用了。
如果你分成多个分区,无需这种修正。系统默认的D盘我的文件夹,可以防止系统损坏时,你保存的文件的丢失。
我们这个是学习系统,简化版本,无需考虑太多。
系统文件和数据文件分离,多做备份,这是预防意外的最好办法。
我的关键文件,本地硬盘,网络硬盘分别保存,隔一段时间,我还刻录成光盘。

91757

安装驱动,点击 设备,安装增强功能,
然后双击 光驱 D

91758

91759

wangkj 2012年10月30日
然后就是一律 next 最后点击 finish 重新启动。

91760

重启之后,在桌面上空白处,点击属性,设置,
设置显示器的分辨率为1024*768,不然后面很多软件,没办法用。

91761

点击保留设置,这时候,桌面变大了。
如果发现有系统更新,可以更新也可以不更新,我选择了更新。
wangkj 2012年10月30日
下面的内容是硬件制作。

硬件是软件的基础,虽然,现在软件成本很多情况下,高于硬件,但没有硬件的载体,软件也发挥不了作用。软件是灵魂,硬件是肉体。灵与肉,缺一不可。我们先打造一个学习的硬件环境,完成硬件的制作之后,然后再讲软件部分。

硬件制作一般来讲,现在都用电脑辅助设计,选什么样的电脑辅助软件,取决于项目需求。我们这个学习计划也是一个项目,我们的目的,是让学习者能获得更高收入,拥有更多的提升空间。

现在比较流行的软件EDA设计软件是protel, 包括后续的DXP,这个软件不是不可用,如果你想自己创业或者单干或者不想追求太高的薪水或者就想找一个工资无所谓,能工作就行公司,要求不高,这个倒是可以。

用这个软件的公司,一半都是小公司,薪水不高,待遇一般。这是通常情况,如果运气好,找个行业用户,做行业的公司,可能钱不少。世上没有绝对的事情,没有绝对的好坏。

我从92年就开始用这个类似的软件,其前身叫做tango1.0,这个恐怕很多人都没听说过,是两张软盘的dos版本,那个年代,以前做线路板都是纯手工绘图的,这也算革命性的产品了。

后来,我用到protel99,然而一件事情让我不得不放弃了这个软件。

又一次,由于某种原因,我需要调整一个线路板的布线,是总线,中间一个需要调整,我花了整整一天的时间,去手动重新布线。

我一个同事,告诉我,用allerog,不到1分钟搞定,我不相信。他给我演示,我晕,调整中间布线的时候,其他的线,竟然自动重新排列了!他告诉我,那叫做推挤功能。后续的protel dxp有这个功能,但用起来非常麻烦。如果有精通dxp的同学,可以演示一下给大家。

关于推挤功能,我会在后续的软件讲解中详细讲解,不过,是一个非常简单的功能,很容易用,似乎是非常不起眼的一个功能。

然后我就把那个软件要过来,试用,当时确实不习惯他的用法,但一周之后,我发现,这个软件竟然比protel还容易!
但功能强大的不是一点半点。

后来,我问他为啥这么好用,他告诉我,这个allergro的基本版本就是40万,完全点的要100万以上!

不要输在起点上。我了解的情况是,会allergo线路板辅助设计的工作,起薪在4000以上。protel呢?1500就不错了。

我没有看不起protel,protel短小精悍,用的人多,小的硬件都是这个制作的,学起来容易。但是只是觉得,既然有好用薪水高的软件,干嘛不用?既然学习,就从起点高学起。所以我选择allegro讲解。关于protel,的讲解,可能也会讲到。

关于protel, allegro软件的争议,我确实带有个人看法,我想,会有人不同意我的观点,所以,我尽量能找到别人帮我讲解protel部分。

最终的选择权,在学习者自己。每个人,都需要为自己的选择负责。他人所说,仅仅就是建议。我的这些看法仅仅就是个人观点。

protel allegro这些都是工具,从原则上讲,用什么都行。
但如果打工的话,拿到的薪水有些不同而已。
protel找到钱多的工作很难,找工作容易。
allegro找工作不太容易,但薪水较高。
wangkj 2012年10月30日
http://l6.yunpan.cn/lk/27hb5eilvn
http://l6.yunpan.cn/lk/27w55rlkvn
http://l6.yunpan.cn/lk/27s5gxotvn
http://l6.yunpan.cn/lk/27nnsymtvn
http://yunpan.cn/lk/27bzvdmjvn
http://yunpan.cn/lk/273cgew0vn
http://yunpan.cn/lk/27revznvvn
http://yunpan.cn/lk/27jllcclvn

这是verycd 的下载地址,如果上面的流量用没了,可以用这个下载
http://www.verycd.com/groups/slsoft/500937.topic

当然,自己申请个云盘账号,转存过去,也可以,一样的。

上面的连接是allegro的安装光盘iso文件压缩包,下载之后,解压缩,会有3个iso文件。

这是在虚拟机中的用IE启动的下载界面,如果出现防火墙提示,请确认通过就是,需要下载8个文件,
最好不要同时下载,最多3个,再多的话,可能报错,重新下载.

91766

这是下载之后的文件。

91767

解压到当前文件夹

91768

wangkj 2012年10月30日
这就是解压缩之后的那四个文件

91769

现在开始安装原理图,pcb 硬件设计的软件。
如果你下载这些压缩文件到你的主机电脑,可以用这个办法加载这些iso文件。
但我们刚才的事例是虚拟机下载的,用这个办法是找不到这些iso文件的。

91770

http://yunpan.cn/lk/272jd4atvn
下载虚拟光驱模拟软件。

91788

解压缩这个软件,双击安装,一路next,最后点击重启电脑。

91771

wangkj 2012年10月30日
重启只有,左下角出现一个红色的图标,这就是刚才安装的那个软件,左键点击,
选择刚才下载解压之后的第一个iso文件。

91772

如图所示。

91773

现在的E盘,就是allegro的第一张安装光盘,
双击启动安装。
点击 product installation

91774

wangkj 2012年10月30日
选择 I accept the terms of the license agreement,然后点击 next

91775

点击 确认

91776

点击 next ,不要管那个controlefile.txt文件。

91777

wangkj 2012年10月30日
这是allegro的默认安装目录,这个软件非常大,
如果你的系统盘空间不足,或者想用ghost备份什么的,
最好不要安装到默认的系统盘。换个地方吧。
作为一个教学演示环境的搭建,我这就不换目录了。
点击 next 继续

91778

一路默认设置,到设置工作目录的时候,设置一下,我填写的名字是allegro_work
然后点击 next 继续

91779

一路 next 之后,就开始了安装过程

91780

wangkj 2012年10月30日
安装中会出现换光盘的提示,这时候,左键电机左下角的红色图标,选择第二张光盘。
如果是实际电脑的话,插入第二张光盘。然后点击  OK 继续。

91781

后面还会提示第换第三张盘。如果中间出现一些错误提示,不要理他。
我安装的时候,反复提示第一张光盘,我就把虚拟光驱盘片换成了第一张,
然后就出错了。我只好取消,重新从头安装。
如果中间出错,我想,从新从第一张光盘安装,也应该没有问题。

出现 license 提示,输入 C:\Cadence ,这个license的设置后面我们会相信讲解。

91782

点击 finish 结束安装,这时候,系统会设置环境变量,
我也不知道,为什么花费那么多时间。耐心等待吧。

91783

wangkj 2012年10月30日
如果长时间没有响应,你可以重新启动电脑,点击 开始,重启,之后,就会出现 allegro的安装结束界面。点击确认。

91784

91785

91786

wangkj 2012年10月30日
点击 finish 结束安装。

刚才有个朋友反映那个光驱虚拟软件,
安装 daemon.msi时,提示
" Device setup error: code 25030(0x61C6),1630(0x65E). Contact your support personnel" .

这是由于我用的这个软件版本比较低,不支持win7,vista,只支持xp.


但我在用win7安装 allegro16.2 软件不成功,
开始的安装界面都不正常
也或许是我电脑的问题吧,我没有更多的win7测试,建议学习的朋友,还是先用 xp吧。
win7我很少用。

附件中是支持win7的虚拟光驱软件,喜欢win7的朋友,试试之后告诉我是否好用

91787

wangkj 2012年10月31日
我做的演示环境不受影响,是xp版本。如果用虚拟机安装,用较老的版本就行。新版本好像有一些广告。老板本比较干净。但不支持win7。

下面开始讲解allegro的破解和使用,如果花50万以上购买了正版软件,也应该看看这个说明。
花钱了,就是正版,不论介质来源。反过来将,正版软件,你安装多台机器也是盗版。

我不太喜欢xp风格的界面,所以我切换回老界面。

鼠标 左键单击任务条,选择 属性 选择开始菜单 点击经典 开始菜单。

喜欢xp风格的用户可以不管,这是个人习惯。没什么好坏之分。

91842

点击 开始   程序    cadence spb 16.2    pcb editor
然后按住ctrl键,把pcb editor的快捷方式复制到桌面上一份。
记住,必须按住ctrl键,否则,你的菜单栏中的这个快捷方式,就会被移动到桌面上,意思上你桌面上有了,菜单中消失了,不见了。

91843

双击 PCB Editor
哈哈
出错了
现在是未破解版本,当然出错了。
如何破解下贴继续。
声明:本人写的这一切,仅仅为了学习而用。
如果用于商业,请购买正版软件。我也是做软件的,知道做一个精品软件的辛苦。
有钱的话支持一下,没钱的,学学用用也是支持。等有钱了再买不迟。

91844


wangkj 2012年10月31日
http://yunpan.cn/lk/275afkiyvn
下载这个破解包,也可以从附件中下载这个破解包

91847

如果你在google中搜,allegro破解的话,排名第一的帖子,就是我跟我的一个徒弟合写的。点击率,每天有50个之多。我现在写的这个是更详细的版本。

下载之后,鼠标左键点击,解压缩到SPB162_CRACK0908022目录中,不要解压缩到当前目录,那样,当前目录很增加不少文件,比较混乱。

91845

如果启动 PCB Editor出现的错误提示,还在的话,点一下确认,退出 PCB Editor。如果已经点击过,退出了这个软件,直接可以进入下一步。

将 crack.bat NOLIC.CO拷贝到C:\Cadence\SPB_16.2下,同时将NOLIC.COM拷贝到C:\WINDOWS\system32下。 注意,我们的演示学习版本是安装到C盘,如果你自己的环境安装到别的盘符,请到对应的Allegro安装目录和系统目录操作。

因为我们的拷贝原目录和软件目录系统目录都在C盘上,直接拖拽的话,会变成移动操作。如果希望是拷贝操作,拖拽的时候请按住ctrl键。我没有按住ctrl键,就变成了移动。

这个是个小细节,拷贝或者移动无所谓,都可以。看个人习惯了。

91846

wangkj 2012年10月31日
鼠标双击运行 crack.bat

91848

破解时间稍微有点长,如果发现错误提示,多运行几次 crack.bat
我们演示环境,一次成功,就不需要多运行几次了。

91849

鼠标左键点击 桌面上 我的电脑 属性 ,
点击 高级
点击 环境变量
你会看到,系统变量中的 CDS_LIC_FILE 的变量值是 C:\Cadence
这是我们开始安装的时候,设置的。如果你设置了到其他位置,请主意后面的license.dat文件放置位置也要做相应改变。

91850

wangkj 2012年10月31日
下载这个 license.dat 文件到c:\Cadence

91853

点击桌面上
我的电脑
属性
高级
系统变量的CDS_LIC_FILE
修改其值为C:\Cadence\license.dat
然后连续点击确定,完成修改

91851

点击桌面上的 PCB Editor,哈哈启动了。
破解成功!
启动后,退出PCB Editor,我们的破解还没完全。
关于PCB Editor的使用后面会讲解

91852

wangkj 2012年10月31日
退出的时候,不要直接点击cancel 或者点击关闭的X图标。
要点击确认,进入PCB Editor之后,选择退出。否则,你的LICENSE 可能会出问题。

点击
开始
程序
Cadence SPB 16.2
按住ctrl键,把Design Entry CIS拉到桌面上。

91854

哈哈,出错了。
点击NO退出

91855

从破解文件夹,拷贝capture.exe文件到
cadence的 C:\Cadence\SPB_16.2\tools\capture
目录中,如果你安装到别的目录,类似。
注意,拖拽拷贝的时候,一定要按住CTRL键,否则拷贝的仅仅是快捷方式,会出错的。
如果出错,这时候,你把C:\Cadence\SPB_16.2\tools\capture 中的capture.exe 和快捷方式都删除,然后重新拷贝破解目录中的这个文件过来。

91856

wangkj 2012年10月31日
双击桌面上的 Design Entry CIS
哈哈,成功了。
退出的时候同样要点击 OK进入之后再退出,不要直接退出。

91857

如果想完全破解使软件有仿真功能那么就用下面的方法:用UltraEdit或WinHex打开\capture目录下的capture.exe文件(如果覆盖了就不用管了),还有\pspice目录下的immgr.exe、pspiceaa.exe、pspice.exe、stmed.exe、psp_eng.dll、Magnetic Parts Editor.exe、modeled.exe七个文件,在2进制下查找字串“00 83 C4 0C 8B 45 F8 8B E5 5D C3 55 8B EC 81 EC 84 01 00 00 57 C7 45 F8 00 00 00 00 C7 45 F4 ”,将“55 8B EC” 修改为“33 C0 C3”,保存文件,记住:有一个simsetup.dll的文件一定不能修改,否则仿真的功能就会不全。

我没有用到仿真功能,这块没有测试,如果想用这些功能的朋友,可以试试。

开始我见到360云盘,申请的时候,没有看到任何流量限制的提示。这倒是符合360的风格,不过,用户申请一个新账号,转存之后还能继续下载,也算是一个补救吧。他这样做,可以防止被恶意外链,这倒是一个折中的办法。

想免费,就得麻烦。如果我自己弄个服务器,提供下载的话,被恶意外链也是非常麻烦的事情,所以,下载这块,就先这样,如果以后有更好的办法,我也会补充过来。

嵌入系统和其他软件系统,必须经过立项调查,总体设计,详细设计,编码,调试,成品 维护几个阶段。

现在我们这个学习板子的设计,处于立项阶段。我们的目的:学习。为达到这个目的,我们需要尽量低的成本,尽量多的功能,尽量详细的资料。但这些有矛盾的,我们必须权衡。

从成本考虑,51是最好的,最便宜的51,1块钱。从容易角度51也是最合适的,指令不多,很多学校有这个可能。学起来容易。
但从钱途考虑,这非常不理想,51的入门门槛低,意味着你将来的薪水低,活还很累,软件都得做。一般只有小公司用。
进入这个行业,意味着你的起点低,钱途和前途都比较渺茫,除非你当做一种业余爱好玩玩。

还有其他avr,msp430等等,这类cpu虽然还算不错,但是,用量不太大,将来找工作局限比较大。

现在的arm出货量,应该是每年按照亿计算的。所以我们选择arm。

理由:从低端到高端全覆盖,入门不算太难,高端想进一步深造,可以说深不可测,有你玩的。

我们从最低端最容易的cortex-m0开始,后续的更高级的arm大同小异,每高级一层,只是增加了一些指令和功能部件而已。
只要入门了,根据你自己实力和时间慢慢想高端爬。越高端,薪水越高。只要努力,几年后,月薪几万不成问题。
wangkj 2012年10月31日
然后,下面的问题是选择哪种cortex-m0,现在我所知道的cortex-m0用户量很大的有三家比较有实力的,(欢迎别的朋友补充)
NXP,WINBOND,st.

NXP出的最早,用起来也没什么问题,但其功耗跟后来的winbond和st没法比,其功耗大概在mw级别winbond,st的,低功耗产品待机状态能到uw,这样,电子表计算器之类的纽扣电池供电成为可能。

这样,我们只能在winbnod和st之间选择。winbond的nano不错,带rtc功耗也很低。st 的stm32f051也带rtc也很好。这时候,两个产品差不多,咱就随大流了。

stm32的用户量很大。所以我们选择stm32.

这时候,那个能得到更好的技术支持就选那个。我觉得,我可能能从更多的朋友得到更多的支持,我一我选st的cortex-m0

然后就是我们选择哪款cortex-m0这时候,一则是自己找技术资料看,另外就是问用过的朋友们,还有就是找厂家支持。

就是多方咨询,把自己需要描述清楚问。最后的决定还是自己,记住,最初始的选择错误,会在后面的后续工作中,逐渐放大。
当然,正确的选择不止一个,错误的选择也不止一个。这就是系统架构师的工作。必须对各方面非常熟悉甚至精通才能做好。
wangkj 2012年10月31日
这事我从google搜到的一份中文资料。是关于st cortex-m0的

91858

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

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

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

这种设计思想,很多地方都用到。尽量兼容,除非不想跟别人互通或者保密那就另说了。
wangkj 2012年10月31日
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个月前
编程语言        Java
操作系统        跨平台
类型        Integrated development environment
许可协议        LGPL or GPL license
网站        http://arduino.cc

91859

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

91860


wangkj 2012年10月31日
这个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

91861



wangkj 2012年10月31日
我们设计的板子,尽量保持兼容,这样,能有更多的用途。毕竟,我们是学习板子,希望一物多用,在不增加成本和难度的前提下,尽量多的增加兼容性和功能。但有时候,我们必须折中考虑。

现在我们开始着手做原理图了,在做之前,我们希望尽量能找到现成的抄。不过,我搜过之后,发现,大部分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 才找到了正确的解决方案。

解决问题很容易,找到解决方案却很难。
wangkj 2012年10月31日
现在我们开始做学做原理图了,原理图 线路板 gerber 制版 买器件 焊接 调试 出品。这是第一个具体干活的流程,不算全面的市场调查,总体设计。

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

91862

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

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

91863

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

91864

wangkj 2012年10月31日
Name 填写 Stm32F0,我们这个项目是一stm32f0 cortex-m0 mcu为例来讲解的,我以,我们就起了一个这样的名字。
点击一下C:\目录,这样会把文件家放到根目录下,然后点击Create Dir 按钮,新建一个目录夹,填写目录名叫做 stm32f0,然后点击OK

91865

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

91866

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

91867

wangkj 2012年10月31日
我们是在做原理图,所以,选择默认的Schematic,然后点击OK

91868

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

91869

91870

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

91871

wangkj 2012年10月31日
填入要改的名字PAGE1_INDEX,点击 OK

91872

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

91873

91874

类似增加PAG3_MAIN

91875

wangkj 2012年10月31日
双击 PAGE1_INDEX,出现该页的编辑窗口,
调整该窗口到你希望的样子,这是我调整之后的样子,每个人喜欢不同的风格,这是我喜欢的。
这种样子,项目管理窗口和工作窗口都能比较清楚的看到也比较容易切换。

91876

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

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

91877

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

91878

wangkj 2012年10月31日
再次点击 Place  Text输入"索引              Main                  1“

91879

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

91880

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

91881

wangkj 2012年10月31日
美化一下,我们加入一些线条,记住,要用画线功能,不要用布线的wire,bus功能。
否则,后面为pcb生成 网络表 会出错的。
如果从画线等功能操作状态切换出来,(这时候的鼠标上十字星)

91882


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

91883

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

91884

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

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

91885

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

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

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

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

91886

91887

glace12123 2012年10月31日
目测楼主大神,受教了
wangkj 2012年11月01日
上面的这两个页面,对于电路设计,没有实际的任何影响,这两个页面,是页面索引目录和系统结构,让初学者或者一个团队中,新来的人,能很快明了整个设计思路用的。

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

92025

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

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

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

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

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

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

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

92026


wangkj 2012年11月01日
我们画的层次图的顶层图,就是以前贴过的page2_arch图的细化和功能画。
page2_arch只是个示意图,我们在page3_main中把他具体化。

92027

点击右侧边框中的 place hierarachical Block

92028

92029

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

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

92030
wangkj 2012年11月01日
点击 OK 之后,按住鼠标左键,画一个矩形框
如果想调整 20_power Power这两个字符串的位置,可以点击右侧快捷工具栏中的 鼠标箭头标志,然后拖动这两个字符串到合适的位置。我喜欢两个都放到同一平面,个人爱好。

92031

92032

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

92033

wangkj 2012年11月01日
我们这种设计上自顶下下的设计,先设计好总体架构,
然后再细化各个功能子模块。这样做的好处是总体结构清楚。
但需要对细节足够的了解,如果总体设计上出现一个最终的细节
无法实现的功能,那后果将是灾难性的。所以,设计者必须对细节有很好的把握,
才能做好这种总体设计。

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

92034

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

92035

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

92036



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

92037

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

92039

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

点击 File->New->Library

92038

wangkj 2012年11月01日
出现 添加 元件库 提示窗,
增加这个元件库,既可以作为一个单独的工程文件,也可以作为本工程的一部分。
我们这个工程比较简单,我们选择默认的作为这个工程的一部分。、
如果多人写作工作,可以作为一个单独的工程。

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

92040

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

92041

92042




wangkj 2012年11月01日
这是一份allegro教程,想详细了解的可以仔细看,
如果想先学会,然后再深入的,可以跟着我做,然后后来在看,
这时候,会有更深的体会。

92044

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


92043

92045

wangkj 2012年11月01日
这是中文版的数据手册,在第22页有管脚的描述图。
但他这个图是图片,不能把里面的文字粘贴出来。

这些资料,建议先不要细看,可以粗略的看看,学完之后,回来再看,那时候对这个手册会有更深的理解。
如果现在看,可能很难看懂。

先依葫芦画瓢,先学会了整个流程,然后再细细琢磨其中的每个细节。

92047

92050

在这个英文数据手册,也有对应的管脚列表,
这个是可以粘贴的,不是图片,是文字。

一般来讲,对于元器件,如果有中文手册,可以先看看,但必须找到对应的
英文手册核实。翻译的过程,有时候会出现错误。如果你赶上了,没准就悲剧了。
这是常有的事情。技术资料的翻译,精品有,但太少。很多翻译的人,对技术基本不懂。
懂技术的,懒得做这种翻译。

第29页就有这个元件的管脚列表。

92048

92049


wangkj 2012年11月01日
资料准备好了,就像做饭一样,先准备好材料,再开始点火做饭。
现在,我们根据这些资料新建我们的MCU原件,
鼠标右键点击软件控制窗口中的stm32f0.olb ,菜单中的
New part
New part form spreadsheet
两项都可以新建一个原理图元件,
第一个是用画图方式建立,适合元件管脚数量不多的情况,
第二个是用填充表格的方式建立元件,如果有管脚描述手册,直接拷贝黏贴就行,适合元件管脚数量大,
特别适合总线地址线这类管脚,可以拷贝黏贴,然后稍微修改。

92051

选中打开“New Part Creation Spreadsheet”窗口

92052

这是英文手册29页,对管脚1的描述
上面还有对于缩写的描述
从这两条信息可以看出,这个管脚是电源输入管脚,只是作为电源输入。

92053

92054




wangkj 2012年11月01日
Number  填入1  这是第一个管脚
Name    填入或者拷贝黏贴过来,管脚的名字,VBAT
Type    类型选择电源Power,这个管脚是电池供电管脚
Pin Visible 选中,不然,将来你的元器件图,看不到这个管脚的
Shape 选择Line即可

92055

按照手册说明,填写其他部分,记住,在Section 部分,最好填写上A,不然,最后保存可能会出错,
这时候,不能点取消,只能保存。否则,你的工作就白做了。我画的时候就没填写。会出先警告。

然后双击保存之后的元件,
我忘记填写Section部分,结果,出现了一个意外的长线,选中,删除掉意外出现的这条长线,然后放大。
这时候,你就看到的这个元件了。

92056

这就是经过调整之后的我们的MCU 器件,STM32F051R8

92057

wangkj 2012年11月02日
我们这个元件的的管脚排列方法和原厂的器件不一直,我们用鼠标拉动管脚调整一下。
其实,管脚的号码能对上就是正确的,只是看比起来不一样而已。都是正确的。
我们主要是考虑和原厂尽量一致。

其实,我们做原理图的时候,经常把管脚分类放置,比如,电源部分,输入部分,输出部分等等。


这个风格问题,各有个的好处。一般来讲,跟原厂一致最好,这样,能让让看到你原理图的,
能和原厂的尽量对比一下,尽快掌握,减少困惑。

92181

现在,在控制窗口中,选择10_Mcu/PAGE1,
鼠标双击选中之后,选择 原理图程序的菜单的  Place / Part

也可以直接按键盘上的字母P,这是快捷放置功能。

92182

右面出现的对话框中,选择 我们刚才制作的这个元件,
STM32F051
双击之后,点击MCU PAGE1窗口,
记住,点一次就行,
然后鼠标右键单击或者按ESC键,完成放置。
否则你将连续放置相同器件。如果放多了,没关系,选中删掉就是了。

92183

92184

wangkj 2012年11月02日
好像少点什么?
器件的编号没显示!
这应该是器件编号部分显示属性问题,
我们鼠标右键点击这个器件选择Edit Part

92185

在出现的器件属性编辑窗中,
选择Option/Part Properities

92186

选中Part Reference ,
点击Display
果然是其属性为 Do Not Display
选中Value Only
点击OK

92187

之后出现器件更新提醒窗口,选择Update Current或者Update All都可以,
因为我们这个原理图中只有这一个器件更新那个都一样。
如果有多个器件,就根据情况而定了。
一般而言,尽量别用同一个器件不同改版,这是会增加潜在错误的风险,不要对付。
如果对付的,将来可能会付出代价。

92188

wangkj 2012年11月02日
下面这个提示窗,是告诉你,你的更新会保存,别后悔。
我们的改动我们确认是正确的,点击是。

92189

下面这个提示窗,是告诉你,你的更新会保存,别后悔。
我们的改动我们确认是正确的,点击是。

92190

后面的警告继续告诉你,想UNDO都不可能,别后悔啊。
选择Yes

92191


默认的标识符太小了,我们双击这个字符串,改变他的大小到你希望的样子,我比较喜欢大一点的,醒目
wangkj 2012年11月02日
参照我们以前贴的官方原理图,补齐其他部分,
我们先画元件部分,先补齐元器件。
首先增加电阻。
在Place/Part窗口中,点击打开search for part

92192

电阻英文名称以res开头,所以,
器件名称也应该是包含res字符串,我们
填入*res*,然后点击望远镜图标开始搜索。
我们从搜到的结果中,选择最可能的一个,如果选中没有我们需要的器件,重复上述过程,直到找到。
如果确实没有,那么我们之后按住我们刚才讲的办法,自己做器件了
我选中的这个含义是:电阻/无源器件库

92193

点击ADD之后,这个器件和库随之出现在上面的Part和Libraries窗口中。
在Part List窗口,可以,用键盘的上下键,快速翻阅这个库中的所有器件。
选择你认为最适合的,双击之后点击MCU窗口,每次在Mcu窗口的单击,都放置一次器件
直到按ESC或者鼠标左键选择End Mode结束放置。

92194

wangkj 2012年11月02日
放置电容的时候,在part输入cap则出现了cap开头的几个器件,选择合适的放入电路图。
CAP NP是可以当作无极性电容放置,CAP POL当作有极性电容。我们分别放入原理图。
如果不知道元件的英文缩写,去dict.cn或者其他电子词典查找,或者挨个元器件翻找把。
这个库中,大部分常用器件都有。
如果这个库没有,就只好到Libraries中多次添加库,然后在找。实在没有,只能按照我们刚才说的,自己去做。

92195

92196

做视频跟做这个一样,如果那位兄弟想做视频,看着我的帖子做一遍,讲一边,就是视频
可以成名哦。
这是刚才我们做的成果,放到论坛保留一份。

92197




wangkj 2012年11月02日
先放置电源和地,点击原理图页面,按P键或选择菜单的place / part,
在右侧的边栏选择放置电源和地的快捷功能,

92198

鼠标放在这些图标上不动,几秒后,会有功能提示。所有的快捷工具栏都有这个功能。
这也是一个技巧
如果不清楚那个电源,那个是地,可以用这种方法找出来。其实图标也很清楚,应该换容易找到。

这就是我们放置的电源和地,点击这个元件上面的字符串,可以改名。
GND没有字符串,咋办
鼠标右键点击GND器件,选择 edit properties
在出现的对话框中,双击左面那个空白小方格,切换编辑状态。(不切换也能编辑)
选择 Name 中的GND_single
点击上面的Display,把显示属性改为Value only

92199

92200

92201


wangkj 2012年11月02日
双击这些出现的字符串,可以改成希望的名称。
仔细看厂家的原理图,他们的模拟电源和地没有区分,那我们也就做成一个。
这样做,只是精度不高而已。也能用。
一般就来讲,高精度的场合,电源模拟数字要良好区分。
我们没有必要都改,改好两个,复制就可以了,删掉不需要的另外两个,省的造成混乱。

92202

点击 add library,增加一个connector库,选择Jumper器件

92203

用Discrete库,增加一个晶振器件。这个器件的英文名称就是晶振的意思。

92204

wangkj 2012年11月02日
现在,电阻,电容,电源,地,晶振,LED,复位开关我们这些官方原理图MCU这部分
用到的器件种类没动都找好了,复位开关我没找到合适的,用了一个2x2的跳线元件替代。
管脚对,能和pcb图封装管脚对上,就能用。

92205

我们的最新成果上传

92207

我们先放置电源和地,
尽量和原厂的板子保持一致,我们的电源也改名叫VDD,名称无所谓,一致就好。
按住CTRL键拖动电源器件,就能不断复制。
省的重复放置,复制操作起来更简单,还不容易出错。
毕竟我们这几个器件有些属性被我们改掉了,库中的器件,属性没改变。如果直接从
库中调用出来,忘了改属性,就会出现网表不一致的问题,原理图看起来正确,
单没准电源和地是分离的。如果做原理图和pcb的是两拨人,很可能到最后产品回来还不能
发现。最终调试的时候,莫名其妙的错误出现了,费了好大功夫,才可能发现这个小问题。

所以,尽量从同一个器件拷贝黏贴,是防止这种低级常见错误的一个好办法。
是先按住ctrl再用鼠标拖动器件完成拷贝黏贴的。
选择器件,鼠标右键点击,可以选择旋转这个器件。
注意,图中的标注框,是用place recentangne功能放置的,不要用place  wire 之类,那是布线用的。

这是放置各种元件之后的图,没有改动元件标注,也没有连线,应该算是个草稿吧。

92206

wangkj 2012年11月02日
这是原理图的原图,跟上面那个图片一致,尽量自己完成,多练习。

92210

这页原理图还缺很重要的一项:跨页连接端口。
这种端口,使得网络连线能够跨页面连接,
不用这种端口的网络连线,只能连接本页的同样网络名称的管脚。
用这种功能能实现网页间管脚的连接。
我们现在看官方原理图的第一页,第三页,这两页的管脚就是通过跨页连接端口实现连接的。
第一页的中间那个图,排解的很规律,实际上那个方框可以要也可以不要,只是个示意图作用。
重要的跨页连接端口。
从这张图上可以看出,
PA0..PA15
PB0..PB15
PC0..PC15
PD2
PF0..PF7
MC0
VBAT,BOOT0,NRST
都是跨页连接的。

92208

这页原理图还缺很重要的一项:跨页连接端口。
这种端口,使得网络连线能够跨页面连接,
不用这种端口的网络连线,只能连接本页的同样网络名称的管脚。
用这种功能能实现网页间管脚的连接。
我们现在看官方原理图的第一页,第三页,这两页的管脚就是通过跨页连接端口实现连接的。
第一页的中间那个图,排解的很规律,实际上那个方框可以要也可以不要,只是个示意图作用。
重要的跨页连接端口。
从这张图上可以看出,
PA0..PA15
PB0..PB15
PC0..PC15
PD2
PF0..PF7
MC0
VBAT,BOOT0,NRST
都是跨页连接的。

92209
wangkj 2012年11月02日
从我们的原理图上,选择控制窗口中的PAGE3_MAIN,
鼠标单击, Intef*ce 模块,别双击,
从菜单中,选择Place/Hierarchical Pin ...

92211

再出现的防止层次图管脚对话框中,输入
Name PA  表示一共16个管脚,从PA0到PA15
Type 选择 Bidirectional
Width 选择 BUS   16个管脚,肯定是总线了。
点击OK

官方原理图的这页,是外围管脚连接器,不是MCU,不要误会中间那个DIP封装的样子,
那只是个示意图,不是集成电路的意思。只是把跨页连接管脚放到一起,比较明显而已。

92212

点击确认之后,放置我们的这个层次图管脚。

92213

wangkj 2012年11月02日
按照上面的方法,放置PB,PC,PF层次图管脚,
一定要选中Interf_ace层次图模块,才能放置,
allegro的菜单是功能相关的,动态调整。

92214

现在我们放置PD2,这是一个管脚,不是总线,
所以,我们的Width选择scaler。
这个管脚,官方的数据手册是双向io,我们还是用双向Io吧

92215

同样放置MCO,VBAT,BOOT0,NRST
注意Type类型设置,先跟官方原理图一致,如果后面有问题再改。
毕竟,我们用的是allegro,个他那个画图软件细节上不会完全一样。

92216

92217

92218


wangkj 2012年11月02日
同样,在MCU模块放置这些层次图管脚,不过,
注意输入输出方向问题,另外一边输入,这边就是输出。
反正依然。如果是双向的,一般这边也是双向。

92219

92220

选中MCU 功能模块,鼠标右键点击,选择 synchronize down
把你的管脚同步到你的功能页面,
现在你的MCU页面,这些跨页管脚也出现了。

92221

92222

92223

wangkj 2012年11月02日
现在,我们返回到PAGE3_MAIN 窗口页面,
从右侧的工具栏,选择 Place Bus放置总线功能,
把PA,PB,PF三条总线,
哦,我们把PC忘了,调整一下位置,把PC及其总线也补上。

92224

这个补上来的PC,可以放到任意位置,没关系的。
我是为了好看,才这样调整的。
补齐之后重新synchronize down 一下,PC管脚也就同步下去了。

92225

用plcace wire功能,把PD2,MCO,VBAT,BOOT0,NRST连起来。
可以用快捷菜单,也可以直接按键盘上的W键快捷方式。

92226

92227

wangkj 2012年11月02日
按N键或者从快捷菜单,选择Place net alaies,
添加总线网络名。
在出现的窗口中填写PA

92228

92229

同样添加其他几个连线的网络名。

92230

wangkj 2012年11月02日
全部选中这些总线,然后,鼠标选择copy,这用ctrl+c 键拷贝这些连线。
然后选中MCU模块,选择synchoronize down快速跳转到MCU页面。
ctrl+v或者用鼠标功能黏贴这些连线。
省的在MCU页面中手工输入,减少错误的几率。
注意,MCO是在页面的右面,拉过来。
手动调整这些跨页链接端口和网络连线。
放到什么位置不重要,只有有,就能表达出这些网络线是跨页连接的。

92231

现在,MCU这页需要的材料我们都基本齐全了,如果有遗漏,我们后面再补。
我们开始把这页上面的器件连接起来了。
保存文件,压缩,上传网络。多保留一个备份。

92233

现在我们根据厂家原理图第三页MCU部分的网络标号设置
连接我们的原理图的网络标号以及器件之间连线。

92232

wangkj 2012年11月02日
由于跨页网络端口的存在,我们直接用网络名就可以了,
没必要重复使用网络端口标志。
这样就能做到跨页网络连接。这是画出来的部分图。
明天继续。

92234

92235

按照我们以前提供的方法,按照厂家开发板的样子,完成这个原理图。

92236


wangkj 2012年11月06日
这就是那份图,图片形式,上面的元件编号还没改。

92491

我们先不管元件编号型号这些细节问题,我们先做好总体框架,然后再统一修改这些细节。
现在MCU部分已经差不多了,我们现在制作接口部分的原理图。
双击PAGE3_MAIN,选中Intef_ace模块图,选中网络总线,复制,
然后
鼠标右键选择synchronize down功能。

92492

调整和连接跨页连接端口和网络表
的位置,我一般放到左上角。
这个没有什么特殊要求,比较明显就好。

92493


wangkj 2012年11月06日
我们现在分析官方开发板的st-link部分电路,
其开发板说明,DM00050135.pdf  14页有如下文字。
4.2 Embedded ST-LINK/V2
The ST-LINK/V2 programming and debugging tool is integrated on the STM32F0DISCOVERY. The embedded ST-LINK/V2 can be used in 2 different ways according to the jumper states (see Table 3):
●Program/debug the MCU on board,
●Program/debug an MCU in an external application board using a cable connected to SWD connector CN3.
The embedded ST-LINK/V2 supports only SWD for STM32 devices. For information about debugging and programming features refer to user manual UM1075 (ST-LINK/V2 in-circuit debugger/programmer for STM8 and STM32) which describes in detail all the ST-LINK/V2 features.
注意这句:
supports only SWD for STM32 devices
这说明,他的仿真器只支持swd模式,不支持jtag

15页的开发板cn2的跳线说明部分,
说明这个跳线的作用仅仅就是把cn2的12,34连接或者不连接。

92494

为了大家阅读方面,我把这个说明书,再次放到附件中,以前的放过。

92496

从官方原理图mb1034.pdf第二页,st link这部分分析,
搜T_JTCK等网络标号和分析cn3,cn2,和u2以及相关跳线之间的联系,
可以看出,cn3可以当做st-link调试其他班子的接口。这个cn3是stm32f103这个元件提供st-link功能接口的。
同时这个cn3的信号通过跳线,连接到我们的stm32f0mcu部分进行调试。其连接管脚是PA14,PA13,NRST,PB3

如果我们把st-link这部分原理图画上,是个好办法,也能充分利用pcb上的空间,毕竟厂家的
开发板这部分空间是够的。但对于初学者而言,就会增加更多的困难。

所以,我们简化这个设计,这部分的主要电路不用,我们留下CN3接口,
但这次这个接口不是对外提供st-link功能,而是接受外面的st-link信号,
如果谁需要st-link调试,可以购买st-link调试器进行调试。

我们改成串口烧程序和调试。

92495

wangkj 2012年11月06日
按照以前的的办法,我没在15_inte**c/Page1的原理图页面增加一个6排针。
不过我画的排针方向跟官方原理图相反,
其实方向一点关系没有,只是我表示跟官方的cn3接口目的不同而已。

92497

连接方式,是通过上面的分析得到的,如果不理解,
或者没想明白,这部分可以跳过,等整个教程学好只好
反过头来,再分析,可能会更容易明白。

注意,VDD,GND是从MCU页面拷贝过来的。
能拷贝尽量拷贝,如果重新添加,可能会弄错。
因为我们改了这两个部件的默认属性。
如果添加的话,注意其属性也要改的跟我们以前改的一样。
在以后工作中,这点也特别注意。
尤其是多人协同工作,你改了某个器件的属性,一定要显示说明。
比如,这个vcc,gnd可以他他们隐藏的电源网络显示出来。

92498

还有一个细节,如果元件跟网络连线连接显示**!不能连接,可以先放下这个器件,
然后用wire功能连接就可以了。这个功能可能是防止你错误连接网络,防止可能潜在的失误而设计的。
这是完成后的我们的CN3连接器。暂时我们还先不改名,还先叫做J1吧。以后统一改。

92499

wangkj 2012年11月06日
现在,按照官方原理图,MB1034.pdf第一页,画上两个外围接口连接器。
对应的厂家原理图的元器件编号是P1,P2

92500

现在我们增加两个33针的排针。
开始画两个连接器,
3V那个电源元件,可以把VDD拷贝过来,改名成3V。
3v,5v,vdd这是3个不同的电源网络,不要混淆了。

这是我们的连接管脚,跟厂家的一样。

92501

现在,还有一个重要部件,就是串口。
我们既然不用j-link,st-link,必须得有一个烧写程序的途径。
我们是开发板,得能在线烧录,而且,还得有调试程序信息反馈的途径。
一般来讲,这种途径就是串口。
我们现在的电脑,很少有串口了,但usb是几乎没有电脑没有。
所以,我们选择串口。这个arm是支持串口烧程序的。
这样我们最好的办法就是usb串口。
我们可以用现成的usb线,板子上接232串口芯片,
但这样成本比较高,ttl-232是一个芯片,usb串口还需要另外买。
所以,我们希望有一个直接usb转ttl的芯片或者小板子。

这时候,最好的市场调查网站来了:淘宝

usb串口线大概4-20块钱,usb-ttl小板子,大概10-20块钱
然后查usb ttl芯片,找到了几种,
但发现pl2303hx用量最大。然后查这种,确实用量大。价格大概1-2块钱。
然后问用过的朋友,说差不多。
这样,我们就确认用这个片子了。
然后就是从baidu或者google差资料。还有从朋友要要资料。
明天就可以按照这份资料,把这个器件做好。

92503

92502


xclfang 2012年11月07日
学习了  谢谢!!
2805101015 2012年11月14日
太厉害了,学习
shanshuiliu 2012年11月21日
继续关注楼主更新帖子
wangkj 2012年12月10日
这是制作过程的视频

http://v.youku.com/v_show/id_XNDcyNjQ2Mjcy.html

wangkj 2012年12月10日
PL2303的datasheet可以看出,你需要它tx,rx的电压为3.3V,那么你就在第4脚VDD_325输入3.3V的电压,如果需要的电压为2.5V,那么你就输入2.5V。

这个芯片本身内部带了一个LD0,在17脚VO-33有个3.3V的输出,正常提供的电流是20MA,你可以把这两个脚直接连接起来。这个管脚驱动能力有限,不要试图给大电流的设备供电。

如果你想.稳定性更高点,可以对地加个10uf的电容,同时加个LD0单独供电。.一般来说是没有必要。
wangkj 2012年12月10日
另外两份参考图

95617

95618
wangkj 2012年12月10日
一个单片机和pl2303的连接图。不过,他的DP引脚似乎少了上拉。

95619

95620



wangkj 2012年12月10日
12M晶振的两个负载电容可以不要,要的话一般取5-15pf;LD-M(23P)管脚必须接220K的电阻拉高或拉低:拉高为芯片配置可带500MA负载(重载),拉低为可带100MA负载(轻载)。TRI_M(22P)管脚以一个4.7-10K的上拉电阻,将芯片配置为通信挂起期间停止输出。DP和DM管脚和USB接口的连接要越短越好,布线时两线尽量相互靠近且长度要一致,两个限流电阻取值可在10-56欧姆选择。DP线上的上拉3.3V的电阻取值1.5k,这是USB接口协议的要求和标准,作用是告诉主机,有器件连接而且是高速器件。EE_DATA(14P)管脚上拉4.7k-10k的电阻,避免IO口噪声干扰。

PL-2303HX芯片货源型号混乱,如果您的开发项目里需要USB转UART电路,建议使用可靠途径得到的芯片。

95622

wangkj 2012年12月10日
找到的一个最简单的连接电路

95623

wangkj 2012年12月10日
stm32,stm8选型表,2012

95624

wangkj 2012年12月10日
最新的原理图

95625

wangkj 2012年12月10日
这是补画PL2303其他部分的录像

http://v.youku.com/v_show/id_XNDczNzY5NTI4.html

wangkj 2012年12月10日
现在我们这个原理图,缺的就是电源部分,参考和查找厂家的电源部分的原理图,
我们决定改动。
用我以前经常用过的有把握的最常用的部件替换,这也是提高可靠性和通用性降低成本的办法。
这次,我们不是直接画,而是更简单的办法:拷贝。
用这种办法,可以极大加速我们的工作速度。
拷贝的源头可以是我们自己以前画的图,厂家提供的或者从别人要过来的类似的图。
但拷贝的时候,一定要特别注意电源和地,还有就是封装是否正确。
wangkj 2012年12月10日
增加电源部分

95626

wangkj 2012年12月10日
先打开我们自己的原理图的电源部分。
这部分是空的。

95627

wangkj 2012年12月10日
再打开我们原来的原理图

95629

95630

95631
wangkj 2012年12月10日
选中我们需要拷贝的部分,按ctrl+c

95632

这是选中之后的效果

95633

wangkj 2012年12月10日
在我们自己打原理图图上按ctrl+v,找到合适的位置放下

95634

95635

wangkj 2012年12月10日
同样,把usb部分也拷贝过来

95636



wangkj 2012年12月10日
注意,把新拷贝进来的图的电源,地去掉,换上我们这个图的。
同时,把usb接口挪到inte**ce部分,这次用ctrl+x,ctrl+v操作。

95638

wangkj 2012年12月10日
用拷贝粘贴的办法,增加allegro原理图中的电源部分,
视频讲解

http://v.youku.com/v_show/id_XNDc0MDAyOTky.html

wangkj 2012年12月10日
原理图中,该有的都有了,但是,元器件数值型号封装这些详细信息还没有,
现在我们补充这些信息。
我们从以前做过的原理图中拷贝已经验证正确的一些信息。
我们同时打开两个工程文件。
从已经成熟原理图中,拷贝那些信息。
wangkj 2012年12月10日
先打开我们自己的原理图

95639

wangkj 2012年12月10日
再打开一份以前的我自己做过的原理图
这份以前的原理图,我上传到附件中了,请下载后,打开。
这完全是我个人作品,可以放心使用。

95640

95641


wangkj 2012年12月10日
两份原理图同时打开

95642

wangkj 2012年12月10日
双击选中电阻参数,
修改电阻阻值,跟官方开发板一致

95643

wangkj 2012年12月10日
在Tools->Annotate菜单中,复位原理图器件编号。

95644

95645

wangkj 2012年12月10日
按照厂家原理图,修改的一样。
这是为了跟厂家的开发板对比,这样做,只是为了方便对比。
不一致,也完全没关系。线路板照常工作。

95646

一般我把不需要焊接的原件的数值,都加上xx标志,比如,
6.8pf电容,预留但不焊接,我就标上,6.8xx,这样,将来
提供的焊料清单,就非常清楚。
如果在一个公司中,做好这种约定,就成为了流程的一个部分。

95647

wangkj 2012年12月10日
我们的Mcu,U3没有器件型号,这应该是元件属性设置上没显示,
鼠标右键点击,u3,选择Edit Properties

95648

选中Value,点击Display,把Value Only选中即可显示。

95649

wangkj 2012年12月10日
如果觉得字体小,可以双击这个字符串,选中Change按钮,选择合适的字体。

95650

逐个对比厂家和我们的原理图,把器件标号尽量做到一致之后,
就开始填元器件的封装特性(pcb footprint),这是原理图和PCB对应的最重要的关系,
还有一个网表,以后我们会讲到。

我们这次还是用拷贝粘贴的办法,用我们原来已有的图的pcb footrpint填写到我们的图上。
我们先改电阻,打开我们原来的原理图,找到任意一个页面的电阻,双击之后,找到他的pcb footprint的属性。

95651

95652

95653

95654

wangkj 2012年12月10日
然后,在我们的现在做的这份原理图的所有电阻上双击,然后再pcb footprint中填写刚才用ctrl+c拷贝过来的封装类型。

95656

我们其他元器件,都这样处理。填上所有的pcb footprint

wangkj 2012年12月10日
练习的时候,可以用我这份做好的图中封装类型拷贝到你的pcb footprint,
要认真做。
所有的pcb footprint完成之后,
未分配器件编号的,用菜单中的tools,annotate添加器件编号。

95657

95658

wangkj 2012年12月10日
注意,Incremental reference update和add intersheet references都要做,总共做两次。
wangkj 2012年12月10日
然后做错误检查,
在tools->Design Rules check,先按照默认方式检查。

95659

直接点击确认进行检查

95660

wangkj 2012年12月10日
根据seesion log中的提示信息,修正错误和警告。
这种检查,能最大程度的减少失误的可能。
在这种交互工程中,可能需要调整ERC matrix图,配合我们的检查。
这个过程比较繁琐需要细心,来回反复,不要马虎,这样才能尽量避免将来可能出现的错误。

95661

这是DRC矩阵图的默认状态,根据需要调整。

95662

wangkj 2012年12月10日
最终,我们跟pcb交互的是一个网表,
通过菜单Tools->Create Netlist建立

95663

在这个过程中,也可能会出现错误,根据提示改正这些错误。
如果有问题,可以用很多种方式联系我们。

95664

wangkj 2012年12月10日
这是我刚才讲解的视频材料,视频网很不清楚,高清视频我找到空间后免费提供。
同时,做出来的原理图文件,我也再次传上来一份,方便大家查看。

http://v.youku.com/v_show/id_XNDc0NjA0NjY4.html

http://v.youku.com/v_show/id_XNDc0NjMwMTAw.html

95665
wangkj 2012年12月10日
原理图做完了,现在我们开始做pcb,
在做pcb的过程中,调整原理图的连线。

但对于多人协作的工程项目,这个就比较麻烦,
一般原理图做完,就很难改动了。

优点是符合协作精神,工作各有分工,
缺点是不能做到最优化。

不同的项目,不同的做法,优缺点各有取舍。根据实际的项目决定。
wangkj 2012年12月10日
官方开发板的gerber文件下载地址。

95666

wangkj 2012年12月10日
这是看gerber文件的两个程序,
两个文件都需要下载,然后解压缩所有的文件到同一个目录中。
然后运行cam95。

95667

95668

wangkj 2012年12月10日
另外一个常用的gerber工具。这三个工具,大家根据自己打喜好选用。
都可以下载之后试试看。

95671

95672

wangkj 2012年12月10日
厂家的DM00050135.pdf中,有关于这个板子的详细描述,

这是第36页的机械尺寸图,这是一个很重要的参考。

95673

95674

wangkj 2012年12月10日
运行camnt95.exe

95676

导入我们刚才下载解压缩的厂家gerber文件

95677

wangkj 2012年12月10日
找到这些gerber文件后,打开

95678

这些文件就是我们从厂家网站,或者从我们以前的帖子中的附件中下载解压缩之后的厂家gerber 文件。

wangkj 2012年12月10日
这就是导入的厂家gerber图,这就是制作pcb的依据。

95679

如果需要显示第一层,我们选中第一层,然后点击All off就去掉了其他层的显示。

95680


wangkj 2012年12月10日
我们按+号键放大,可以看出,这层是顶层或者底层的覆铜层,叫做TOP,BUTTOM层。

95681

同样,选中蓝色层,编号8的第二层,可以看出,这是底层丝印。
选中8,点击All off,Redraw之后的效果。
这些讲解,理解不理解没关系,记住就行,以后我们做pcb的过程中,会有更详细的讲解。
做完pcb就会对这些有更深入的理解了。

95682

wangkj 2012年12月10日
如果需要打印这些不同层的gerber图
从File/Print/菜单中选择打印。
Print display是打印当前屏幕上显示的图,
print是选择打印所有的当前显示出来的层的图。
如果大家对这个不太明白,可以安装一个pdf打印机,试试看。

95683

如果需要打印这些不同层的gerber图
从File/Print/菜单中选择打印。
Print display是打印当前屏幕上显示的图,
print是选择打印所有的当前显示出来的层的图。
如果大家对这个不太明白,可以安装一个pdf打印机,试试看。

95684

wangkj 2012年12月10日
选择pdf打印机,节省纸张。绿色环保。

95685

打印

95686

wangkj 2012年12月10日
这就是我们打印出来的演示图片

95687

wangkj 2012年12月10日
cam350默认的的测量单位是mil,厂家给的是mm,我们改变它的默认单位为mm

95688

95689


wangkj 2012年12月10日
我们选择All on,Redraw显示gerber图的所有层,
测量两个排针之间的距离,
菜单中选择info,Mesusre,Point-point,

95777

用+-号键,缩放我们的图,找到排针的第一个引脚,
用V切换gride是否显示,
用S切换是否锁定鼠标到gride,
尽量准确到找到排针的第一脚。
光标放到中间按下,然后按-号键缩小图片显示。
找到另外一个排针的第一引脚,
同样处理。

95776

wangkj 2012年12月10日
左上角能看到我们的测量结果,38.131跟厂家的38.10差不多。
这说明厂家的提供的参考图跟gerber图一致。
如果有厂家开发板的话,最好用卡尺量一下,多方确认。
我以前吃过亏,厂家提供的图,跟他的实际开发板有一点差异,
造成了一些麻烦。
国外的板子一致性还好,一般没错,国内的,盗版横行,开发板制作
者,很多时候,诚心在发布的图中埋一些地雷,防止盗版。小心一点吧。
这是用Cam350查看gerber文件的对应的视频教程

http://v.youku.com/v_show/id_XNDc1OTY3MzY0.html

95778

wangkj 2012年12月10日
这是我经常用到的一些Allegro的封装库,
请下载这个封装库到你的本地硬盘。
后面我会讲到如何使用这个库。
我们做的这个原理图,很多封装,都是用的这个库里面的。

95779

95780



wangkj 2012年12月11日
双击打开我们的线路板制作软件

95852

选择第一个就行

95853

file->new

95854

wangkj 2012年12月11日
选择 board wizard,点击browse

95855

在我们原来原理图目录中创建新的目录
这样做是为了把原理图,pcb图不同种类的文件分开,
将来好找。

95856

目录名是PCB

95857

wangkj 2012年12月11日
点击pcb目录名,进入这个目录,我们的pcb的文件名叫做stm32f051,点击打开

95858

回到原来的窗口,点击ok

95859

点击next,在parameters步骤,选择millimeter,毫米。
我们参考的图是mm,保持一致。
然后继续点next

95860


wangkj 2012年12月11日
Grid space填写0.01,保证我们精度。

95861

我们的pcb是双层的这里不用更改,如果做多层板的话,可以增加层数。这是插图:

95862

线线间距等全部是0.2mm,8mil
这对于大部分制版厂来讲,很容易做成功,
对于我们布线来讲,也比较宽裕。这是一个折中。

如果是高精度线路板,用更小的线也没问题,但记住,
所有的数值最好保持一致,这样EMC比较好。这是一个原则。

95863

wangkj 2012年12月11日
点击via之后,选择默认的via。我们以后改更符合我们要求的过孔(via)

95864

记得这里板子选成长方形(rectangular board)的,默认的是圆形(circular board)。这个似乎有点不合常规,一般的做板子很少做成圆形的。做成圆形,pcb常因为也按照方形计算,亏大了。

95865

填写板子的长Width和宽Height,单位是mm,制版厂是cm计算的。
布线和板子边缘距离Route Keepin distance是2mm
器件和板子边缘距离package keepin distace是2mm

这是一个常用规则,保证线路板上的原件以及线不和
机箱等外部物件发生某种意外接触。

95866

wangkj 2012年12月12日
点击 finish完成我们的设置。

95891

用缩放快捷键,可以全屏放大我们的板子。
用测量工具验证我们画的尺寸是否正确。

95892

95893

wangkj 2012年12月12日
这是对应视频教程

http://v.youku.com/v_show/id_XNDc1OTczMjg4.html

wangkj 2012年12月12日
我们现在的原理图是在\stm32f0目录下,我们把原理图相关的都放到dsn中,
让目录更清楚。

95894

变成这个样子,很清楚喔

95895

wangkj 2012年12月12日
目录整理的视频

http://v.youku.com/v_show/id_XNDc1OTczNDAw.html

wangkj 2012年12月12日
下载这两个库文件,如果以前下载过,无需重新下载。

95897
95896


wangkj 2012年12月12日
解压缩pcb_lib到我们的\stm32f0目录中的pcb_lib目录

95898

所有的器件封装库文件都在c:\stm32f0\pcb_lib下面,不是C:\stm32f0\pcb_lib\pcb_lib下面。
压缩文件中,已经有目录,直接解压缩到C:\stm32f0,就直接放到了c:\stm32f0\pcb_lib下面
如果弄错目录的话,请把文件挪动到正确位置。

95899

wangkj 2012年12月12日
把下载的pcb封装库,原封不动的拷贝的系统的pcb封装库中\cadence\share\pcb\pcb_lib

95900

这是对应的视频教程

http://v.youku.com/v_show/id_XNDc1OTc1Njky.html

wangkj 2012年12月12日
现在我们开始讲如何把原理图中的器件导入到pcb中。

我们使用的很多器件,都是别人推荐或者看别人的板子上用过的。
但器件太多,软件部可能都把封装收录。
如果我们有厂家的pcb或者别人的pcb原图,我们就可以把这个封装导入到我们封装库中。
而且,通过这种导入,可以不断扩大我们的封装库。这也是一种设计重用的办法。
首先,先打开别人的pcb图。
file->open 打开原有的pcb图

95901

wangkj 2012年12月12日
打开后,file->export->libraries

95902

一定要把no library dependens点上,否则有可能你导出的封装可能还是不能用。

95903


wangkj 2012年12月12日
点击 export to directory 边上的 ... 按钮,选择导出的目录

95904

这就是我们导出的pcb封装,包括焊盘,过孔等。

95905

wangkj 2012年12月12日
全部拷贝到系统的pcb封装库中。

95906

file->open打开我们自己的pcb文件

95907

wangkj 2012年12月12日
把我们的pcb图放大到整个窗口

95908

导入原理图网表
file -> Import->Logic

95909

wangkj 2012年12月12日
选择 Design entry CIS,
在import directory 选择我们以前生成的原理图网表,C:\stm32f0\dsn\allegro。
然后点击Improt cadence

95910

仔细检查导入结果,修正潜在的错误。

95911

wangkj 2012年12月12日
用 Place->Manually 放置器件,如图

95912

这是放置B1开关其他器件类似放置。

95913

wangkj 2012年12月12日
对于不存在的元件封装,P1,P2我们有wizard的办法很快可以完成。
首先,我们确认p1,p1的焊盘过孔名称。
选择Place->Manually

95914

注意,选择advanced settings,
选中Library,这个必须选中。这样才能直接从库里,而不是限定只能从网表中放置元件。

95915

wangkj 2012年12月12日
在 Placement List中选择,Package symbols,放置库中的元件。

95916

放置 类似的JP_100_1X20
我们将来生成的P1,P2是JP_100_1X33

95917

wangkj 2012年12月12日
放置好之后,鼠标右键单击,选择DONE,完成放置。

95918

点击i号选择信息,或者123测量

95919

wangkj 2012年12月12日
右侧操作对象选单,选择pin,我们要看的信息对象是管脚pin。
小图钉按钮可以锁定这个操作对象窗口。

95920

95921



wangkj 2012年12月12日
测量的管脚间距离是2.54mm

测量结果是2.54mm,最常用的排针间距

95922
95923


wangkj 2012年12月12日
点 i 管脚的信息是:CIR64D40
也就是,外铜直接64mil(1.5mm)内孔40mil(1mm)

95924

95925

95926

wangkj 2012年12月12日
同样,我们放置一个10单排针,看他的第一脚的信息。
因为,一般来讲,放置第一管脚为方形,容易识别。
第一脚方角的焊盘是SQR64D40

95927

现在开始在pcb元件封装,
File->New->选择 Package Symbol

95928

wangkj 2012年12月12日
选择 SIP 类型

95929

david-xia 2012年12月20日
谢谢分享!
lxpselxp 2012年12月27日
PCB设计业务采购交流群52727120
xzh88ok 2013年01月05日
望樓主持續更新~~~
xzh88ok 2013年01月06日
望樓主持續更新~~~
wangkj 2013年01月09日
点击 Load Template ,然后点击Next

97951
wangkj 2013年01月09日
单位换成mm

97952

wangkj 2013年01月09日
型号参考标号换成J*,
一般排针类都是J开头,集成电路是U开头
97953
wangkj 2013年01月09日

管脚数改成33,
Package Length D改成82.550
其他不动。

97955

wangkj 2013年01月09日
默认管脚焊盘类型是:cir64d40
第一管脚的焊盘类型:sqr64d40
这两个是我们刚才看到的类型。然后点击next.


97957
wangkj 2013年01月09日
默认的管脚原点选择第一脚,这样,我们放置的时候好控制。

97958

wangkj 2013年01月09日
存盘退出,把生成的器件封装拷贝到系统的封装库目录中。

97959

xzh88ok 2013年01月09日
感谢!
wangkj 2013年01月24日
重新导入原理图网表,错误消失了

98858

Place->Manuly 放置P1,P2,
鼠标右键单击,旋转平放

98859

wangkj 2013年01月24日
这段就是刚才讲的如何从原理图导入元器件和pcb元器件封装引导方式(wizard)制作视频教程

http://v.youku.com/v_show/id_XNDc1OTk3ODI0.html

wangkj 2013年01月24日
下面的内容讲解如何把P1,P2移动到合适的位置
菜单选择:
Edit->Move 选择 p1
然后根据厂家图纸计算出p1第一管脚放置的位置,移动到那个位置放下。

98860

中心点在图的圆心,注意移动的时候,右下角有坐标提示。按照那个提示放置P1,P2

98862

98863

98861

wangkj 2013年01月24日
这是放置P1,P2到合适位置的视频教程

http://v.youku.com/v_show/id_XNDc2MDAzMzY4.html

wangkj 2013年01月24日
下面的内容是讲放置其他器件和相关调整,包括调整显示层和颜色。
我们用Place-Manual放置的器件,里面似乎很乱,那是因为显示的内容多,我们点击颜色调整
按钮就行调整。

98864

98865

Stack-up的 TOP Bottom层,
               布线的上下层这个必须有。一般我喜欢上层换红色底层绿色,这个不换也没关系
Areas 的 pkg Ko
               package keepout 这个最好有。
Componets的 sickscreen_top sickscreen_bottom
              器件丝印层,这个选择Refdes就行了,其他别选,选多了会很乱
Package Geomery层的 sickscreen_top sickscreen_bottom
              封装的丝印层,这个底层底层也应该有,我一般换成上层**,底层白色,这个换不换都行。
              Place_bound_botton Place_bound_top层
             器件位置占用层,这个最好有,能比较明显的看出来,器件占用的空间位置。有利于布局
这些大家可以自己试验,点击下面的Apply直接能看到效果。

98866

98867

98868

98869

98870

wangkj 2013年01月24日
哈哈,干净多了吧?

98871

继续用Place -> manualy放置其他器件。

98872

wangkj 2013年01月24日
有一个技巧,就是我们可以把原理图打印成pdf文件,这样我们能打开pdf文件之后用
ctrl+F快速找到我们想放置的器件,看看这个器件的作用,然后决定我们放到哪里合适。
pdf打印机的安装我就不讲了,需要的可以到网上搜这方面的软件。
或者用Allegro的原理图软件也行,只是查起来没pdf文件快捷而已。

98873

98874

这是这部分放置器件和调整显示层以及颜色的视频教程,更加详细喔

http://v.youku.com/v_show/id_XNDc2MDE1NDg0.html

wangkj 2013年01月24日
我们检查器件和厂家的手册对比发现,是u4的Pl2303封装不对。
放置好器件,再次检查封装,应该成为一个良好的习惯,
不要太依赖系统的库,这个库不靠谱。不同的人,制造的元件,可能有那么0.1mm的误差
累计下来,将来你焊接的时候就非常麻烦。
我们在系统库中重新找接近的器件封装。
Place->Manualy 在Advanced Settings中,必须选中Library,回到Placement List,选择 Package symbols
我们的器件是28管脚的,在Selections filters中选择*28*,这样,所有包含28字符串的器件都会列出来了。
选择我们认为最接近的Tssop28,放置到我们的pcb图的空白处。

98875

对比厂家封装图要求,测量我们的元件封装,证明这个器件封装符合焊接要求。
没必要跟厂家推荐的完全1:1,只要符合焊接要求即可。

98876

wangkj 2013年01月24日
在原理图中找到这个元件u4,然后双击,修改他的PCB Footprint为Tssop28
然后重新在原理图中生成网表,在pcb图中导入网表,这我们以前讲过,这里就不重复了。

98877

放置元器件的时候,可以用滚轮的上下滚动放大缩小pcb视图
wangkj 2013年01月24日
这部分就是刚才我们放置器件和修改器件封装的视频教程。(019)

http://v.youku.com/v_show/id_XNDc2MDI0OTI0.html

wangkj 2013年01月24日
这部分是用我们以前讲到的技巧,调整元件布局,为我们后面的布线做准备。
这种调整,没有一定之规,一般来讲,调整的越合理,后面的布线越容易。
在后面的布线过程中,这也是需要不断调整的,有时候还需要配合调整原理图。
这种布线办法,只有原理图,pcb,甚至程序设计都是一个人的时候才能做到很
合理。
如果是多人合作设计,这几个人最好沟通比较好一些。
折中才能得到较好布线效果。

对于我们这种不是高频高密度的设计来讲,怎么做都能成,我们这样做的目的,就
是让学习者,能将来面对复杂设计。

http://v.youku.com/v_show/id_XNDc2MDM4OTk2.html

wangkj 2013年01月24日
还有另外一种改变布线的时候显示的颜色的办法,就是点击 visibility窗口的
对应颜色,然后选择你喜欢的色彩就可以了。

98878

如果在布线中,需要点亮某个管脚或者网络的话,选择 Display->Highlight
如果取消高亮选择 Dehighlit
选择之后,在右侧的操作对象栏,选择操作的对象,比如pin,sharp,lines等。

98879

wangkj 2013年01月24日
鼠标移动到目标上不动几秒,就会出现高亮的网络名称。
点击之后对应的网络就变成了高亮显示,这时候,布线就知道需要连接那些管脚,
做到不想方向心中有数。

98880

然后,点击左侧的布线快捷按钮,开始布线。

98881

wangkj 2013年01月24日
在右侧 optinons 操作对象 选择窗,输入布线宽度1.00mm,
我们这条布线是输入的电源,所以线宽粗一些。

98882

布线的时候,可能随时精细调整元件位置,
点击颜色按钮打开空间占用层

98883

98884
wangkj 2013年01月24日
仔细调整元件位置,找到我们认为最合适的摆放布局,
反复调整,之后的布线。要考虑为其他走线预留空间,
还有将来用户的使用方便性。

98885

下面这两段视频就是我们刚才的微调和布线过程。

http://v.youku.com/v_show/id_XNDgyNzEyNTI0.html
021_ALLEGRO_PCB_布线0001_颜色调整.FLV  

http://v.youku.com/v_show/id_XNDgyNzEwNDg0.html
021_ALLEGRO_PCB_布线0003_自定义转码_1280x720.FLV



wangkj 2013年01月24日
我们布线的时候,一般不会只有单面布线,
如果双面以上布线,肯定会有过孔,
不同要求的布线,用不同的孔。
下面的这段内容讲如何设置和使用不同的过孔,
在Setup->Constraints->Physical 中进入设置界面。

98886

拉动下面的滚动条,找到过孔设置。

98887

wangkj 2013年01月24日
点击原来的过孔,进入过孔设置界面

98888

左侧找到我们想使用的孔,然后点击,就会添加到右侧的过孔列表。
如果从过孔列表中删除,从列表中选择,然后点击remove。
过孔的排列优先顺序,可以用up/down选择。
最后,点击OK,完成过孔列表选择。

如图所示

98889

wangkj 2013年01月24日
这里显示的单位都是mil,除以40就是mm,
一般来讲,厂家的孔的制作能力,机械孔,0.3mm 12mil问题不大。
0.5mm 20mil一点没问题。
所以,尽量我们的孔用20mil以上的。
当然,如果是高精度不在乎钱的板子,做成0.15mm的激光孔,
布线4mil都没有问题。再小再细的话,只能问厂家了。
wangkj 2013年01月24日
如果allegro的菜单出现混乱,用view->Reset UI to Cadence Default恢复到默认状态。

98890

wangkj 2013年01月24日
删除过孔或者线的时候,点击删除,一定要在Option中选被删除的目标对象类型。
否则,有可能删不掉。
这是删除一个过孔的过程。

98892

98893

98894





wangkj 2013年01月24日
带过孔的布线,是选中布线功能,在option中选择需要的孔和设置需要的线宽,
然后点中需要布线的网络,需要过孔布线的板子的另外一面的时候,双击鼠标就能
自动添加过孔,同时,线颜色变化,也就是在板子另外一面布线了。

98895

98896

98897
wangkj 2013年01月24日
注意这两个左侧的按钮,一个是单线调整的,一个是一组线,自动平滑的。
学习的时候,点这两个按钮试试就知道了。这两个是最经常用的调整布线的工具。

98898

98899

wangkj 2013年01月24日
这就是我们辛辛苦苦画出来的板子,
已经能用了,但还不完善。没有覆铜,也没有调整丝印。

98900

wangkj 2013年01月24日
这些视频就是我们的布线过程,很多,慢慢看。里面讲的操作细节更多
这是过孔设置

http://v.youku.com/v_show/id_XNDgyNzA3NDIw.html
wangkj 2013年01月24日
继续布线
http://v.youku.com/v_show/id_XNDgyNzA1NTUy.html

wangkj 2013年01月24日
布线

http://v.youku.com/v_show/id_XNDgyNzAxNzUy.html

wangkj 2013年01月24日
布线
http://v.youku.com/v_show/id_XNDgyNjg5MzIw.html

wangkj 2013年01月24日
布线

http://v.youku.com/v_show/id_XNDgyNjYzOTQ0.html

wangkj 2013年01月24日
布线

http://v.youku.com/v_show/id_XNDgyNjY3NjUy.html

wangkj 2013年01月24日
布线

http://v.youku.com/v_show/id_XNDgyNTczMjIw.html

wangkj 2013年01月24日
下面的内容是布线后的覆铜处理。

点击 sharp -> Rectangular

98901

wangkj 2013年01月24日
Assign net name 网络名是地。
覆铜一般都是连通地层。

98902

wangkj 2013年01月24日
选择地网络信号

98904

wangkj 2013年01月24日
设置覆铜参数,默认的参数虽然能用,
但我觉得,距离管脚太近了。
点击 sharp -> Global Dynamic Params

98905

wangkj 2013年01月24日
Void controls 换成 rs274x,
这是最常用的一种格式,
我们后面的出片(gerber图)也用这种格式。


98906
wangkj 2013年01月24日
Clearance的前三个数值改成0.3mm

98907

wangkj 2013年01月24日
Thermal relief connects换成❀ 花焊盘
这种焊盘,适合线路板在恶劣条件下工作,
如果产生热胀冷缩,这些花中间的空白,会为这些膨胀收缩留下空间。
同时,如果由于某些原因,花焊盘中的某个管脚断掉了,只要一个连着,就能通。
我们的设置中,最先的连接数是2,也就是说,至少有两个连接才生效。
这是对地层而言的。注意我们其他信号线,尽量做到4,甚至8连通。
地线实际上早就连通了,所以,少点没关系。

98908

wangkj 2013年01月24日
开始覆铜
shape->Rectangular
点击左上角,别放开鼠标左键,
向下拉动,
这个过程,可以用鼠标滚轮放大缩小,
拉到右下角,松开鼠标。

98909

wangkj 2013年01月24日
切换成背面

98910

wangkj 2013年01月24日
底层的覆铜稍微多一点。
一般覆铜都这么做。

98911

wangkj 2013年01月24日
如果只看一面,可以点当前层,让其不显示,
就能看到另外一层,而不是被这层遮挡的层
这样,我们就能更好的看到我们的覆铜效果。

98912

98913

wangkj 2013年01月24日
覆铜会产生大量孤铜,就是和哪个网络都不连通的铜。
一般这种我们会去掉,如果不去掉,可能会影响信号的传输。

98914

xzh88ok 2013年01月24日
哥,太崇拜你了~~~~
xzh88ok 2013年01月24日
我要好好学习,感谢~~~~~~
wangkj 2013年01月25日
显示的白色的部分就是孤铜

98958

wangkj 2013年01月25日
点击这些小的没办法加过孔的孤铜,删掉。

98960

wangkj 2013年01月25日
这是删掉之后的样子,其他部分类似处理。

98961

wangkj 2013年01月25日
选择布线功能,双击或者选择鼠标右键的Add via功能,添加过孔。
过孔类型在options中选择。

98962

98963

98964

98965

98966

wangkj 2013年01月25日
这是经过我们反复调整之后的版图。

98969

wangkj 2013年01月25日
边缘上的过孔,和中间集成电路中间的过孔,
就是为了更好的地平面连贯性。
不要把孔排的太整齐,反而不好。
不要太密,也不要太稀疏。
wangkj 2013年01月25日
这是覆铜处理的视频教程

http://v.youku.com/v_show/id_XNDgyNTYxNTYw.html

http://v.youku.com/v_show/id_XNDgyNTQ5ODcy.html

wangkj 2013年01月25日
下面我们讲丝印的放置和修改
丝印对于手工小批量焊接非常重要,一定要清楚明了,如果很乱的话,焊接的时候,很难找到想找的器件。
wangkj 2013年01月25日
Edit->text
选择编辑文字,然后找到丝印层。

98971

操作层选择Package Geometry的Silkscreen_Top

98972

wangkj 2013年01月25日
关闭 顶层,底层 的铜层。

98973

关闭顶层覆铜的顶层底层之后,留下的就是丝印层,这样会看的非常清楚。
但是,实际印刷的时候,会受到线路层的过孔焊盘等的影响。粗调的时候,可以不看
铜层,但最终的精细效果还是需要看铜层的。

98974

wangkj 2013年01月25日
Edit->Change
选择 Ref Des的Silkscreen_Top
Line width 0.15 (6mil)这是丝印断了也无所谓,能看清就行,太粗的话会糊在一起看,不清楚。
Text block 3

98975

选中所有字符,调整统一大小。当然,也可以选择你想改变的字符,不选择不想改的字符。

98976

wangkj 2013年01月25日
Edit-> move
Find 操作对象栏,只选择Text
然后鼠标点击需要改变的 字符。

98977

98978

wangkj 2013年01月25日
比如选择C9,鼠标右键单击,选择Route,旋转到我们希望的方向。

98979

仔细调整所有的字符,不要覆盖器件。

98980

wangkj 2013年01月25日
打开顶层(铜层),移动那些影响焊盘,
还有在孔上的丝印。
如果在焊盘和孔上,将来板子做出来,这些位置就没字了。
焊接位置优先,毕竟焊接比丝印重要。
丝印错了自己找到位置就好,焊盘错了了,只能飞线了。

98981

这就是我们仔细调整丝印之后的最终结果。背面丝印类似调整,这个板子,我们背面,没有丝印。如果 的话类似处理。
注意,背面的字必须是看起来反的。回来之后,看着才是正的。

98982

wangkj 2013年01月25日
去掉表面的铜层看一下,很清晰吧。不过这里面有点小问题。线路板回来之后我才发现的。下个帖子说。细细看,你也能发现。

98983

就是这个位置。胆电容的正极符号,跟上面的丝印混一起了,板子回来之后,很难发现。
遗憾的艺术。http://cache.soso.com/img/img/e113.gif

98984

wangkj 2013年01月25日
这事顶层底层铜层都打开的效果。至此,我们的线路板设计就完工了。

98985

这事刚才讲丝印部分的视频教程 023_ALLEGRO_PCB_丝印.FLV

http://v.youku.com/v_show/id_XNDgyNTIzODY4.html

wangkj 2013年01月25日
我们新建一个叫做Gerber的子目录,把我们的最后生成的PCB文件拷贝一份到这个子目录中。
Gerber文件会生成很多文件,放到子目录中,让文件更清楚,更好找一些。

98986

wangkj 2013年01月25日
打开这个pcb图,然后再Manufacture菜单中选择Drill Legend,
我们设计的时候,单位就是mm,什么也不要动,直接点oK

98987

98988

wangkj 2013年01月25日
形成的是一个钻孔的统计表

98989

这是专门的钻孔数据层。点击I,选择这个图标可以看出来。
这层如果需要显示,或者其他用途,可以找到这层,让他显示出来。

98990

wangkj 2013年01月25日
出gerber图,如果按照我写的这些步骤做,是没有问题的。
如果不是特别明白gerber图各层的含义,不要省略这些步骤。
也不要跳过,老老实实做,不然,你出的板子弄错了,浪费钱财和时间。

98991

点击NC Drill中的NC Parameters按钮

98992

wangkj 2013年01月25日
点击Close

98993

回到NC Drill窗口,点击Drill

98994

wangkj 2013年01月25日
等待钻孔文件形成结束。关闭NC Drill窗口

98995

点击 Manufacture->Artwork...

98996

wangkj 2013年01月25日
默认的输出格式跟我们想要的不一致,点击确认,我们一会修改。

98997

98998

wangkj 2013年01月25日
修改Fromat 的
Interger places 5
Decimal  places 3

Interger places 5
Decimal  places 5

98999

Output units
改成我们正在使用的mm
如果你设计的pcb不是mm,就不要改了,
我们后面的很多单位都改成mm,因为我们开始设计这个板子的时候就用的mm.
如果开始用mil设计,就不要改mm 了。会引起取整截断误差。

99000

wangkj 2013年01月25日
其他部分没必要动。

99001

点击 Film Control ,切换设置窗口,
在Undefined line width中填写0.15,
我们的丝印层没定义宽度,这样设置,包括丝印在内的未定宽度的线,都是0.15mm,6mil了。

99002

wangkj 2013年01月25日
点击Bottom和Top旁边的+号,可以看到这两部分的详细设置,
鼠标右键点击Bottom,选择Display可以看到底层片子的预览显示。
其他片层,也可以这样看。类似。
可以看出,我们的底层布线较少,GND地层连续性还是比较好的。没有大的分割。
分割开的部分,也用过孔通过正面的底层连通了。

99003

wangkj 2013年01月25日
这就是我们预览到的线路板的正面和反面,不带丝印。

99004

99005

wangkj 2013年01月25日
面我们增加机械层,这层是板子的机械结构控制层。
如果我们增加大孔或者其他形状的孔,都在这里做。
在Available films中,鼠标点击右键,选择Add,

99006

输入这层片的名称:mech 英文机械的缩写。

99007

wangkj 2013年01月25日
默认层,不是我们需要的,现在还不能删除,
至少会保留一层,所以只有增加我们需要的层只有,才能删除不要的层。
鼠标右键点击机械片里面的层,然后选择Add

99008

wangkj 2013年01月25日
在弹出的对话框中选择Board Geometry->Outline
然后删除不需要的其它层,只剩下这层。

99009

99010

99011

99012

99013

wangkj 2013年01月25日
在SILK_TOP顶层丝印
增加:REF DES/SILKSCREEN_TOP
       Package Geometr/SILKSCREEN_TOP
       BOARD GEOMETRY/OUTLINE 这层有没有都可以。
SOLDER_BOT增加 (solder焊盘等需要上锡的地方)
     PIN/SOLDERMASK_BOTTOM
       PACKAGE GEMOMETRY/SOLDERMASK_BOTTOM
SOLDER_TOP增加 (solder焊盘等需要上锡的地方)
     PIN/SOLDERMASK_TOP
       PACKAGE GEMOMETRY/SOLDERMASK_TOP

99014

wangkj 2013年01月25日
如果需要显示某片层,可以点选该片层,然后鼠标右键单击,选择DISPLAY

99015

wangkj 2013年01月25日
可以明显看出来,Solder就是线路板的有焊锡的部分。

99016

99017

wangkj 2013年01月25日
如果需要给我们的板子增加螺丝孔,
Options操作对象的
Board Gemometr的outline层操作
菜单Shape->Circular

99018

99019

wangkj 2013年01月25日
点中开孔的位置,拉动鼠标。
可以看出,我们的线路板的顶层底层的铜层显示打开。
打开着两层的显示,可以在右侧的操作对象栏点击etch层的top,bottom直接操作,
也可以在快捷菜单上操作,这以前我们讲过。

99020

wangkj 2013年01月25日
这只是机械孔,我们还需要增加一个禁止布线层
Rote Keepout -> All ,
操作方法类似上面的。
画好后,可以用Edit -> move 菜单,挪动到圆心。

99026

99027

99028

wangkj 2013年01月25日
用Edit->copy的办法,拷贝这两个sharp到四个角,一般很多板子固定孔都放在四边。
当然,这根据外壳的形状最终确定。或者跟模具部门商量开孔位置。
然后删除我们不需要的焊盘和孔。

99030

还有,如果板子要上贴片机大批量生产的话,得在板子的最少3个角放Mark点。
放四个,不要对称放。不对称的目的,是上机器的时候,放反了,能被机器识别。
如果正反面都有元件的话,正反面都放。
Place->Manuly ,Advanced Settings选上库,
在Placement List中,选择Package symbols,选Market,MarkPoint,
都放到我们的板子边上,看那个合适就用那个。我比较喜欢中心原点,外面带丝印的那个。

四个角,我一般放四个。不要放对称。

99031

wangkj 2013年01月25日
这是带Mark点和螺丝孔的最终图。

99034

我在出gerber图是工程这,增加了孔和mark点,
就需要重新做我们以前出gerber图的过程,这点切记,不要偷懒。

首先,我们修正数据库可能存在的问题。
Tools->Database Check  这步不做,后面很可能会出错。还得回头重新做。

99035

wangkj 2013年01月25日
修正完成。

99036

99037

wangkj 2013年01月25日
重复我们以前的步骤。

99038

99039

99040

wangkj 2013年01月25日
点击Drill

99041

Manufacture -> artwork

99042

99043

wangkj 2013年01月25日
点击Apertures,
先点击delete,删除,然后点击Add增加,切记。
切记。

99044

这事删除之前之后的效果。

99045

99046

xzh88ok 2013年01月25日
支持~支持~~~
wangkj 2013年01月28日
点 Add ,之后点Edit,
单位换成Milimeters,跟我们的以前设置一致,
点Auto,选择Without rotation,点oK确认。

99281

99282

wangkj 2013年01月28日
回到出片主窗口,记住,一定要 Select All,
然后点击 Create Artwork,形成gerber的出片文件。

99283

wangkj 2013年01月28日
检查结果,非常好,没问题。
如果出片过程出现问题,请按照提示修正。
如果找不到问题,请按照步骤仔细重复做。
这个出片过程,我一直这样用,都流程化了。

99284

wangkj 2013年01月28日
这就是我们做出来的gerber文件,里面很多文件混到了一起。
包括以前的老文件还有allegro的文件。

99285

wangkj 2013年01月28日
删掉无用文件,记住,千万别吧.brd文件删了,那可是我们辛辛苦苦做出来成果。
防止这种错误的办法,是先把这个文件备份到别处。甚至几处。
然后把*.art,*.drl,*.txt拷贝到 gerber文件夹中。

99286

wangkj 2013年01月28日
用Cam350检查我们形成的gerber图
可以很清楚的看到,我们这个gerber图的各个图层非常清楚。名字含义也非常明了。
如果发现问题,请重复以前的步骤,现在还没送工厂,改正还来得及http://cache.soso.com/img/img/e113.gif

99287

wangkj 2013年01月28日
把我们建立的gerber文件,压缩之后,准备送制版厂。

99288

wangkj 2013年01月28日
这是我们刚才讲的出gerber图的详细视频教程。

http://v.youku.com/v_show/id_XNDgyNzM1OTAw.html

http://v.youku.com/v_show/id_XNDgyNDgzODc2.html

wangkj 2013年01月28日
gerber图出来之后,找你熟悉的制版厂家,或者问做过板子的朋友。
pcb制版这块,质量相差非常之多,很多吹牛的厂家,拿到订单,做的板子很差,甚至出现肉眼无法识别的断线!
下面这段视频有广告嫌疑,是关于制版厂的,不喜欢的,有自己可靠厂家的朋友不用看了。

http://v.youku.com/v_show/id_XNDgyNDcxODcy.html

wangkj 2013年01月28日
补充一个问题,制版厂看到的gerber图有一个位置,说是搞不清有没有孔,
我们打开原理图,从图上可以看出,确实有空,还标注了尺寸。
注意那个F标记,就是我们这个空的图示,表格中是他的长宽和数量。
线路板上是他的位置。
把这个信息告诉制版厂就行。

99290

99291

99292

wangkj 2013年01月28日
下面的内容是讲生成元器件清单列表 BOM list

这个我一直是用原理图做的,pcb图好像也能做。
打开我们的原理图,
菜单选择:Tools->Bill of Materials
这个元件清单,在原理图做完就可以列出来采购了,
但我考虑,pcb制作,需要时间,
所以我等pcb做完之后,pcb送制版厂,然后再做这个列表。
利用等板子的时间,准备元件和程序。合理利用时间。
pcb回来,直接焊接和烧程序了。
不过,这段时间因为服务器的事情,折腾了一周的服务器,
所以,这事也就有点耽误了。

99293

wangkj 2013年01月28日
我比较喜欢电子表格excel,
选中 Open in Excel
在Combined property string 中最后增加\t{pcb footprint}
点OK确认

99294

99295

99296

wangkj 2013年01月28日
保存我们的元件清单的电子表格

99297

wangkj 2013年01月28日
存到stm32f0我们的目录中,
在这个目录中新建一个子目录BOM,
文件名叫做stm32f0,去掉""和.bom后缀,
保存类型选择*.xls格式,不然,你存的还是文本格式。

99298

wangkj 2013年01月28日
这个表格的加工就看各位自己的功夫和爱好了。

http://v.youku.com/v_show/id_XNDgyODI5MDk2.html

wangkj 2013年01月28日
改好我们的电子表格之后,传给元件销售人员,开始购买元件。
从哪里买,从谁那买,每个人的交友范围不同,买的途径也就不一样。
一定要找靠谱的人,元件里面有很多假冒伪劣,买到差的元件,
你花的功夫钱比浪费的金钱远远多的多。

http://v.youku.com/v_show/id_XNDgyODMxMTM2.html

wangkj 2013年01月28日
BOM,DSN,PCB,stm32f0_pcb_lib目录上传,
需要的请下载,pcb_lib太大,以前也上传过,就不重复上传了。

99299
99300


wangkj 2013年01月28日
硬件设计完成了,等待线路板回来,下面我们开始软件部分的讲解,
我们以keil c为例,讲解如何通过软件控制我们的板子。
首先,请下载keil软件和破解器
等等

Keil C 最新的4.60版本下载



wangkj 2013年01月28日
然后请下载usb转串口驱动。
PL2303 USB 串口驱动下载
附件中是本地下载,不用重复下载,下载其中之一即可。

99302
wangkj 2013年01月28日
stm32f0 串口支持 printf scanf标准IO操作功能,方便标准程序移植。
举例:
工程文件位置:STM32F0-Discovery_FW_V1.0.0\Project\Demonstration\MDK-ARM
  printf(" http://www.YQ.com\n\r" );
  printf("\n\r" );
  printf("File : %s\n\r", __FILE__);
  printf("Date : %s\n\r", __DATE__);
  printf("Time : %s\n\r", __TIME__);
  printf("Line : %d\n\r", __LINE__);
scanf("%d",&a)        ;
wangkj 2013年01月28日
stm32 串口程序下载工具,从st网站下载的。

原始地址

99303

wangkj 2013年01月28日
线路板回来了,所以我先插一段硬件内容。这段的名字叫线路板焊接吧。
本来这节应该在软件之前,但硬件回来有一定的周期,
所以,我前面讲了一些软件,现在我先把硬件焊接这块讲了,然后继续讲软件。
以后如果可能这节调整到软件之前讲。

硬件是软件的基础,现在我们的讲线路板焊接。
对于很多人来说,焊上去容易,焊好不容易。

没有硬件软件无从弹起,没有软件,硬件就是废物一堆。
这是我们的做好的空板。

99305

wangkj 2013年01月28日
首先用镊子固定好 TQFP 封装的的stm32f0
四个方向都要注意。
如果有手固定的话,一定要注意,别被烫伤。

99306

wangkj 2013年01月28日
压上烙铁,烙铁要280度,刀头。
几秒就行,不要时间太长,否则可能烫伤电路。

99308

wangkj 2013年01月28日
旋转电路板,四个方向都焊好,如果出现焊锡融化成一坨,
敲到一个盒子中,一般是纸质或者木制的。烙铁上的焊锡过多或者过少,都不容易焊好。

99309

99310

99311

99312

99313

99314

wangkj 2013年01月28日
注意上方的纸盒,那就是敲掉多余焊锡的地方。

99315

wangkj 2013年01月28日
配套的视频讲解如下。
这段看视频比看图片更容易理解。

http://v.youku.com/v_show/id_XNDkyOTk4ODUy.html

http://v.youku.com/v_show/id_XNDkyOTk3NDE2.html

wangkj 2013年01月28日
对于电阻电容的焊接,先在线路板上融化上一点焊锡,
然后把电阻一头焊上。另外一头可以先不焊接,
这样,可以先把很多阻容先焊接上一头,另外一头以后统一一起焊接,
提高效率。
需要的时候,可以旋转电路板,这样,更加顺手。

99316

99317

99318

99319

99320

99321

wangkj 2013年01月28日
如果烙铁有点脏的话,可以在带水的高温海绵上蹭干净

这是焊接好之后的效果

99322

wangkj 2013年01月28日
这事焊接阻容的视频

http://v.youku.com/v_show/id_XNDkyOTk1Nzg0.html

http://v.youku.com/v_show/id_XNDkyOTk0OTgw.html



wangkj 2013年01月28日
这是焊接好之后的板子,漂亮吧?

99323

wangkj 2013年01月28日
焊接好,烧进程序之后的板子

http://v.youku.com/v_show/id_XNDkyOTkyMjc2.html

wangkj 2013年01月28日
好了,现在我们的板子一切正常。我们开始讲如何使用这块板子。
首先,既然是st的芯片,我们先到st网站找资料。
http://www.st.com/internet/mcu/subclass/1588.jsp
这是这款芯片的连接。资料都可以从这里找齐
wangkj 2013年01月28日
这是我从原厂下载之后,改进的演示例子请下载

99324

下载这个例子之后,还需要下载编译环境,烧写软件,驱动程序。
后面我会逐步讲解。这些软件,其实在前面我都提到了。

wangkj 2013年01月28日
首先,安装我们下载的KEIL C软件

99326

wangkj 2013年01月28日
一路点击 next 完成安装

99327

99328

99329

wangkj 2013年01月28日
选择 stm32f0 discovery 板

99330

wangkj 2013年01月28日
点击 next

99332

wangkj 2013年01月28日
点击 finish 后出现的提醒是驱动安装,点击仍然继续即可

99333

wangkj 2013年01月28日
双击 keil 启动 arm编程软件

99334

wangkj 2013年01月28日
等待 keil 启动

99336

wangkj 2013年01月28日
启动之后,自动打开 stm32f0 discovery 开发板的例程

99338

wangkj 2013年01月28日
鼠标右键选中工程文件名 stm32f051 flash ->Options for Target 'stm32f051 flash'

99339

wangkj 2013年01月28日
在 Output中,增加 Creat HEX file 选项,然后点击ok确认

99340

99341

wangkj 2013年01月28日
运行我们下载的keil license生成程序,选择arm

99342

99343

99344

wangkj 2013年01月28日
keil 软件中 选择 File->License Management

99345

wangkj 2013年01月28日
按ctrl+c,把cid 拷贝到剪切板

99346

wangkj 2013年01月28日
拷贝到keygen 的CID中,然后点击 generalte,
把生成的key拷贝到粘贴板

99347

99348

wangkj 2013年01月29日
在keil的licnese management中,拷贝这个key然后点击add lic

99399

wangkj 2013年01月29日
成功了,以后我们这个软件就没有编译代码长度**了。
如果您作为商业应用,不是学习,请购买正版软件。

99400

wangkj 2013年01月29日
现在安装stm32/stm8的串口烧写程序,
通过这个程序,我们的板子,可以通过pc的串口,将编译完成的arm hex的程序代码烧写到我们的stm32f051中

99401

wangkj 2013年01月29日
一路点击next直到finish完成安装

99402

99403

99404

99405

99406

99407

99408

wangkj 2013年01月29日
这是完成安装之后的软件

99409

wangkj 2013年01月29日
安装pl2303 usb-串口驱动

99410

wangkj 2013年01月29日
这个驱动包中有一个pl2303检查软件,pl2303checkchipversion.exe,这是对付翻新重新打标片子的利器。
需要的可以试试。

99411

wangkj 2013年01月29日
双击 PL2303_prolific_driverinstaller_v1.7.0.exe
开始安装驱动

99412

wangkj 2013年01月29日
安装很容易,
注意,先不要把usb线查到我们的板子上,
安装好驱动之后再接我们的板子。

99413

99414

wangkj 2013年01月29日
现在,环境准备好了,打开keil编程软件,
开始我们的软件编程之旅吧。
自动打开的是keil提供的stm32f051 discovery的例程:点亮LED灯。

99417

99418

wangkj 2013年01月29日
记得在项目的选项中,把Create Hex File 选中,这是我们将来烧写的文件。

99419

99420

wangkj 2013年01月29日
从软件的标题,可以看到我们这个工程文件所在的位置,
将来,我们烧写文件的时候,根据这个线索,就能找到烧写文件。

99421

wangkj 2013年01月29日
点击编译图标,完成项目的编译。

99422

wangkj 2013年01月29日
拔下SB2跳线,重新上电或者按复位键B2。
我们这个板子的usb接口比较小,表贴,插拔一定要小心,不用用力过猛,
如果野蛮操作,弄不好这个usb接头就掉了,很难补救。

99423

wangkj 2013年01月29日
这是复位键,记住,旁边的SB4跳线,跳上,复位才能有效。

99424

wangkj 2013年01月29日
烧写状态的板子,led1是亮的,led3,led4是灭的。
点击烧写软件Flash Loader Demo

99425

wangkj 2013年01月29日
这是启动之后的烧写界面。

99426

wangkj 2013年01月29日
一般来讲,我们应该选择UART口中数字最大的一个,如果没有把握,可以在系统中查看。

99427

wangkj 2013年01月29日
在 我的电脑->属性->设备管理器->端口 中就能找到我们的pl2030驱动的串口

99428

99429

99430



wangkj 2013年01月29日
确认串口正确了,点击next,开始我们的程序烧写。

99431

wangkj 2013年01月29日
如果顺利的话,会出现烧写器件正常的提示,
包括你的器件的flash 容量。
如果出现其他错误提示,请注意烧写跳线跳开没有,
多按几次复位,反复点击next。
如果多次都不正常,请拔掉usb接口断电,然后重新上电,按复位按钮。
注意,上电之后,要等3-5秒,然后再启动烧写软件,
有些电脑反应慢,usb来不及初始化,会造成出错。
如果经常出错,请把Timeout时间设置为3秒以下,省的等的心烦。
我的经验是,如果正常,不会超过1s,超过一秒没响应,肯定就不正常了。

99432

wangkj 2013年01月29日
Target自动选择的是64k型号,我们这个就是这个型号。

99433

wangkj 2013年01月30日
点击"..."按钮,选择我们的烧写文件

99482
wangkj 2013年01月30日
文件类型选择HEX,
文件名是Demo.HEX。

99483

wangkj 2013年01月30日
烧写正常的话,很快完成,一般这里很少出错,但也不是没有。
如果出错的话,请重新复位,重新打开烧写软件重复上述过程。

以前,有第三方的烧写软件,能自动烧写,比这个官方的好用一些,
但目前,我没找到支持stm32f0的,如果哪位对软件比较热心,
可以去下载这个烧写软件的源码,自己改写。

99484

wangkj 2013年01月30日
插上SB2的烧写跳线帽,让板子进入正常工作模式。
这时候,可以重新上电或者复位,板子就正常工作了。
这时候,可以看到LED电源灯亮,LED3,LED4闪烁。

99485

wangkj 2013年01月30日
Keil自带的程序很简单,虽然能够足以说明板子已经正常工作了,
但我们需要更多的信息显示,如果能把更复杂的信息显示出来就更好了。
我们想到了串口,我们既然能串口烧程序,我们也应该能通过串口,把stm32的
内部信息或者采集的其他信息通过电脑显示出来。
打开我改版的官方样例程序。

99486

wangkj 2013年01月30日
解压到当前文件夹,然后到STM32F0-Discovery_FW_V1.0.0\Project\Demonstration\MDK-ARM
目录中,双击 STM32F0-Discovery_Demo.uvproj 打开这个工程文件

99487

wangkj 2013年01月30日
我在main.c中增加了这些内容:

//#pragma import(__use_no_semihosting)
                           
struct __FILE
{
        int handle;
};

FILE __stdout;
         
int _sys_exit(int x)
{
        x = x;
        return 0;
}

/** @addtogroup STM32F0-Discovery_Demo
  * @{
  */
int fputc(int ch, FILE *f)
{
  /* Write a character to the USART */
  USART_SendData(USART1, (uint8_t) ch);

  /* Loop until the end of transmission */
  while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET)
  {
  }
  return ch;
}
/**
  * @brief  Inserts a delay time.
  * @param  nTime: specifies the delay time length, in 1 ms.
  * @retval None
  */
/****************************************************************************
* Ãû    ³Æ£ºint fgetc(FILE *f)
* ¹¦    ÄÜ£ºÖض¨Òåfgetcº¯Êý£¬printfº¯Êý´ÓÖÕ¶ËÊäÈëÊý¾Ý
* Èë¿Ú²ÎÊý£ºÎÞ
* ³ö¿Ú²ÎÊý£ºÎÞ
* ˵    Ã÷£ºÎÞ
****************************************************************************/
int fgetc(FILE *f)
{
        while (USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET);
        return (int)USART_ReceiveData(USART1);
}

void delay(void)
{
        int i,j;
        for(i=0;i<2000;i++)
                for(j=0;j<2000;j++);
}
这些只是关键内容,其他内容比如串口初始化,大家自己打开工程文件去看。
还有,target的option中,一定要使用micro lib库。

99488

99489



wangkj 2013年01月30日
这种办法,fputc,fgetc,把标准输入输出重定向到了串口,如果需要重定向到屏或者键盘,可以修改者两个函数。
从理论上讲,函数中,可以同时支持多种设备。
比如,同时支持串口和屏的输出,同时支持串口和键盘的输入等。
wangkj 2013年01月30日
用刚才我们用过的办法,编译之后,烧写这个文件。
C:\stm32f0\stm32f0\software\STM32F0-Discovery_FW_V1.0.0\Project\Demonstration\MDK-ARM\Demo

99490

wangkj 2013年01月30日
打开一个串口软件,打开com3(你的电脑或许是其他串口,请参考以前的说明)
我们以超级终端为例:
开始->程序->附件->通讯->超级终端
115200,8,N,1,流控制无

99491

wangkj 2013年01月30日
给我们的板子上电或者复位,就能看到我们用printf函数打印的信息。
sprintf,scanf,getch,getcha,getsr等等这类基于终端的函数,我们都能用。
非常方便。

99500

wangkj 2013年01月30日
我们在程序中,可以大量复制
printf()语句,插入到我们怀疑出问题的地方,或者打印我们想要的各种数字信息,
替代调试器。对于简单的arm或者单片机来说,
用硬件调试器很方便,但对于大系统,比如linux,硬件调试器价格非常昂贵,3,5万很常有的事情,
很多公司舍不得买,很多时候,就靠printf打天下,替代调试器。
注意,printf的回车换行,一定要是\r\n的方式,否则,很可能有些串口软件格式会发生混乱

99501

wangkj 2013年01月30日
这是调整成\r\b之后的串口终端软件效果,很整齐。

99502

wangkj 2013年01月31日
这是软件教程的视频录像

http://v.youku.com/v_show/id_XNDkzMzE1MTU2.html

http://v.youku.com/v_show/id_XNDkzMzA5NTA4.html

xzh88ok 2013年02月02日
支持~~~
Phonse 2013年02月15日
嗯嗯。。还介绍各种软件的。。
cyun0223 2013年03月07日
学习了
tigerdill 2013年03月11日
楼主  一楼的 网盘 资料 无法下载,请更新下连接,谢谢:)
电子爱好无极限 2013年03月13日
好东西啊,辛苦了,谢谢了
shallluo 2013年04月20日
这个是个好帖啊
MCU_NEWER 2013年05月02日
版主,有心人啊!
a373622729 2013年05月06日
楼主您好。我是一名大二学生,想跟您学习,我qq号:572152439    希望您能多指点。
xzh88ok 2013年05月09日
xgang1989 2013年05月10日
牛贴,看一次点一次
2006110006 2013年05月30日
楼主给力,必须顶!
arnoldlai 2013年08月10日
樓主太厲害了,要頂ㄧ下。
duzz 2013年08月28日
用一个月左右时间跟着楼主学习了
duzz 2013年08月28日
楼主,好人啊,也神级的人物,膜拜中
duzz 2013年08月28日
楼主,我使用的capture cis.一样的吧
saifu2008 2014年03月12日
mark一下
pcbkey 2015年02月02日
:victory:谢楼主分享
JLCS 2018年05月11日
:lol:lol谢谢分享
chunhongwu 2018年05月14日
专业生产各种高精密线路板厂商,下单热线:17875820085,QQ541328048
JLCS 2018年07月19日
谢谢分享!!~~
  



嘉立创打样联系QQ800058652