2936|7

1944

帖子

32

TA的资源

纯净的硅(高级)

M3/M4 Q/A汇总贴 [复制链接]

本帖最后由 azhiking 于 2014-12-24 00:39 编辑

前些日子家里出了些事情,答应maylove的事情迟迟没有能完成,很抱歉,接下来的时间我会把本版中大家遇到的问题汇总在这个贴子中,当然都是得到解决的问题,便于大家遇到同类问题时候进行查找和参考。
尽管M3已经不再供货,但是由于M3和M4在使用上差异不大,很多M3上解决问题的方法在M4上也能够用到,所以把M3上的问题一并汇集于此。还有一些是初学者经常会遇到的问题,也一并放于此

由于本版帖子较多,所以此贴我会不断地更新的。另外,也许漏掉了大家关注的问题,可以回帖指出,谢谢!

1. Q: StellarisWare Graphics Library除了库中的LCD驱动,市面上其他的驱动都支持吗?
    A:  凡是使用SSD2119  或ILI9320 驱动器的LCD,你都不需要自己编写底层驱动。
         而对于其他类型的驱动器的底层驱动,你可以参考上面提到的那两种驱动器的底层驱动,进行简单修改即可。
         TI StellarisWare Graphic Library 的是实现是分层的,只需修改最底层的与硬件操作相关的驱动文件即可。


2. Q: 有没有直接读写8bit端口的方法,就像以前的51单片机那样,P0=0xff,等等。谢谢!
    A:  GPIOPinWrite(GPIO_PORTA_BASE, 0xFF, dat);

3. Q: 8962数据手册说CMOD0和CMOD1两个管脚应该连接到地。请问,如果没有接地,会有什么影响?
    A:  CMOD0和CMOD1测试模式控制管脚.定义了 CMOD0和CMOD1两个管脚,生产过程中Luminary Micro用它们来测试器件。 这两个管脚没有最终用户功能,不能被使用。 CMOD管脚应该连接到地。这两个管脚如果不接地,可能会损坏芯片。因为这个两个关键是输入脚,器件手册建议没用的输入管脚接地或VCC,可以提供工作稳定性。但是,如果你这两个管脚没接地,应该不会引起芯片不能正常启动的问题!


4. Q: LM3S3739 SSI初始化调用外设库设置IO为SSI方式,则进入FaultISR?1.
         // PA2 SSI0CLK(SSCK)
         GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_2);
        // PA4 SSI0RX(MISO)
        GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_4);
       // PA5 SSI0TX(MOSI)
       GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_5);
      2.
      GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_2 | GPIO_PIN_4 | GPIO_PIN_5);
      GPIOPadConfigSet(GPIO_PORTA_BASE, GPIO_PIN_2 | GPIO_PIN_5 ,
      GPIO_STRENGTH_4MA, GPIO_PIN_TYPE_STD);
      都不行,请问问题出在那里?
    A:没有允许SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);

5. Q: GPIODirModeSet(GPIO_PORTF_BASE, GPIO_PIN_2 | GPIO_PIN_3, GPIO_DIR_MODE_HW);
         这个里的GPIO_PIN_2 | GPIO_PIN_3代表的是那个管脚呀,为什么要或一下。
    A: 代表F口第二脚和第三脚,同时将PF2和PF3设置成高阻态  

6. Q: 请问LM3S能与HC、LS等类型的5V芯片直接连接么?
    A: 正常工作电压是3.3V,是不能接5v的电压,但有部分GPIO是可以接5V 电压,比如有些输入信号是5v的电平,是可以接的.但一定要根据手册看明白那些GPIO是可以接5V的.需要仔细看一下相关型号的datasheet

7. Q: 用51做数字电压表或者使用AD时,因为用的USB供电电压不是标准,所以测出来的电压会有偏差,M3也会遇到这个问题吧,是如何解决的呢?
    A: 如果对ADC精度要求很高,建议外接参考电源,例如TI 的REF5025,REF5030,xxxx,具有LOW NOISE,HIGH ACCURACY,Low Temperature Drift: 20 ppm/°C,HIGH OUTPUT CURRENT: ±10mA,WIDE SUPPLY: 3.25V to 18V。
如果对精度要求,一般,M3可以使用内部ADC参考,该参考是通过LDO输出,参考电压的稳定性稍微比外部参考弱些,但是精度也是可以的。


8. Q: 8-mA驱动的斜率控制,为什么说是斜率控制?它与2,4有什么不同,与2有什么应用不同??
    A:  斜率控制,说白了就是上升沿时间,在一些总线中,还有一些芯片,都要求了信号上升沿时间,如果上升沿时间过长,可能导致数据错误,但如果用很高的斜率,也就是很短的上升沿时间,可能导致芯片过大的功耗,这都是我们不希望看到的。因此在硬件设计的时候就想找一个最佳值,及顾及了上升沿时间,也顾及了设备功率。但是在产品初期,可能无法遇到到所有可能的情况,等设备卖出去了才发现电流设置不正确,这时候我们就希望能以最少成本解决这个问题。对设备召回肯定是不现实的,如果芯片能软件调整,我们就可以仅更新固件即可达到调整设备的要求。

9. Q: 想请教下坛友, Stellaris系列cortex-M3的片内外设的中断是怎么实现的?希望能以IO口中断为例子,说下代码运行的过程,希望能具体点。
还有ARM内核的中断又是怎么个跳转过程,比如SysTick的的中断。
    A:  每种处理器都会在手册中说明中断地址的顺序,而这个顺序很重要,每次发生中断的时候就会去相应地址提取处理函数,也就是说这个中断向量的地址处存放的是我们的中断函数.默认的RAM或者FLASH在系统启动后从地址0处读取数据这个时候 存放了堆栈的初始化,然后是复位中断,这个时候程序跳转到main函数执行,
