天嵌 ARM开发社区

 找回密码
 注册
查看: 3026|回复: 6

操作GPIO引起电压变化

[复制链接]
单斗鱼 发表于 2012-4-10 14:29:31 | 显示全部楼层 |阅读模式
在TQ2440中,GPJCON[0:12]引脚设置为输出,内部上拉时,操作GPJDATA[0:7]时,会引起GPJDATA[8:12]的电压波动的。一秒的读写操作为1MHZ 这问题怎样解决?

#define GPJDATA_0to7(x) GPJDATA &=~(0xFF);GPJDATA |=(x);
write(){
unsigned char teyy;int texx;
GPJCON        &= ~(0X3FFFFFF);
GPJCON        |= (0X555555);
teyy=cpd[0];
for(texx=0;texx<10000000;texx++)       
                GPJDATA_0to7(teyy);//使用示波器查看时,操作这里时波动最大。波动电压为1V
}

 楼主| 单斗鱼 发表于 2012-4-10 15:55:04 | 显示全部楼层
我操作GPJDATA[0:7]时,使用示波器查看GPJDATA[8:12]。
回复

使用道具 举报

embedsky_lhh 发表于 2012-4-10 15:49:12 | 显示全部楼层
你是测试哪个IO波动有那么大?
回复

使用道具 举报

 楼主| 单斗鱼 发表于 2012-4-10 17:26:33 | 显示全部楼层
本帖最后由 TQ-lkp 于 2012-4-10 17:39 编辑

GPJ的波形,下面是帖图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 单斗鱼 发表于 2012-4-10 17:32:32 | 显示全部楼层
//write 8 bit data
#define GPJDATA_0to7(x) GPJDATA &=~(0xFF);GPJDATA |=(x);//printk(KERN_ALERT"%d",x);
//write 4 bit chip selection
#define GPJDATA_8to11(x) GPJDATA &=~(0xF<<8);GPJDATA |=(x<<8);

static int led_3d_open ()
{
        GPJCON        &= ~(0X3FFFFFF);
        GPJCON        |= (0X555555);
        return 0;
}
static ssize_t led_3d_write()
{
       
        unsigned char *cpd=cpdata;
        spinlock_t lock;
        int texx,cc;unsigned char teyy;
        copy_from_user(cpd,buf,MAXCOPYDATA);
        spin_lock_init(&lock);
        spin_lock(&lock);
//对GPJ的操作,其中CPD为一拥有固定数据的数组。
        teyy=cpd[0];
        GPJDATA_8to11(0x0);
        GPJDATA_0to7(teyy);
        teyy=cpd[1];
        GPJDATA_8to11(0xf);
//-----------------write data
        for(texx=0;texx<10000000;texx++)       
                {
                GPJDATA_0to7(teyy);
        }
        spin_unlock(&lock);
}


对上面的代码操作时,先操作一个led_3d_open ,再操作led_3d_write().波形是一次led_3d_open 开始至一次led_3d_write()结束所测量出来的结果。
回复

使用道具 举报

embedsky_lhh 发表于 2012-4-11 09:36:15 | 显示全部楼层
本帖最后由 embedsky_lhh 于 2012-4-11 09:36 编辑

你操作io的频率降低点试试
回复

使用道具 举报

 楼主| 单斗鱼 发表于 2012-4-11 23:14:32 | 显示全部楼层
跟操作速度有一些关系,GPJ我接的是一个5V的单片机。
回复

使用道具 举报

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

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2025-5-4 13:23 , Processed in 2.044823 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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