博文

常用的芯片(2006-05-13 12:16:00)

摘要:电源 5V:          7805
3.3V:        lm1117,lt1084
1.6V:        tps767d301
可调电压:    lm317 有效值采集:  mx536a,ad736,ad737   74系列芯片功能大全   
7400 TTL 2输入端四与非门
7401 TTL 集电极开路2输入端四与非门
7402 TTL 2输入端四或非门
7403 TTL 集电极开路2输入端四与非门
7404 TTL 六反相器
7405 TTL 集电极开路六反相器
7406 TTL 集电极开路六反相高压驱动器
7407 TTL 集电极开路六正相高压驱动器 
7408 TTL 2输入端四与门
7409 TTL 集电极开路2输入端四与门 
7410 TTL 3输入端3与非门
74107 TTL 带清除主从双J-K触发器
74109 TTL 带预置清除正触发双J-K触发器
7411 TTL 3输入端3与门
74112 TTL 带预置清除负触发双J-K触发器
7412 TTL 开路输出3输入端三与非门
74121 TTL 单稳态多谐振荡器
74122 TTL 可再触发单稳态多谐振荡器
74123 TTL 双可再触发单稳态多谐振荡器
74125 TTL&nbs......

阅读全文(3819) | 评论:0

CDMA、GPRS、GSM解释 (2006-05-13 12:10:00)

摘要:CDMA、GPRS、GSM解释         GPRS(General Packet Radio Service)的中文是通用分组无线业务,是在现有的GSM系统上发展出来的一种新的分组数据承载业务。GPRS与GSM系统最根本的区别是,GSM是一种电路交换系统,而GPRS是一种分组交换系统。GPRS特别适用于间断的、突发性的或频繁的、少量的数据传输,也适用于偶尔的大数据量传输。我们可以将GPRS理解为GSM的一个更高层次。    WAP(Wireless Application Protocol)的中文是无线应用协议,它与GPRS属于不同的范畴,它的目的是将互联网的丰富信息及先进的业务引入到移动电话等无线终端之中。打个比喻,GPRS和GSM都是马路,而WAP是在马路上的汽车。中国移动开通GPRS之后,WAP就行驶在GSM和GPRS两条马路上,而行驶在GPRS的马路上可以提高数据传输速度。因此,现有WAP上的内容一样可以通过GPRS进行浏览和应用。    CDMA是与GSM并列的移动通信技术,是码分多址数字无线技术的英文缩写,它拥有频率利用率较高、手机功耗低等优点。与GSM相同,CDMA也有2代、2.5代和3代技术。中国联通将于今年下半年推出的CDMA属于2.5代技术。   http://www.study-kit.com/bbs/showbbs.asp?bd=31&id=292&totable=1......

阅读全文(4286) | 评论:0

美国国家半导体开关稳压调整器技术问答精选(2006-05-13 12:03:00)

摘要:美国国家半导体开关稳压调整器技术问答精选
问:在待机状态,能耗的降低会不会将系统稳定性降低? 
答:待机时有两种方法:1.高电压绕组降低到MCU低电压电源,系统进入突发模式,输出电压有更多波纹,但依然在反馈回路;至于某些临界的应用,线性调整器如7805适合这方面的应用,例如NCP1209或MC44608。2.对于NCP1200,它的输出波纹会很小,如2.5%,直接驱动MCU会很安全。我们确信,在待机时,上面的任一种方法依然在控制回路。 问:一个系统要降低功耗,一般应该从哪几方面来入手解决呢? 答:从系统的观点来看,不仅要谈到待机,效率是第一位的。我们首先要做的是要保证系统效率尽可能的高。为了达到这点,我们需要确定功率在什么地方损失掉,即是说,流过功率MOSFET的电流产生热量,场效应晶体管(FET)的Rds(on)决定了此时的损耗。类似这种考卷需要针对系统中每一个功率元件来进行。 问:DVD可以提供何种芯片做到0.4W?我们的输出功率260瓦。 答:NCP1200适合用在20-30WDVD播放机,达到0.4W。你的应用不仅仅是DVD播放机,应该是DVD+AMP(放大器)。我们有NCP1203(140W)和其它器件一起用的解决方案。请电邮到:manson.chan@onsemi.com,以便更清楚你的想法。 问:有些解决方案辅助绕组供电时需加稳压管,这样是不是过压保护功能实现不了? 答:齐纳二极管加接在Vcc引脚,保护IC免受损害。如果需要过压保护,要增加更多的外接元件。请参阅我们的应用手册AND8069。 问:采用安森美芯片的产品,在电磁兼容性方面应该做什么样的处理? 答:从根本上来说,它应该根据通常的EMC来考虑整个电路,如PCB的布局,变压器的结构,线路输入滤波器,开关电源(SMPS)的工作模式,屏蔽等。我们的一些芯片能安全地工作在关键的部位,能消除许多EMC的问题。 问:目前IC芯片的功耗在逐步降低,供电电压已降至1.5V,而传统5V供电芯片也在大量使用,这样在进行系统设计时,电源设计就是一个很大的问题。一个系统中,不同的芯片需要不同的工作电压,由此造成系统设计复杂化,各芯片接口部分产生诸多不确定错误,比如3V在5V芯片中会误认为低电平,如果加转换器件,又增加成本,请问如何解决系统设计中的此类问题? 答:事实上,......

