查看: 7503|回复: 22

[已解决] MK64F12被锁定(已解决)

[复制链接]

该用户从未签到

3

主题

22

帖子

0

注册会员

Rank: 2

积分
56
最后登录
1970-1-1
发表于 2014-11-25 11:46:20 | 显示全部楼层 |阅读模式
本帖最后由 mcu8031 于 2014-12-1 13:05 编辑

各位FAE和大虾们:
      十万火急,目前在用MK64F12做项目,为了驱动LCD,启用了FlexBus,在调试阶段已经两次锁死芯片.
      现象如下,在下载程序时:

无法停止CPU

无法停止CPU

      已经使用了jlink 的unlock kentis 命令,无法解锁.用jflash也无法链接和擦除.
      第一颗锁死后用jcommand可以发现芯片,但是无法擦除和下载,第二颗是找不到芯片.
      请问遇到这种问题是否还有其它办法解锁,如何解锁.
      我现在不敢调试了.
我知道答案 目前已有22人回答
回复

使用道具 举报

该用户从未签到

3

主题

22

帖子

0

注册会员

Rank: 2

积分
56
最后登录
1970-1-1
 楼主| 发表于 2014-11-25 12:01:20 | 显示全部楼层
屏幕的初始化指令:
void CLcd::Init(void)
{
    ILI9486_WRITE_CMD(0XF9);
        ILI9486_WRITE_DATA(0x00);
        ILI9486_WRITE_DATA(0x08);

        ILI9486_WRITE_CMD(0xC0);
        ILI9486_WRITE_DATA(0x19);//VREG1OUT POSITIVE
        ILI9486_WRITE_DATA(0x1a);//VREG2OUT NEGATIVE

        ILI9486_WRITE_CMD(0xC1);
        ILI9486_WRITE_DATA(0x45);//VGH,VGL    VGH>=14V.
        ILI9486_WRITE_DATA(0x00);

        ILI9486_WRITE_CMD(0xC2);
        ILI9486_WRITE_DATA(0x33);

        ILI9486_WRITE_CMD(0XC5);
        ILI9486_WRITE_DATA(0x00);
        ILI9486_WRITE_DATA(0x28);//VCM_REG[7:0]. <=0X80.

        ILI9486_WRITE_CMD(0xB1);
        ILI9486_WRITE_DATA(0xB0);//0XB0 =70HZ, <=0XB0.
        ILI9486_WRITE_DATA(0x11);

        ILI9486_WRITE_CMD(0xB4);
        ILI9486_WRITE_DATA(0x02); //2 DOT FRAME MODE,F<=70HZ.

        ILI9486_WRITE_CMD(0xB6);
        ILI9486_WRITE_DATA(0x00);
        ILI9486_WRITE_DATA(0x42);//0 GS SS SM ISC[3:0];
        ILI9486_WRITE_DATA(0x3B);

        ILI9486_WRITE_CMD(0xB7);
        ILI9486_WRITE_DATA(0x07);

        ILI9486_WRITE_CMD(0xE0);
        ILI9486_WRITE_DATA(0x1F);
        ILI9486_WRITE_DATA(0x25);
        ILI9486_WRITE_DATA(0x22);
        ILI9486_WRITE_DATA(0x0B);
        ILI9486_WRITE_DATA(0x06);
        ILI9486_WRITE_DATA(0x0A);
        ILI9486_WRITE_DATA(0x4E);
        ILI9486_WRITE_DATA(0xC6);
        ILI9486_WRITE_DATA(0x39);
        ILI9486_WRITE_DATA(0x00);
        ILI9486_WRITE_DATA(0x00);
        ILI9486_WRITE_DATA(0x00);
        ILI9486_WRITE_DATA(0x00);
        ILI9486_WRITE_DATA(0x00);
        ILI9486_WRITE_DATA(0x00);

        ILI9486_WRITE_CMD(0XE1);
        ILI9486_WRITE_DATA(0x1F);
        ILI9486_WRITE_DATA(0x3F);
        ILI9486_WRITE_DATA(0x3F);
        ILI9486_WRITE_DATA(0x0F);
        ILI9486_WRITE_DATA(0x1F);
        ILI9486_WRITE_DATA(0x0F);
        ILI9486_WRITE_DATA(0x46);
        ILI9486_WRITE_DATA(0x49);
        ILI9486_WRITE_DATA(0x31);
        ILI9486_WRITE_DATA(0x05);
        ILI9486_WRITE_DATA(0x09);
        ILI9486_WRITE_DATA(0x03);
        ILI9486_WRITE_DATA(0x1C);
        ILI9486_WRITE_DATA(0x1A);
        ILI9486_WRITE_DATA(0x00);

        ILI9486_WRITE_CMD(0XF1);
        ILI9486_WRITE_DATA(0x36);
        ILI9486_WRITE_DATA(0x04);
        ILI9486_WRITE_DATA(0x00);
        ILI9486_WRITE_DATA(0x3C);
        ILI9486_WRITE_DATA(0x0F);
        ILI9486_WRITE_DATA(0x0F);
        ILI9486_WRITE_DATA(0xA4);
        ILI9486_WRITE_DATA(0x02);

        ILI9486_WRITE_CMD(0XF2);
        ILI9486_WRITE_DATA(0x18);
        ILI9486_WRITE_DATA(0xA3);
        ILI9486_WRITE_DATA(0x12);
        ILI9486_WRITE_DATA(0x02);
        ILI9486_WRITE_DATA(0x32);
        ILI9486_WRITE_DATA(0x12);
        ILI9486_WRITE_DATA(0xFF);
        ILI9486_WRITE_DATA(0x32);
        ILI9486_WRITE_DATA(0x00);

        ILI9486_WRITE_CMD(0XF4);
        ILI9486_WRITE_DATA(0x40);
        ILI9486_WRITE_DATA(0x00);
        ILI9486_WRITE_DATA(0x08);
        ILI9486_WRITE_DATA(0x91);
        ILI9486_WRITE_DATA(0x04);

        ILI9486_WRITE_CMD(0XF8);
        ILI9486_WRITE_DATA(0x21);
        ILI9486_WRITE_DATA(0x04);

        ILI9486_WRITE_CMD(0x36);
        ILI9486_WRITE_DATA(0x48);

        ILI9486_WRITE_CMD(0x3A);
        ILI9486_WRITE_DATA(0x55);

        ILI9486_WRITE_CMD(0x11);
        _delayms(120);
        ILI9486_WRITE_CMD(0x29);
}
回复 支持 1 反对 0

