打印
[微控制器/MCU]

单片机开发500问!不断更新中.....

[复制链接]
楼主: Massif123
手机看帖
扫描二维码
随时随地手机跟帖
21
Massif123|  楼主 | 2010-1-26 16:27 | 只看该作者 回帖奖励 |倒序浏览
多谢鼓励,新的问答来了!
36、请问LPC2400系列微控制器的程序保密性能如何?
LPC2400可以有3种加密机制,可通过设置寄存器CSP加密,具体操作请查看我们的用户手册。此外,在我们还和一家国际知名的软件加密公司合作,提供针对代码的软加密。在NXP的网上有详细信息可以查找到。

37、NXP半导体产品应用在电表中可以有效预防盗电事件吗? 如何预防?
防窃电有几种方式,最主要的是通过对电流电压的计量芯片来实现。从MCU的角度,使用掉电中断等方式来记录不正常的上电和掉电事件,以便跟踪。

38、LPC2400系列可以外扩最多多大容量存储器?
对于SRAM、SDRAM、NOR Flash和NAND Flash,支持的容量是不同的,有几百MB,也可达GB。详情请参见数据手册。

39、开发LPC1700芯片需要做哪些准备?
和开发其他NXP MCU基本类似,有开发板、集成开发环境、调试仿真工具、并且可以从我们的网站下载最新的示例代码。

40、在很多情况下,以单片机为主控制器的测量系统要长时间保持无故障运行,因此其自诊断就成为关键。请介绍一下有关单片机系统的故障自诊断的一些知识?

    答:要保证系统可以长时间故障运行,防止干扰是很重要的。最有效的方法是去除干扰源、隔断干扰路径,但往往很难做到,所以只能看单片机抗干扰能力够不够强了。单片机干扰最常见的现象就是复位;至于程序跑飞,其实也可以用软件陷阱和看门狗将程序拉回到复位状态;所以单片机软件抗干扰最重要的是处理好复位状态。

    一般单片机都会有一些标志寄存器,可以用来判断复位原因;另外也可以自己在RAM中埋一些标志。在每次程序复位时,通过判断这些标志,可以判断出不同的复位原因;还可以根据不同的标志直接跳到相应的程序。这样可以使程序运行有连续*,用户在使用时也不会察觉到程序被重新复位过。

使用特权

评论回复
22
cjz123| | 2010-1-27 11:25 | 只看该作者
谢谢楼主

使用特权

评论回复
23
nxponline| | 2010-1-27 23:14 | 只看该作者
:D继续!成为一代强贴!

使用特权

评论回复
24
Massif123|  楼主 | 2010-1-28 15:27 | 只看该作者
36、ARM JTAG调试时检测不到目标系统   
答:调试前,请把目标板连接好,然后用调试软件检测目标系统。如果检测不到目标系统,请做以下的检查。
        A - 有些芯片是可以加密的,加密后JTAG接口就自动被禁用掉了;
        B - 确定你的连接是正确的;
        C - 确定你使用的仿真器是被调试软件支持的
        D - 对WIGGLER而言,因为没有固定的电路图,所以需要在软件里做相应的设置;
        E - 对LPC2000系列而言,RTCK管脚一般是用来控制是否使能JTAG接口的,请查阅数据手册;
        F - 如果你用的芯片比较特殊,例如STR91X,因为内部扫描链是串接的,请设置好TAP,以让仿真器知道扫描链的长度;

37、ARM JTAG调试时程序下载不正确,程序跑飞
   一般的用户,刚开始调试的时候,编译好程序,就直接点击调试。但结果发现调试根本没有按照预期的进行。发生这种问题一个最常见的原因是程序根本没有正确下载到目标系统中去。
    对SDRAM而言,上电后一般都是不可以使用的,需要进行相应的配置才可以使用。所以如果是在SDRAM里进行调试,请先对SDRAM进行配置,或者确定SDRAM已经初始化好了。如果是内部SRAM,一般来说,可以直接使用。所以,做一般的测试,最简单的办法是使用片内SRAM。
    在调试的时候,最好是自己通过内存观察窗口判断一下,程序是否是下载到期望的地址去了,下载是否正确。以免出现调试跑飞的问题。