阅读全文(6638) | 评论:0

arm开发的简单步骤(2006-05-13 12:01:00)

摘要:arm开发的简单步骤【zt】 1. 做个最小系统板:如果你从没有做过ARM的开发,建议你一开始不要贪大求全,把所有的应用都做好, 因为ARM的启动方式和dsp或单片机有所不同,往往会遇到各种问题,所以建议先布一个仅有Flash,SRAM或 SDRAM、CPU、JTAG、和复位信号的小系统板,留出扩展接口。使最小系统能够正常运行,你的任务就完成了 一半,好在ARM的外围接口基本都是标准接口,如果你已有这些硬件的布线经验,这对你来讲是一件很容易的 事情。
2. 写启动代码,根据硬件地址先写一个能够启动的小代码,包括以下部分: 初始化端口,屏蔽中断,把程序拷贝到SRAM中;完成代码的重映射;配置中断句柄,连接到C语言入口。也许 你看到给你的一些示例程序当中,bootloader会有很多东西,但是不要被这些复杂的程序所困扰,因为你不是 做开发板的,你的任务就是做段小程序,让你的应用程序能够运行下去
3. 仔细研究你所用的芯片的资料,尽管ARM在内核上兼容,但每家芯片都有自己的特色,编写程序时必须 考虑这些问题。尤其是女孩子,在这儿千万别有依赖心理,总想拿别人的示例程序修改,却越改越乱。
4. 多看一些操作系统程序,在ARM的应用开放源代码的程序很多,要想提高自己,就要多看别人的程序, linux,uc/os-II等等这些都是很好的原码。
6.如果你是作硬件,每个厂家基本上都有针对该芯片的DEMO板原理图。先将原理图消化。这样你以后做设计时,对资源的分配心中有数。器件的DATSHEET一定要好好消化。
7.如果做软件最好对操作系统的机理要有所了解。当然这对软件工程师来说是小菜一碟。但如果是硬件出身的就有点费劲。  
http://www.study-kit.com/bbs/showbbs.asp?bd=31&id=897&totable=1......

阅读全文(4455) | 评论:0

PDG转PDF的技巧(2006-05-13 11:58:00)

摘要:关于PDG转PDF的技巧!
超星阅读器实在让人不爽。大家都在寻求关于PDG转PDF的方法和技巧。近日上网浏览,发现一个关于这个转换技巧的好帖。立即贴出来,希望对各位有所帮助! 网页http://www.wo2j.com/science/forum/read.php?tid=664&page=e&fpage=1 原文如下: 打破超星封锁——PDG转PDF新方法【强烈推荐】 打破超星封锁——PDG转PDF新方法 用超星阅览器阅读PDG格式图书,需要一页一页地翻,很不爽,很想转为PDF格式以便于保存、阅读和打印。在网上搜索一下,基本上都是利用PDF虚拟打印机的方法。由于新版本的ssreader对虚拟打印进行了控制,直接使用adobe acrobat以及office 2003的虚拟打印机需要改名,操作繁琐,简单试了几次没有成功;又不想下载安装其他的虚拟打印机,只好暂时放弃。
偶然翻看Acrobat Distiller的帮助,发现其可以将PS格式的打印文件转为PDF文件,于是产生新的思路,经试验完全可行。现将具体方法与大家共享。 1、找到任意一款打印机的PS驱动程序,并安装。
注意:是真实打印机(非虚拟打印机)的驱动,没有打印机没关系,我们只是利用他打印到文件中,而不是纸上。另外,打印机驱动一般分两种:PCL和PS,我们需要PS驱动。PS驱动程序可到打印机生产厂商的网站上下载,比如爱吃屁(HP)。
2、打开PDG文件。
3、计算书的总页数(封面+版权+...+前言+目录+正文)。
正文的页数可以在阅览器中直接看到,其他页数的自动计算方法没来得及研究,我用笨方法:数。
4、显示封面页,选择打印,起始页为当前页,页数为刚才计算的总页数;
选择安装的PS打印机,选择打印到文件。此时会弹出对话框,输入文件名,文件的扩展名最好为.prn(其他也可以,但prn文件Acrobat Distiller可自动识别),文件名中最好带路径,以便于查找。
5、用Acrobat Distiller打开prn文件,按提示即可转为pdf文件。 我用这种方法试验,转一本近500页的书只要1,2分钟的时间(当然不包括数页数的时间),并且从封面到正文都在一个pdf文件中。 ......

