查看: 3158|回复: 3

[已解决] K40开发中遇到的问题,急!!!(已解决)

[复制链接]

该用户从未签到

29

主题

56

帖子

0

中级会员

Rank: 3Rank: 3

积分
238
最后登录
1970-1-1
发表于 2013-4-16 11:34:33 | 显示全部楼层 |阅读模式
13V供电的MCU无法驱动5V的液晶问题:
     电路设计如附件;
     我的初始化代码如下:
    // enable IRCLK
 
 
 
 

 


    MCG_C1|= 0x02;

    //enable LCD clocks

    SIM_SCGC3 = 0x40000000;

    //enable LCD pins 16-31, 37-38, 40-46,

    LCD_PENL = 0xFFFF0000;

    LCD_PENH = 0x00007F60;

    //enable LCD backplanes 16, 17, 18, 19

    LCD_BPENL = 0x000F0000;

    //assign back planes  - 0 is BP1, 1 is BP2 etc

    //LCD_WF3TO0 = 0x08040201;

    LCD_WF19TO16 = 0x08040201;

    LCD_GCR|=LCD_GCR_VSUPPLY(1);//vll3 internal 3v lcd

        

    //LCD_GCR|=LCD_GCR_VSUPPLY(01);// internal 5v lcd

    //LCD_GCR|=LCD_GCR_HREFSEL_MASK;//5V LCD

        

    //enable VIREG and Set TRIM

    //LCD_GCR|= LCD_GCR_RVEN_MASK;//5V LCD

    //LCD_GCR|= 0x0F000000;

        

        

    LCD_GCR|=LCD_GCR_CPSEL_MASK;//charge pump

    LCD_GCR|=LCD_GCR_DUTY(3);//1/4duty

    LCD_GCR|=LCD_GCR_SOURCE_MASK; //select alt clock IRC 32k

    LCD_GCR|=LCD_GCR_LCLK(4);

    //LCD_GCR|=LCD_GCR_RVEN_MASK;

    //Enable LCD

    LCD_GCR|= LCD_GCR_LCDEN_MASK;


    液晶显示很浅,不仔细看看不出来,请问还有哪里需要注意呢?

 

2、看门狗复位问题:

 

    我的初始化代码如下:

 

   

 
    //给看门狗模块解锁,以便写寄存器

    wdog_unlock();

    //预分频

    WDOG_PRESC = 0x0400;//看门狗使用的频率为48MHz/5=9.6MHz

    //阈值

    //看门狗超时时间设置为1s

    WDOG_TOVALH = 0x0092;

    WDOG_TOVALL = 0x7C00;

    //使用总线时钟,禁止窗口模式,禁止看门狗中断,开启看门狗

    WDOG_STCTRLH = 0x01D3;  

 

    看门狗已开启就复位,喂狗操作也不管用,不知道是什么问题。

 

3、TSI模块问题:

 

    我是直接移植的例程,但是操作过程中设置断点可以检测进入TSI中断,但是无法检测到具体键值,请问这是什么原因?


 
我知道答案 目前已有2人回答
clip_image001.jpg
回复

使用道具 举报

该用户从未签到

35

主题

508

帖子

0

金牌会员

Rank: 6Rank: 6

积分
2167
最后登录
1970-1-1
发表于 2013-4-16 16:17:58 | 显示全部楼层

RE:K40开发中遇到的问题,急!!!

关于TSI模块问题,TSI模块只提供一个中断入口地址,需要软件判断产生中断原因。可以通过查看TSI控制和状态寄存器查看产生中断的类型。对于判断键值也需要读取对应计数器寄存器看看是否达到按键门限。这些都要通过软件来判断。飞思卡尔提供touch sensor软件库,你可以参考一下。
TSSSW  : Touch Sensing Software Suite installer.
https://www.freescale.co
m/webapp/sps/site/prod_summary.jsp?code=K60_100&nodeId=01624698C9DE2DDDAF&fpsp=1&tab=Design_Tools_Tab
回复 支持 反对

使用道具 举报

该用户从未签到

35

主题

508

帖子

0

金牌会员

Rank: 6Rank: 6

积分
2167
最后登录
1970-1-1
发表于 2013-4-16 16:32:32 | 显示全部楼层

RE:K40开发中遇到的问题,急!!!(正解)

关于看门狗复位的问题, 一般Kinetis例程都会在初始阶段关掉看门狗,不知道你的程序是否在代码启动阶段运行了如下代码:
/* Disable the watchdog timer */
wdog_disable();
下面的代码是用来测试看门狗复位的,位于main()函数中。
你可以参考一下。
#define TIMEOUT_VALUE_BUS (1000 * periph_clk_khz)
//unlock the WDOG
wdog_unlock();
//enable wdog and use bus clock as counter source
WDOG_STCTRLH = WDOG_STCTRLH_WDOGEN_MASK | WDOG_STCTRLH_CLKSRC_MASK
| WDOG_STCTRLH_ALLOWUPDATE_MASK | WDOG_STCTRLH_IRQRSTEN_MASK;

//set timer overflow time to TIMEOUT_VALUE_BUS
WDOG_TOVALH = TIMEOUT_VALUE_BUS >> 16;
WDOG_TOVALL = TIMEOUT_VALUE_BUS;
wdog_delay(500);

//wait for WDOG reset
wdog_counter();
void wdog_delay(uint32 delaycnt)
{
uint32 u32TestDelay, dummy;
u32TestDelay = delaycnt;
do
{
dummy = WDOG_TOVALL;
}while(--u32TestDelay);
}
void wdog_counter(void)
{
uint32 u32TestDelay;

u32TestDelay = 0xFFFF;
do
{
printf("Current WDOG count: 0x%x\r", (WDOG_TMROUTH
回复 支持 反对

使用道具 举报

该用户从未签到

35

主题

508

帖子

0

金牌会员

Rank: 6Rank: 6

积分
2167
最后登录
1970-1-1
发表于 2013-4-16 16:59:35 | 显示全部楼层

RE:K40开发中遇到的问题,急!!!

3V供电驱动5V断码LCD屏的问题,LCD通用控制寄存器(LCD_GCR) 【VSUPPLY】位需要配置成0x0 或者0x3. 具体请参考手册 Table 53-38. LCD power supply options, 或者下面链接文档page154 table 17-1 http://cache.freescale.com/files/32bit/doc/quick_ref_guide/KQRUG.pdf
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-19 09:00 , Processed in 0.101058 second(s), 25 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表