使用道具 举报

该用户从未签到

3

主题

22

帖子

0

注册会员

Rank: 2

积分
56
最后登录
1970-1-1
 楼主| 发表于 2014-11-25 11:56:28 | 显示全部楼层
LCD采用 ILI9486的驱动芯片,8位接口.链接方式描述如下:
D07对应CPU的FB_AD16:FB_AD23
WR对应CPU的FB_BE23_16
RD对应CPU的FB_OE_b
C/D对应CPU的FB_A27
CS对应CPU的FB_CS0
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

22

帖子

0

注册会员

Rank: 2

积分
56
最后登录
1970-1-1
 楼主| 发表于 2014-11-25 11:57:51 | 显示全部楼层
本帖最后由 mcu8031 于 2014-11-25 11:59 编辑

对引脚的初始化代码如下:
void CLcd::Create(void)
{
    //初始化LCD引脚
    //控制引脚
    //CS
    LCD_CS_PORT->CR[LCD_CS_PIN].Data = 0;
    LCD_CS_PORT->CR[LCD_CS_PIN].Bits.MUX = System:ort:ortPinAsAlt5;
    LCD_CS_PORT->CR[LCD_CS_PIN].Bits.DSE = System:ort::HIGH_DRIVE_STRENGTH;

    //RS
    LCD_RS_PORT->CR[LCD_RS_PIN].Data = 0;
    LCD_RS_PORT->CR[LCD_RS_PIN].Bits.MUX = System:ort:ortPinAsAlt6;
    LCD_RS_PORT->CR[LCD_RS_PIN].Bits.DSE = System:ort::HIGH_DRIVE_STRENGTH;

    //WR
    LCD_WR_PORT->CR[LCD_WR_PIN].Data = 0;
    LCD_WR_PORT->CR[LCD_WR_PIN].Bits.MUX = System:ort:ortPinAsAlt5;
    LCD_WR_PORT->CR[LCD_WR_PIN].Bits.DSE = System:ort::HIGH_DRIVE_STRENGTH;

    //OE
    LCD_OE_PORT->CR[LCD_OE_PIN].Data = 0;
    LCD_OE_PORT->PCR[LCD_OE_PIN].Bits.MUX = System:ort::PortPinAsAlt5;
    LCD_OE_PORT->PCR[LCD_OE_PIN].Bits.DSE = System::Port::HIGH_DRIVE_STRENGTH;

    //RESET
    LCD_RESET_PORT->PCR[LCD_RESET_PIN].Data = 0;
    LCD_RESET_PORT->PCR[LCD_RESET_PIN].Bits.MUX = System::Port::PortPinAsGPIO;
    LCD_RESET_PORT->PCR[LCD_RESET_PIN].Bits.DSE = System::Port::HIGH_DRIVE_STRENGTH;
    LCD_RESET_GPIO->PDDR.Data |= (0x01 << LCD_RESET_PIN); //输出模式
    LCD_RESET_GPIO->PSOR.Data &= ~(0x01 << LCD_RESET_PIN);//输出低电平
    _delayms(100);
    LCD_RESET_GPIO->PSOR.Data |= (0x01 << LCD_RESET_PIN);//输出高电平

    //BL
    LCD_BL_PORT->PCR[LCD_BL_PIN].Data = 0;
    LCD_BL_PORT->PCR[LCD_BL_PIN].Bits.MUX = System::Port::PortPinAsGPIO;
    LCD_BL_PORT->PCR[LCD_BL_PIN].Bits.DSE = System::Port::HIGH_DRIVE_STRENGTH;
    LCD_BL_GPIO->PDDR.Data |= (0x01 << LCD_BL_PIN);
    LCD_BL_GPIO->PSOR.Data |= (0x01 << LCD_BL_PIN);

    //数据引脚
    //D0
    LCD_D0_PORT->PCR[LCD_D0_PIN].Data = 0;
    LCD_D0_PORT->PCR[LCD_D0_PIN].Bits.MUX = System::Port::PortPinAsAlt5;
    LCD_D0_PORT->PCR[LCD_D0_PIN].Bits.DSE = System::Port::HIGH_DRIVE_STRENGTH;
    //D1
    LCD_D1_PORT->PCR[LCD_D1_PIN].Data = 0;
    LCD_D1_PORT->PCR[LCD_D1_PIN].Bits.MUX = System::Port::PortPinAsAlt5;
    LCD_D1_PORT->PCR[LCD_D1_PIN].Bits.DSE = System::Port::HIGH_DRIVE_STRENGTH;
    //D2
    LCD_D2_PORT->PCR[LCD_D2_PIN].Data = 0;
    LCD_D2_PORT->PCR[LCD_D2_PIN].Bits.MUX = System::Port::PortPinAsAlt5;
    LCD_D2_PORT->PCR[LCD_D2_PIN].Bits.DSE = System::Port::HIGH_DRIVE_STRENGTH;
    //D3
    LCD_D3_PORT->PCR[LCD_D3_PIN].Data = 0;
    LCD_D3_PORT->PCR[LCD_D3_PIN].Bits.MUX = System::Port::PortPinAsAlt5;
    LCD_D3_PORT->PCR[LCD_D3_PIN].Bits.DSE = System::Port::HIGH_DRIVE_STRENGTH;
    //D4
    LCD_D4_PORT->PCR[LCD_D4_PIN].Data = 0;
    LCD_D4_PORT->PCR[LCD_D4_PIN].Bits.MUX = System::Port::PortPinAsAlt5;
    LCD_D4_PORT->PCR[LCD_D4_PIN].Bits.DSE = System::Port::HIGH_DRIVE_STRENGTH;
    //D5
    LCD_D5_PORT->PCR[LCD_D5_PIN].Data = 0;
    LCD_D5_PORT->PCR[LCD_D5_PIN].Bits.MUX = System::Port::PortPinAsAlt5;
    LCD_D5_PORT->PCR[LCD_D5_PIN].Bits.DSE = System::Port::HIGH_DRIVE_STRENGTH;
    //D6
    LCD_D6_PORT->PCR[LCD_D6_PIN].Data = 0;
    LCD_D6_PORT->PCR[LCD_D6_PIN].Bits.MUX = System::Port::PortPinAsAlt5;
    LCD_D6_PORT->PCR[LCD_D6_PIN].Bits.DSE = System::Port::HIGH_DRIVE_STRENGTH;
    //D7
    LCD_D7_PORT->PCR[LCD_D7_PIN].Data = 0;
    LCD_D7_PORT->PCR[LCD_D7_PIN].Bits.MUX = System::Port::PortPinAsAlt5;
    LCD_D7_PORT->PCR[LCD_D7_PIN].Bits.DSE = System::Port::HIGH_DRIVE_STRENGTH;

    //设置安全等级
    CSim::FlexBusSecurityLevel(System::Sim::SIM_FB_SECURITY_LEVEL_3);
    //开启时钟
    CSim::FlexBusClockEnable(System::True);
    //设置FlexBus时钟分频
    CSim::FlexBusClockDivider(System::Sim::SIM_CLOCK_DIVIDER_1);
    //必须使能片选0的有效标记
    //CFlexBus::SpaceValid(System::FlexBus::FLEXBUS_CS0,System::True);
    CFlexBus::SpaceValid(System::FlexBus::FLEXBUS_CS0,System::True);
    //设置基地址
    CFlexBus::BaseAddress(System::FlexBus::FLEXBUS_CS0,LCD_ADDRESS_BASE);
    //设置有效空间
    CFlexBus::SpaceSize(System::FlexBus::FLEXBUS_CS0,System::FlexBus::FLEXBUS_SPACESIZE_64K);
    //设置端口宽度
    CFlexBus::PortSize(System::FlexBus::FLEXBUS_CS0,System::FlexBus::FLEXBUS_PORTSIZE_8BITS);
    //使能自动应答
    CFlexBus::AutoAcknowledgeEnable(System::FlexBus::FLEXBUS_CS0,System::True);
    //设置数据对齐方式    左对齐
    CFlexBus:ataAlignedMode(System::FlexBus::FLEXBUS_CS0,System::FlexBus::FLEXBUS_DATA_ALIGNED_LEFT);
    //设置字节使能模式
    CFlexBus::ByteEnableMode(System::FlexBus::FLEXBUS_CS0,System::FlexBus::FLEXBUS_BYTE_ENABLE_READ_WRITE);
    //设置等待周期
    CFlexBus::WaitStates(System::FlexBus::FLEXBUS_CS0,2);
    //设置引脚复用
    //CFlexBus::PortMultiplexing(System::FlexBus::FLEXBUS_MULTIPLEXING_CS1);
    //CFlexBus::PortMultiplexing(System::FlexBus::FLEXBUS_MULTIPLEXING_BE_23_16);
    CFlexBus::PortMultiplexing(System::FlexBus::FLEXBUS_MULTIPLEXING_BE_31_24);
    //有效片选
    CFlexBus::SpaceValid(System::FlexBus::FLEXBUS_CS0,System::True);

    //this->Init();
}
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