阅读全文(14206) | 评论:1

NAND和NOR flash详解(2006-05-13 11:56:00)

摘要:NAND和NOR flash详解 “flash存储器”经常可以与“NOR存储器”互换使用。许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,因 为大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。   NOR的特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。   NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理和需要
特殊的系统接口。 性能比较   flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。     NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。   由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。   执行擦除时块尺寸的不同进一步拉大了NOR和NADN之间的性能差距,统计表明,对于给定的一套写入操作(尤其是更新小文件时),更多的擦除操作必须在基于NOR的单元中进行。这样,当选择存储解决方案时,设计师必须权衡以下的各项因素。   ● NOR的读速度比NAND稍快一些。
  ● NAND的写入速度比NOR快很多。
  ● NAND的4ms擦除速度远比NOR的5s快。
  ● 大多数写入操作需要先进行擦除操作。
  ● NAND的擦除单元更小,相应的擦除电路更少。 接口差别   NOR flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。   NAND器件使用复杂的I/O口来串行地存取数据,......

阅读全文(4168) | 评论:0

AVR定时器的要点介绍(2006-05-13 00:59:00)

摘要:AVR定时器的要点介绍
AVR定时器的要点介绍  (大部分摘自 M16中文手册,未能一一测试)   M16的T1 16位定时器一共有15种工作模式,其他2个8位定时器(T0/T2)相对简单,除了T2有异步工作模式用于RTC应用外
                       (可以利用溢出中断和比较匹配中断作定时功能)
  分5种工作类型
  1  普通模式 WGM1=0
    跟51的普通模式差不多,有TOV1溢出中断,发生于TOP时
    1 采用内部计数时钟     用于 ICP捕捉输入场合---测量脉宽/红外解码
        (捕捉输入功能可以工作在多种模式下,而不单单只是普通模式)
    2 采用外部计数脉冲输入  用于 计数,测频
    其他的应用,采用其他模式更为方便,不需要像51般费神
    
  2 CTC模式 [比较匹配时清零定时器模式] WGM1=4,12
     跟51的自动重载模式差不多
     1 用于输出50%占空比的方波信号
     2 用于产生准确的连续定时信号
     WGM1=4时, 最大值由OCR1A设定,TOP时产生OCF1A比较匹配中断
     WGM1=12时,最大值由ICF1设定, TO......

阅读全文(6559) | 评论:2

好程序如何经得起千回改(2006-05-13 00:56:00)

摘要:   技术讨论专题之六:好程序如何经得起千回改? 在产品推向市场后,根据反馈信息对产品进行改进调整、升级换代是必不可免的,这也涉及到程序部分的改动。但是,好程序也怕千回改,大凡写程序的人都会有这种体验,就是宁可写程序,不愿改程序,原因如下: 1.写程序时,所有资源(IO口、RAM、ROM、堆栈、计数器、中断……等等)都是可用的,可以无拘束地使用;而改程序时,只能利用原先用剩下的资源。 2.写程序时,面向全局规划,可以合理安排各个功能的实现方法;而改程序时,是针对局部,为了避免影响其它部分功能,往往约束较大。 3.大多数人没有良好的编程习惯,事先不规划,事后不整理,脚踩西瓜皮,写到哪里算哪里。待到需要改动时,由于当时一些思路已经忘记了,没有留下足够的注释和说明文档,就摸不着边了。 4.由于没有一个统一的编程规范,如果原先的程序不是自己写的,那就更糟糕了。光看懂前任的程序就要耗费许多时间;而如果想较大面积地修改它,往往还不如自己重新写一个来得快些。 5.每次修改程序都是在原来程序的基础上打补丁,往往会为下一次的修改增加难度。最后,量变引起质变,活活把个好好的程序改烂掉了。 6.……
最近,坛子里,对编程方法思路等方面的讨论较多(而雕虫小技则遭受抛弃)。匠人也来凑热闹,请大伙来讨论:好程序如何才能经得起千回改?
 
