谈F28M35的M3侧的blink例程

hlx3012   2012-4-17 11:55 楼主

从简单的谈起吧。

 

 

1、程序先进行了HWREG(SYSCTL_MWRALLOW) =  0xA5A5A5A5;  因为 //必须写入0xA5A5A5A5,之后才能够改写一些被MWRALLOW保护的寄存器

 

关于哪些寄存器被保护可以参考1.13.1 System Control, Configuration Register Map

 

2、之后进行了    SysCtlClockConfigSet(SYSCTL_USE_PLL | (SYSCTL_SPLLIMULT_M & 0xA) |
                         SYSCTL_SYSDIV_1 | SYSCTL_M3SSDIV_1 |
                         SYSCTL_XCLKDIV_4);

 

//设置 PLL,PLLSYSCLK=200M,M3 = 100MHz and = 100MHz,XPLLCLKOUT=50MHZ

 

     //SysCtlClockConfigSet(unsigned long ulConfig)                   
     //bits 21, 20 of ulConfig 代表SYSDIVSEL,设定C28X内核的速度是PLLSYSCLK除1、2、4、8,这里设为1
     //bits 19, 18 of ulConfig 代表M3SSDIVSEL,设定M3内核的速度是PLLSYSCLK除1、2、4,,这里设为1
     //bits 17, 16 of ulConfig 代表XPLLCLKCFG,设定XPLLCLKOUT的速率为PLLSYSCLK除1、2、4,这里设为4
     //bits 9-0 of ulConfig 代表SYSPLLMULT的整数和小数部分,这里设为10;PLLSYSCLK = Fref * SYSPLLMULT /2 /SYSDIVSEL divider,
     //bit 31 of ulConfig代表SYSPLLCTL[0],允许PLL上电

 

3、    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);

             // 用于设定Run Mode Clock Gating Control Register  (RCGC)寄存器

 

 

4、  // 禁止看门狗模块
    SysCtlPeripheralDisable(SYSCTL_PERIPH_WDOG1);
    SysCtlPeripheralDisable(SYSCTL_PERIPH_WDOG0);
   
    //允许中断
    IntMasterEnable();

    // 设置相应的GPIO引脚为输出状态,为推挽输出,无弱上拉.
    GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE, GPIO_PIN_7);
    GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_7, ~0);

回复评论 (25)

这个例程中唯一值得讨论的就是 SysCtlClockConfigSet

 

这个设置了F28M35的28X内核和M3内核的时钟。

 

Fout = Fref * SYSPLLMULT   在TI的开发板上,Fref=20MHZ,所以这里Fout =200MHZ

 

PLLSYSCLK = Fref * SYSPLLMULT /2 /SYSDIVSEL   给到28x内核SYSDIVSEL为1,也就是给28X内核的是100MHZ的时钟

 

M3SSCLK = Fref * SYSPLLMULT / 2 / SYSDIVSEL divider / M3SYSDIVSEL divider   设定M3内核的速度是PLLSYSCLK除SYSDIVSEL后除1、2、4,,这里设为1,也就是给M3内核的是100MHZ的时钟

 

XPLLCLKOUT = PLLSYSCLK/XPLLCLKOUTDIV   这里设为4,也就是给CLKOUT的是50MHZ的时钟

 

具体的可以看下面的图:

 

555.JPG 666.JPG

点赞  2012-4-17 12:09
呵呵,刚买了块板,有时间了搞搞,谢谢例程!!
点赞  2012-4-18 16:57

麻烦楼主了

您好!看到你发表了这么多文章,每一个都很经典。我是一个菜鸟,刚开始学习这一块。对您上传的协奏曲视频很感兴趣,但自己刚申请的号,芯币不够,能不能麻烦您指导一下,介绍一些关于H52C1的资料,现在真的无处着手,希望楼主帮帮忙,非常感谢!!
点赞  2012-7-17 16:30
呃,楼上。其实如果愿意学,把每个concerto的例程都看一遍就基本上差不多了。

至于视频,其实没什么很大的用处,但是我也提供了TI官网的直接连接,楼主愿意的话可以直接到官网上去看
点赞  2012-7-18 10:44

回复 5楼 hlx3012 的帖子