22

帖子

0

注册会员

Rank: 2

积分
56
最后登录
1970-1-1
 楼主| 发表于 2014-11-25 12:00:12 | 显示全部楼层
我都愁死了,发出的的代码咋那么多笑脸,在嘲笑我吗?
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

22

帖子

0

注册会员

Rank: 2

积分
56
最后登录
1970-1-1
 楼主| 发表于 2014-11-25 12:02:33 | 显示全部楼层
LCD的地址设置如下:
#define ILI9486_COMMAND_ADDRESS         *(unsigned char *)(0x70000000)
#define ILI9486_DATA_ADDRESS            *(unsigned char *)(0x78000000)

#define ILI9486_WRITE_CMD(cmd)            ILI9486_COMMAND_ADDRESS = cmd
#define ILI9486_WRITE_DATA(data)        ILI9486_DATA_ADDRESS = data
#define ILI9486_READ_DATA()                *(ILI9486_DATA_ADDRESS)

#define ILI9486_SET_X_CMD   (0x2A)
#define ILI9486_SET_Y_CMD   (0x2B)
#define ILI9486_WR_GRAM     (0x2C) //GRAM write
#define ILI9486_RD_GRAM     (0x2E) //GRAM read
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

22

帖子

0

注册会员

Rank: 2

积分
56
最后登录
1970-1-1
 楼主| 发表于 2014-11-25 12:05:12 | 显示全部楼层
请高手们出招啊................
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-11-25 12:58:24 | 显示全部楼层
    楼主你好请问你使用的是飞思卡尔官网提供的开发板还是自己设计的板子呢?
    在哪个例程上添加的这些功能
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    22

    帖子

    0

    注册会员

    Rank: 2

    积分
    56
    最后登录
    1970-1-1
     楼主| 发表于 2014-11-25 13:23:36 | 显示全部楼层
    自己做的板子啊,谁能帮忙解决我的问题...
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    22

    帖子

    0

    注册会员

    Rank: 2

    积分
    56
    最后登录
    1970-1-1
     楼主| 发表于 2014-11-25 13:24:34 | 显示全部楼层
    OS是用的MQX...
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-20 16:55 , Processed in 0.117692 second(s), 32 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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