38、ARM JTAG调试时软件断点和硬件断点的区别和数量限制
    所有的ARM7/ARM9芯片,内部有2个断点单元。断点单元可以用于设置硬件断点或是软件断点。
   先说说硬件断点和软件断点的区别。硬件断点是通过监测地址来触发断点的。所以,硬件断点可以设置在任何地方,不管是FLASH,ROM还是RAM,只要给定地址就可以了。而软件断点是通过监测特定的指令来触发断点的。在某个地址设置软件断点的时候,仿真器会将这个地址的数据/指令替换成一个特殊格式的指令。断点单元通过监测这个特殊格式的指令来触发断点。
    因为需要执行替换操作,所以软件断点只能设置在RAM里面。如果断点单元设置成监测某个地址,那一个断点单元只能监测一个地址,所以只能设置2个硬件断点。如果断点单元设置成监测某个固定格式的指令,那一个断点单元可以支持数量没有限制的软件断点。因为设置软件断点的时候只需要把要说着断点的位置的数据替换成被监测的固定格式的指令就可以了。这就是为什么大家经常看到说支持2个硬件断点和数目不限的软件断点。但这里还是要提醒以下,
如果2个断点单元都用于硬件断点,那用户就不可以设置软件断点了。

39、ARM JTAG调试时在FLASH内进行调试注意事项
    在FLASH进行调试,本质上来说,和在SDRAM/SRAM里调试是一样的。区别是,FLASH是只读的,对FLASH进行写操作的时候,需要特别的命令。如果IDE支持直接将程序烧写到FLASH进行调试,那调试就会和在RAM里差不多。如果IDE不支持自动下载,可以先通过烧写软件将要调试的程序烧写到FLASH里面,然后在进行调试。在FLASH和RAM里面进行调试的另外一个区别在与可使用的断点数量。因为FLASH是只读的,所以只能使用硬件断点,所以最多只能使用2个断点。很多时候,单步运行也需要一个断点来实现,所以,用户只能使用一个断点。清楚了这点,碰到提示说没有断点可以使用了,不能设置断点,或者不能单步运行的时候,就知道是怎么回事情了。

40、ARM JTAG调试时软件断点被覆盖   
前面我们提到,软件断点是通过替换指令来实现的。这就存在一个可能,设置好的软件断点被覆盖掉了。特别是自拷贝程序,仿真器在拷贝前在某个地址设置了一个软件断点。然后执行拷操作,这样的结果是设置断点的位置的值由于自拷贝而发生了改变,由于新的值并不是被监测的特殊指令,所以这个断点就会失效。造成在这个位置程序不能停止的情况。这样的情况相对来说比较少,这里只是提醒一下,希望对碰到类似情况的朋友有帮助。

41、ARM JTAG调试时反汇编调试
   在调试的时候,一般看的都是源文件,汇编或C语言。如果调试的时候发现运行与期望的不一或是跑飞,可以看看反汇编,单不运行几步,然后通过观察寄存器和内存来判断每条指令的运行是否正确。

使用特权

评论回复
25
Massif123|  楼主 | 2010-2-3 13:37 | 只看该作者
36、动态储器和静态存储器有什么区别?

当然动态储器(DRAM)与静态存储器(SRAM)除了速度外,它们的价格也是一个天一个地,依据实际情况进行设计,以降底产品成本,下面是它们的价绍.

     SRAM(静态存储器)的特点是工作速度快,只要电源不撤除,写入SRAM的信息就不会消失,不需要刷新电路,同时在读出时不破坏原来存放的信息,一经写入可多次读出,但集成度较低,功耗较大。并且连接的管脚很多.SRAM一般用来作为计算机中的高速缓冲存储器(Cache)。

      DRAM是动态随机存储器(Dynamic Random Access Memory),它是利用场效应管的栅极对其衬底间的分布电容来保存信息,以存储电荷的多少,即电容端电压的高低来表示“1”和“0”。DRAM每个存储单元所需的场效应管较少,常见的有4管,3管和单管型DRAM。因此它的集成度较高,功耗也较低,但缺点是保存在DRAM中的信息__场效应管栅极分布电容里的信息随着电容器的漏电而会逐渐消失,一般信息保存时间为2ms左右。为了保存DRAM中的信息,必须每隔1~2ms对其刷新一次。因此,采用 DRAM的计算机必须配置动态刷新电路,防止信息丢失。DRAM一般用作计算机中的主存储器。