一些不成熟的想法,权当抛砖引玉
 程序匠人 发表于 2004-7-30 11:34 侃单片机 ←返回版面   举报该贴
程序的改动大多数情况下都是伴随着硬件的改动。关于硬件的改动不是本贴的主题。不必作深入讨论。 程序如何才能经历岁月的考验,千锤百改,依然生机勃勃。一些不成熟的想法,权当抛砖引玉: 1.程序应该模块化,便于拆卸或增加。(这已经不算是新鲜观点了)。 2.使用RAM或IO,必须先定义再使用,避免直接引用。将来需要调整时,只要修改定义部分就好了。 3.相同或类似的程序段应该用子程序来实现,如果受堆栈等资源局限,不能使用子程序,则应该用宏来实现,这样以后需要改时,只要改一“点”,无须改一“片”。 4.写程序要有足够的注释、说明文档、流程图、原理图。便于以后能够快速勾起往日的回忆…… 5.每次修改程序,应该同步更新相关的注释、说......

阅读全文(3547) | 评论:0

GCC 中文手册(2006-05-13 00:39:00)

摘要:GCC 中文手册 GCC
Section: GNU Tools (1)
Updated: 2003/12/05
Index Return to Main Contents    
NAME
gcc,g++-GNU工程的C和C++编译器(egcs-1.1.2)   
总览(SYNOPSIS)
gcc[option|filename ]... 
g++[option|filename ]... 

警告(WARNING)
本手册页内容摘自GNU C编译器的完整文档,仅限于解释选项的含义. 
除非有人自愿维护,否则本手册页不再更新.如果发现手册页和软件之间有所矛盾,请查对Info文件, Info文件是权威文档. 

如果我们发觉本手册页的内容由于过时而导致明显的混乱和抱怨时,我们就停止发布它.不可能有其他选择,象更新Info文件同时更新man手册,因为其他维护GNU CC的工作没有留给我们时间做这个. GNU工程认为man手册是过时产物,应该把时间用到别的地方. 

如果需要完整和最新的文档,请查阅Info文件`gcc’或Using and Porting GNU CC (for version 2.0) (使用和移植GNU CC 2.0) 手册.二者均来自Texinfo原文件 gcc.texinfo. 


描述(DESCRIPTION)
C和C++编译器是集成的.他们都要用四个步骤中的一个或多个处理输入文件: 预处理(preprocessing),编译(compilation),汇编(assembly)和连接(linking).源文件后缀名标识源文件的 语言,但是对编译器来说,后缀名控制着缺省设定......

阅读全文(4457) | 评论:0

Makefile使用初步 (2006-05-12 23:59:00)

摘要:一. 为什么使用变量
  变量在makefile中用来代表一个字符串,用来表示 1. 一系列文件的名字
2. 传递给编译器的参数
3. 需要运行的程序
4. 需要查找源代码的目录
5. 你需要输出信息的目录
6. 你想做的其它事情。 说白了,这有些类似于编程语言中的宏。

   二. 定义变量的方式和建议
   变量的名字是大小新敏感的,从大的方面来说,makefile中的变量被分为两种,一个是用=来定义的,老外叫right-hand sides of variable,另外一种是用define关键字定义的,叫做bodies of variable。先简单说这些,后面详述。
   传统上使用大写字母为变量命名,但是GNU推荐使用小写字母作为makefile内部使用的变量的名字,并用大写字母定义隐式规则中的参数或在命令行中允许用户重新定义的参数。

   三. 基本的变量引用
   用$(name)或${name}来引用一个变量,所以当你要表示一个$符号时,你要使用$$。当你只使用一个字母作为变量的名字时,你可以用$name来引用这个变量,不过GNU 并不推荐这样做,因为这种方式通常用来引用自动变量(Automatic Variables)。

    四. 两种风格的变量定义

GNU有两种定义变量的方式,它们的不同体现在定义它们的风格和他们被展开的方式。
   第一类叫做递归展开变量(Recursively Expanded Variable)。用=或define关键字都
可以定义这种变量,如果变量的定义引用了其它的变量,那么引用会一直展开下去,
直到找到被引用的变量的最新的定义,并以此作为改变量的值返回。例如: 代码: foo = $(bar)
bar = $(ugh)
ugh = Huh?
$(foo)的值究竟是什么......

阅读全文(4157) | 评论:0