谢谢您的建议,我也那样做了,就是有几个问题还是想请教下你,希望指导一下。
第一个,麻烦楼主能看下我的主题里面有一个求救的问题,双核例子验证时老是出现那个错误,困扰了好久,不知道怎么解决,占用您点时间,麻烦你看一下,谢谢了。
第二个,我现在开始练习着做控制子系统的例程,它里面说的是在每一个控制子系统运行前,必须先运行setup_m3文件在M3主系统中,是不是也就是说我们每次做关于控制的例程时,也必须想前面双核的一样创建两个工程,那个主子系统也就是M3系统是不是就运行这个文件。另一个控制子系统就运行我们要实现的那个例程的文件。
就这两个问题,希望楼主帮忙解答一下,非常感谢。
点赞  2012-7-22 20:09
1、芯片本身有BUG,双核同时运行,确实有些问题,但是还是可以同时运行的,具体的,是要手动来调,先双核都halt,然后M3run,再28xrun,再MAIN程序中m3的bootIPC向28Xboot发送boot指令,28x跳转到main

很麻烦的,楼主看看boot rom的说明,想办法绕过去,多做几次试验

不过话说回来,用CCS调试的时候,load程序后会自动进入main函数,也就没有这么麻烦了,哎,有个BUG说不清楚,楼主多试试。

2、是的调试28x侧的时候之前要先让m3侧运行setup_m3
点赞  2012-7-23 15:27

回复 7楼 hlx3012 的帖子

非常感谢,我试一下,麻烦你了
点赞  2012-7-24 10:43

回复 7楼 hlx3012 的帖子

楼主,在麻烦问一下,如果要自己做关于F28M35的PCB板子,有没有相关的封装库,我在TI官网上看了下,似乎没发现。问下楼主,如果有的话我再仔细好好的找一下。
点赞  2012-7-24 11:11
没有封装库,自己花吧

[ 本帖最后由 hlx3012 于 2012-7-24 15:37 编辑 ]
点赞  2012-7-24 15:36

回复 10楼 hlx3012 的帖子

嗯,好吧。
点赞  2012-7-31 11:17

回复 10楼 hlx3012 的帖子

楼主,按你说的,我把那个例程又试了好几次,但是问题还是老是那样,是不是板子硬件有问题。
点赞  2012-7-31 11:18


这么久了还有问题,究竟是什么问题呀?你说清楚,我帮你做验证试验。....
点赞  2012-7-31 16:02

回复 13楼 hlx3012 的帖子

楼主,请问下你用F28M35H52C1做例程了没?还是我上次说的问题,第二次C28核里面老是加载不进去程序,错误就是我上次请教你那个问题?还有就是为什么我一连接目标板子,也经常会出错,老是让重新启动板子,而且还不是一次两次,偶尔才会不提示让重启,所以很郁闷。这块板子上面没有重启和复位键,是不是每次都要拔电源,这样对板子危害应该很大吧?
点赞  2012-8-1 10:19

回复 13楼 hlx3012 的帖子

https://bbs.eeworld.com.cn/thread-341027-1-1.html这个也就是现在常遇到的一个问题,麻烦楼主了。
点赞  2012-8-1 10:21

回复 13楼 hlx3012 的帖子

因为刚学习这些知识,好多有地方都不知道该怎样去着手,所以解决问题能力有点差,这个问题也搁置了好久,希望楼主帮忙,小弟感激不尽。
点赞  2012-8-1 10:35
我做了例程,我用的是TI的DEMO板,没有这个问题,从来没有出现过“有时候是一个核能连接的上,一个连接不上。有时候是两个都能连接上”的问题。

如上次谈到,这估计是开发板不稳定导致,估计是供电有问题,但这仅仅是估计。

所以只能说,你做交叉试验,确认问题原因:芯片,开发板,仿真器,CCS,驱动.....

另外CCS有没有更新到最新版本?CCSV5.2,最老的CCS对于C2000内核的FLASH烧写是有BUG的。

再者,检查一下,C28X侧是否有加密

[ 本帖最后由 hlx3012 于 2012-8-1 11:45 编辑 ]
点赞  2012-8-1 11:28

回复 17楼 hlx3012 的帖子

好的,我再试下,不行了打电话问下厂家看是否是硬件问题。楼主顺便知道一下,对于我一个初学者,刚着手F28M35的学习,应该从哪几方面看起?怎样才能更好地入门?
点赞  2012-8-1 15:42
你用的是哪个厂家的板子?

F28M35包含的东西太多了,先看例程吧,感觉能够把例程看懂就已经很不错了。

耐着性子,从第一个例程一个个往下看,一个个寄存器的了解.........
点赞  2012-8-1 17:05
这个问题要是找到原因,记得分享一下哈。
点赞  2012-8-1 17:08
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复