- 博客(28)
- 资源 (3)
- 收藏
- 关注
原创 嵌入式ARM设计历程(三)
最近游走了多家嵌入式商家网站学习学习,发现ARM嵌入式核心板卡厂家已经渐渐开始泛滥。既有早前做开发板现在也卖点核心板卡的如:友善之臂,飞凌。也有Toradex,研华这类专供核心板卡的综合方案的供应商。核心板卡的种类大致上也都是围绕那么几家主流的IC厂商,所以大多比较雷同。我以前设计过的那款9260曾经想选用金手指的方式来做,后来放弃的,现在也看到有些厂商选用了金手指这种方式,除此之外大概还有几种:
2013-10-23 01:05:27
1741
1
原创 Jlink无法下载调试的问题
前段时间调试CM3的片子,遇到的几个问题,这里共享下解决的方法点击调试以后出现:Could not load file debugger aborted 原因:options forTarget debuginflash->utilities中 要选上 update target before debugging 另一个错误:size limit 32K.原因是keil
2013-10-17 01:16:59
2984
原创 嵌入式ARM设计历程(二)
1个月以后我们的核心板和底板都陆续做出来了,调试工作比我们想象的多很多,虽说参考了官方的设计,但因为增加和更换了一些IC,所以驱动上的工作有一些,也有些原理设计上的问题,林林总总调试加重新改板又花了几个月,最后也都做出来了。上层软件的工作并行的进行中,用开发板进行调试。等硬件板卡做好的时候就直接移植上去,很小的修改便可以工作,这正是我当时所想的东西。现在的态度是,嵌入式板卡的设计更新速度并不会很快
2013-10-17 01:04:50
1551
原创 嵌入式ARM设计历程(一)
很早以前在作为一个刚刚涉及嵌入式领域的我,嵌入式系统就是一个令我向往的东西,单单从一个做技术的人的角度出发,在学校的时候已经玩了两年的单片机,帮老师做项目,参加学校各种电子类的比赛。那会儿还都是一些围绕8位,16单片机做的方案。再后来有了ARM7的课程,学校里的老师也是一知半解,所以斩获很少,内心里十分向往围绕ARM的项目,但苦于身边没有。当时的淘宝上已经渐渐的有ARM 9的开发板卖了,所以自
2013-10-15 22:23:24
1337
转载 Zstack 中新建任务
Zstack(TI的Zigbee协议栈)中,对于每个用户自己新建立的任务通常需要两个相关的处理函数,包括:(1).用于初始化的函数,如:SampleApp_Init(), 这个函数是在osalInitTasks()这个osal(Zstack中自带的小操作系统)中去调用的,其目的就
2011-07-19 20:06:54
1421
原创 USB 布线
2011-03-15 00:24:21| 分类: 电子硬件|字号 订阅看usb是什么版本的,如果是2.0版本的,一般需要控制差分阻抗90欧姆,线宽/线距需要根据叠层结构在满足阻抗的情况下调整;如果是1.0版本,没什么特别要求,尽量近并等长就可以了(关键是等长)。我的总结:1、有
2011-07-11 16:49:35
4448
原创 PCB 布板参数
PCB layout最终目的就是应用生产,成为一个正式的有效的产品的时候,layout的工作才算告一个段落。那么在layout的时候,应该注意哪些常规的要点,才能使自己画的文件有效符合一般PCB加工厂规则,不至于给企业造成不必要的额外支出?根据本人多年的实际经验,以及制作PCB技
2011-07-11 16:43:44
2584
转载 uCos-II V2.52的学习调试
http://blog.cechina.cn/xilinxue/208665/message.aspx学习一种的新的东西,观看书或看论坛可不行。最主要的还是要亲自去动手体会。学习编程就是要不断的从修修改改中领会程序的奥妙。学习uCos-ii也不例外,Jean J.Labrosse
2011-07-09 18:05:16
2041
1
转载 Ucos_II2.52源码中文译注
Ucos_II2.52源码中文译注Ucos_II2.52是一份非常完美的嵌入式开发系统,在学习ARM的基础上,嵌入ucos系统并增加自己的源码是一件不错的选择,目前在市面上已经有了大量的ucos嵌入案例,特别是在arm和dsp的应用当中,已经成为一种主流,虽然和其它的嵌入式系统相
2011-07-09 18:04:20
2246
2
转载 老电子工程师的多年经验电子产品设计经验总结之PCB设计
<br />2009-07-06 11:411. 根据线路板厂家的能力设定线路板基本参数<br /><br /> 根据沧州一带线路板厂的水平,按下列参数设计线路板质量应能保证:<br /><br /> * 最小导线宽度:8mil;<br /><br /> * 最小导线间距:8mil;<br /><br /> * 最小过孔焊盘直径:30 mil;<br /><br /> * 最小过孔孔径:16 mil;<br /><br /> * DRC检查最小间距:8mil;<br /><br />2. 线路板
2011-04-21 13:39:00
1042
原创 typedef 的用法
用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针,// 和一个字符变量;以下则可行:typedef char* PCHAR;PCHAR pa, pb; 用途二:用在旧的C代码中,帮助struct。以前的代码中,声明struct新对象时,必须要带上struct,即形式为: struct 结构名对象名,如:struct tagPOINT1 { int x;
2011-03-31 17:22:00
716
转载 typedef和#define的用法与区别
一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef int INT;typedef int ARRAY[10];typedef (int*) pINT;typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”等缺点。二、#define的用法#define为一宏定义语句,通常用它来定义常量(包括无参量与带参量),以及用来实现那些“
2011-03-31 17:20:00
818
原创 volatile的作用
<br />一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: 1). 并行设备的硬件寄存器(如:状态寄存器) <br /> 2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables) <br /> 3). 多线程应用中被几个任务共享的变量 <br /
2011-02-10 15:58:00
740
转载 linux 网络设备驱动-DM9000
<br /><br />1、Linux网络设备驱动的体系结构<br />Linux网络驱动程序的体系结构可划分为4个层次。Linux内核源代码中提供了网络设备接口及以上层次的代码,因此移植特定网络硬件的驱动程序的主要工作就是完成设备驱动功能层的相应代码,根据底层具体的硬件特性,定义网络设备接口struct net_device类型的结构体变量,并实现其中相应的操作函数及中断处理程序。<br />Linux中所有的网络设备都抽象为一个统一的接口,即网络设备接口,通过struct net_device类型的结构
2011-02-09 10:35:00
1050
原创 FCLK,HCLK,PCLK,s3c2440时钟
<br /><br />为了降低电磁干扰和降低板间布线要求,芯片外接的晶振频率通常很低,通过时钟控制逻辑的PLL提高系统使时钟。<br />S3C2410/2440有两个PLL,MPLL和UPLL:UPLL用于USB设备,MPLL用于设置FCLK,HCLK,FCLK。<br />FCLK与输入晶振的比例通过寄存器MPLLCON设置。<br />FCLK,HCLK,FCLK三者的比例通过寄存器CLKDIVN,CAMDIVN(2440)设置。<br /> <br />开发板上的12MHz晶振经PLL倍频得到FC
2010-12-23 15:39:00
8691
转载 semaphore的实现机制详解
<br /> <br />semaphore是内核中比较重要和常用的同步方式之一,他主要的特点是实现了Sleep机制下的同步。也就是当获取一个semaphore但是又不能立刻获取的时候,他使当前的执行进程进入到Sleep状态中等待,当semaphore可以获取的时候,从新开始运行,而不像splin lock在获取锁的时候是BusyWait。<br />首先看其定义:<br />struct semaphore {<br /> atomic_t count; // 原子变量,是后
2010-12-13 17:47:00
1055
转载 按键驱动
<br />这里主要是仿照《嵌入式Linux开发完全手册》上的例子写的,只是增加了别外两个按按键。在我的mini2440开发板上有6个按键。在上两篇文章中,主要分析了驱动中的整体的流程,现在来看一个具体的例子,是如何使用中断的。1. 模块的初始化函数和卸载函数<br /> <br />/* 执行"insmod mini2440_buttons.ko"命令时就会调用这个函数*/<br />staticint __init mini2440_buttons_init (void)<br />{<br /> i
2010-12-13 10:16:00
1095
转载 中断字符驱动程序
<br />经典字符程序,对一些自己不太懂的地方稍微分析了一下<br />驱动程序<br />#include <linux/module.h><br />#include <linux/kernel.h><br />#include <linux/fs.h><br />#include <linux/init.h><br />#include <linux/delay.h><br />#include <asm/irq.h><br />#include <linux/interrupt.h><br />#
2010-12-13 09:52:00
1026
转载 mkyaffs移植
<br />1. 下载mkyaffs源码:<br />http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs.tar.gz?view=tar<br />2. 解压缩,进入 yaffs/utils, 修改Makefile:<br />(1) MAKETOOLS = arm-linux-<br />(2) CFLAGS = 增加“-I /your-kernel-include-dir” 指向你的平台的内核目录,例如/src/preview-kit/linux-2.6.
2010-12-09 13:26:00
1093
转载 yaffs文件系统
现在在网上能找到源码的FLASH日志文件系统,JFFS和JFFS2适合NOR FLASH,YAFFS是为NAND FLASH量身定做的。目前flash的文件系统比较多,用的比较多的就是JFFS2文件系统。基于NOR flash上的JFFS2文件系统可以说算是比较成熟了,支持NAND flash的JFFS2也已经发布了。源代码可以到http://www.linux-mtd.infradead.org上面下载。但是在我的测试过程中,在nand flash上挂接的JFFS2文件系统很不稳定,经常有CRC错误产生。
2010-12-09 10:11:00
906
原创 耦合电路
<br />耦合是指两个或两个以上的电路元件或电网络的输入与输出之间存在紧密配合与相互影响,并通过相互作用从一侧向另一侧传输能量的现象。耦合电路就是指参与耦合过程的电路。 <br /> <br />耦合电路示意图<br />从电路来说,总是可以区分为驱动的源和被驱动的负载。如果负载电 <br />容比较大,驱动电路要把电容充电、放电,才能完成信号的跳变,在上升沿比较陡峭的时候, <br />电流比较大,这样驱动的电流就会吸收很大的电源电流,由于电路中的电感,电阻(特别是 <br />芯片管脚上的电感,会
2010-12-06 11:33:00
2044
原创 零漂
零点漂移 零点漂移可描述为:输入电压为零,输出电压偏离零值的变化。它又被简称为:零漂 零点漂移是怎样形成的: 运算放大器均是采用直接耦合的方式,我们知道直接耦合式放大电路的各级的Q点是相互影响的,由于各级的放大作用,第一级的微弱变化,会使输出级产生很大的变化。当输入短路时(由于一些原因使输入级的Q点发生微弱变化 象:温度),输出将随时间缓慢变化,这样就形成了零点漂移。 产生零漂的原因是:晶体三极管的参数受温度的影响。解决零漂最有效的措施是:采用差动电路。
2010-12-06 11:28:00
1962
原创 阻抗的知识
输入阻抗和输出阻抗的基本知识。(1)输入阻抗:输入阻抗是指一个电路输入端的等效阻抗。在输入端上加上一个电压源U,测量输入端的电流I,则输入阻抗Rin就是U/I。你可以把输入端想象成一个电阻的两端,这个电阻的阻值,就是输入阻抗。输入阻抗跟一个普通的电抗元件没什么两样,它反映了对电流阻碍作用的大小。对于电压驱动的电路,输入阻抗越大,则对电压源的负载就越轻,因而就越容易驱动,也不会对信号源有影响;而对于电流驱动型的电路,输入阻抗越小,则对电流源的负载就越轻。因此,我们可以这样认为:如果是用电压源来驱动的,则输入阻
2010-12-06 10:49:00
1481
转载 运放的噪声
<br />问:有关运算放大器的噪声?<br /><br />答:首先,必须注意到运算放大器及其电路中元器件本身产生的噪声与外界干扰 或无用信号并且在放大器的某一端产生的电压或电流噪声或其相关电路产生的噪 声之间的区别。 <br />干扰可以表现为尖峰、阶跃、正弦波或随机噪声而且干扰源到处都存在:机 械、靠近电 源线、射频发送器与接收器、计算机及同一设备的内部电路(例如,数字电路或开关电源)。 认识干扰,防止干扰在你的电路附近出现,知道它是如何进来的并且如何消除它或者找到对 付干扰的方法是一个很大的题目。<
2010-12-06 10:31:00
2863
转载 ARM与MIPS比较
<br />[前言]<br /> 这是一个几年以来我一直想做的“功课”,之所以称之为“功课”,而不能说是“文章”,是因为我觉得自己的知识还远远不够,不管是深度还是广度,也不管是全面性还是透彻性,我都不敢。但是我实在是很想把我的一些理解写出来,然后能和其他朋友一起探讨,纠正错误,补充完善,最终目的就是要加深对ARM和 MIPS 这两种CPU架构的认识。<br /> 这里的目前最多只能算个草稿吧,请大家不断的补充。<br />[正文]<br />1.流水线结构 pipeline<br />
2010-12-06 10:00:00
1061
转载 MIPS体系架构
MIPS体系结构首先是一种RISC架构 <br />1 MIPS32架构中有32个通用寄存器,其中$0(无论你怎么设置,这个寄存器中保存的数据都是0)和$31(保存函数调用jal的返回地址)有着特殊的用途,其它的寄存器可作为通用寄存器用于任何一条指令中。 <br />虽然硬件没有强制性的指定寄存器使用规则,在实际使用中,这些寄存器的用法都遵循一系列约定。这些约定与硬件确实无关,但如果你想使用别人的代码,编译器 和操作系统,你最好是遵循这些约定。 <br />寄存器编号 助记符 用法 <br />0 zero
2010-12-06 09:58:00
1013
转载 目前常用AD/DA芯片简介
<br />目前生产AD/DA的主要厂家有ADI、TI、BB、PHILIP、MOTOROLA等,武汉力源公司拥有多年从事电子产品的经验和雄厚的技术力量支持,已取得排名世界前列的模拟IC生产厂家ADI、TI公司代理权,经营全系列适用各种领域/场合的AD/DA器件。<br />1. AD公司AD/DA器件<br /> AD公司生产的各种模数转换器(ADC)和数模转换器(DAC)(统称数据转换器)一直保持市场领导地位,包括高速、高精度数据转换器和目前流行的微转换器系统(MicroConvertersTM )
2010-12-06 09:40:00
2001
转载 如何选择A/D芯片
A/D器件和芯片是实现单片机数据采集的常用外围器件。A/D转换器的品种繁多、性能各异,在设计数据采集系统时,首先碰到的就是如何选择合适的A/D转换器以满足系统设计要求的问题。选择A/D转换器件需要考虑器件本身的品质和应用的场合要求,基本上,可以根据以下几个方面的指标选择一个A/D器件。 (1)A/D转换器位数 A/D转换器位数的确定,应该从数据采集系统的静态精度和动态平滑性这两个方面进行考虑。从静态精度方面来说,要考虑输入信号的原始误差传递到输出所产生的误差,它是模拟信号数字化时
2010-12-06 09:37:00
1409
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人