DCD     StackMem + Stack            ; Top of Stack
        DCD     Reset_Handler               ; Reset Handler
        DCD     NmiSR                       ; NMI Handler
        DCD     FaultISR                    ; Hard Fault Handler
        DCD     IntDefaultHandler           ; MPU Fault Handler
        DCD     IntDefaultHandler           ; Bus Fault Handler
        DCD     IntDefaultHandler           ; Usage Fault Handler
        DCD     0                           ; Reserved
        DCD     0                           ; Reserved
        DCD     0                           ; Reserved
        DCD     0                           ; Reserved
        DCD     IntDefaultHandler           ; SVCall Handler
        DCD     IntDefaultHandler           ; Debug Monitor Handler
        DCD     0                           ; Reserved
        DCD     IntDefaultHandler           ; PendSV Handler
        DCD     SysTick_ISR                 ; SysTick Handler

以上内容为字对齐,当发生SysTick 定时中断时就会到到 SysTick_ISR所在的地址执行这个函数,对于PC,LR,SP的操作C广语言是不需要操作的

10. Q: 请问M4的FPU浮点运算单元需要在CCS中设置吗,为什么软件开启FPU没用?
      A: CCS编译器是默认开启了FPU功能,在propertise——bulid——arm compiler——processor options 里的specify floating point support里配置,默认为FPv4SPD16 。如果编译器使能了FPU功能,而芯片未开启FPU单元,程序运行到浮点语句时就会出现异常。相反,如果编译器未使能FPU功能,芯片即使开启了FPU单元,程序还是会按照未使能FPU的代码进行处理。

一旦选择“use FPU”功能,如果代码中带有单精度浮点运算的代码,编译器就会使用带V的FPU单元汇编指令,无论芯片是否开启了FPU单元功能。如果选择不使用FPU功能,即使芯片开启了FPU单元,编译器一样不会采用带V的汇编指令。
          可参考文档: 简单介绍Cortex M4 FPU 单精度浮点运算单元.docx (469.1 KB, 下载次数: 7)

最新回复

楼主,你今年都没有更新哎!有没有IIC通信,给外接芯片发数据的程序或者经验分享哦  详情 回复 发表于 2015-4-4 15:19

回复
举报

2453

帖子

19

TA的资源

五彩晶圆(中级)

不错。
个人签名    懒得很

回复

6066

帖子

92

TA的资源

裸片初长成(初级)

谢谢!

回复

81

帖子

0

TA的资源

一粒金砂(中级)

你好,我是新成员。使用M3板子做项目。
我写两个双边沿触发IO中断,功能相同。每个IO中断的功能是:当外部有音频信号进来时,该IO口(音频信号产生标志)将产生下降沿中断,传输完,响应上升沿中断。要求当音频从其中一个输入经另一个输出时,貌似不稳定还是怎么滴。多次(4、5次)进行这个中断的响应顺序乱套。不是发收发收。。。这样子,而是发发收发收。。,总之不完全对。可能是什么原因,希望得到指点,谢谢啊!

点评

可能是中断处理延迟的问题,理顺时序,定义不同的中断优先级试试看  详情 回复 发表于 2014-12-25 12:15

回复

1944

帖子

32

TA的资源

纯净的硅(高级)

1301120345 发表于 2014-12-25 10:42
你好,我是新成员。使用M3板子做项目。
我写两个双边沿触发IO中断,功能相同。每个IO中断的功能是:当外部有音频信号进来时,该IO口(音频信号产生标志)将产生下降沿中断,传输完,响应上升沿中断。要求当音频从其中一个输入经另一个输出时,貌似不稳定还是怎么滴。多次(4、5次)进行这个中断的响应顺序乱套。不是发收发收。。。这样子,而是发发收发收。。,总之不完全对。可能是什么原因,希望得到指点,谢谢啊!

可能是中断处理延迟的问题,理顺时序,定义不同的中断优先级试试看。或者置同步标志位,强制同步(类似操作系统的PV操作。)

点评

我项目是半双工通信,发方收方可以互换的,设置中断优先级的方式恐怕不行吧?GPIO中断响应存在抖动吗,会不会是抖动导致程序乱套啊。如果我用延时去抖动,延时函数应该放在哪里呢,是中断产生但是还未读取管脚状态的  详情 回复 发表于 2014-12-26 11:01

回复

81

帖子

0

TA的资源

一粒金砂(中级)

azhiking 发表于 2014-12-25 12:15
可能是中断处理延迟的问题,理顺时序,定义不同的中断优先级试试看。或者置同步标志位,强制同步(类似操作系统的PV操作。)
我项目是半双工通信,发方收方可以互换的,设置中断优先级的方式恐怕不行吧?GPIO中断响应存在抖动吗,会不会是抖动导致程序乱套啊。如果我用延时去抖动,延时函数应该放在哪里呢,是中断产生但是还未读取管脚状态的时候还是中断响应函数置标志结束了后续的中断处理函数中啊?不懂消抖动哎

回复

81

帖子

0

TA的资源

一粒金砂(中级)

楼主,你今年都没有更新哎!有没有IIC通信,给外接芯片发数据的程序或者经验分享哦

点评

很抱歉,前面换了工作,这段时间太忙,以后会补上的  详情 回复 发表于 2015-4-4 20:26

回复

1944

帖子

32

TA的资源

纯净的硅(高级)

1301120345 发表于 2015-4-4 15:19
楼主,你今年都没有更新哎!有没有IIC通信,给外接芯片发数据的程序或者经验分享哦

很抱歉,前面换了工作,这段时间太忙,以后会补上的

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表