使用特权

评论回复
26
zmmhmily| | 2010-2-6 22:52 | 只看该作者
怎么没有了? 做个记号

使用特权

评论回复
27
6019赵文| | 2010-2-14 22:28 | 只看该作者
这个挺不错,期待

使用特权

评论回复
28
linux1| | 2010-2-15 00:53 | 只看该作者
楼主加油,期待完整版

使用特权

评论回复
29
LPC300| | 2010-2-15 21:12 | 只看该作者
这个不错,期待中

使用特权

评论回复
30
yoyowodeai| | 2010-2-16 19:37 | 只看该作者
楼主继续努力

使用特权

评论回复
31
北京户口| | 2010-2-16 20:37 | 只看该作者
这个火呀,加油

使用特权

评论回复
32
六楼的窗户| | 2010-2-16 22:17 | 只看该作者
同意,楼主赶紧连载啊

使用特权

评论回复
33
米其林r| | 2010-2-17 23:00 | 只看该作者
不错,期待

使用特权

评论回复
34
年轻不在| | 2010-2-18 19:00 | 只看该作者
很有可能成为一代强帖啊

使用特权

评论回复
35
手写识别| | 2010-2-18 19:50 | 只看该作者
楼主好人呐

使用特权

评论回复
36
思行合一| | 2010-2-18 20:31 | 只看该作者
500问啊,楼主加油

使用特权

评论回复
37
无语凝咽| | 2010-2-18 21:34 | 只看该作者
这个主意不错,加油

使用特权

评论回复
38
想实习去| | 2010-2-18 22:00 | 只看该作者
好贴,顶

使用特权

评论回复
39
北京户口| | 2010-2-19 15:10 | 只看该作者
期待下文!

使用特权

评论回复
40
Massif123|  楼主 | 2010-2-22 12:35 | 只看该作者
本帖最后由 Massif123 于 2010-2-22 12:37 编辑

谢谢大家的鼓励,祝大家虎年大吉啊,现在继续发问答
36.哪款ARM支持浮点运算?ARM7难道不支持浮点数运算吗?
   答:一般的ARM9芯片都带有硬件浮点运算。ARM7不支持硬件浮点运算。如果需要可以使用软件算法模拟实现。软件模拟就是一个整数,令一个(小数放大的)整数,为了精确,例如:
3.6*4.2 =36*42=1512,结果再取余运算,1512%100=12剩下放大的小数,结果再取整,1512/100=15就是整数了,加一起就是15.12。

37、哪款ARM7的芯片带网口?
答:LPC2300/2400系列ARM7都带有网口

38、我是ARM初学者,有些问题:
a.DebugInRAM和DebugInRAM有什么 区别?是不是一个放在FLASH中运行?一个放在RAM中运行?
b.jtag用到8个脚,用20针是不是太浪费了?
c.PLL 在156-320MHz,如果速度低了不能运行吗?
d.LPC2132的 FLASH实际可以烧写几次?超过了出错吗?

答:a.理解的没有问题,DebugInRAM是在RAM内运行,DebugInFlash实在Flash内运行。
b.JTAG也可用8针或10针。
c.正确,低了或高了都不稳定,会出问题。
d.可以烧写几十万次,一般情况下不会超过它的寿命,如果超过了会出错。

39、MCU中GPIO输入与输出方向如何选择?有何区别?
答:请使用方向寄存器IO0DIR控制方向,
置1寄存器IO0SET:置1
置0寄存器IO0CLR:置0
接上拉电阻根据具体电路分析

40、模拟地与电源如果我不使用LPC片内的AD, VSSA,VSSA(pll), VDDA(1.8v), VDDA(3.3v)这几个可以悬空吗?
答:最好不要悬空,给一个确定的电平能提高系统的稳定性。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则