天嵌 ARM开发社区

 找回密码
 注册
查看: 3389|回复: 3

裸奔程序和uCOS读取DM9000 ID的方法

[复制链接]
亚瑟王 发表于 2010-5-10 15:35:50 | 显示全部楼层 |阅读模式
在程序中调用下面这段代码可以读到DM9000的ID号:
#define        DM9000_BASE                0x20000300
#define        DM9000_DATA_OFFSET        4
static U8 dm9000_ior(int reg)
{
        *(volatile U8 *)DM9000_BASE = reg;
        return *(volatile U8 *)(DM9000_BASE+DM9000_DATA_OFFSET);
}

static void rd_dm9000_id(void)
{
        U16 id;
       
        id = dm9000_ior(0x28) | (dm9000_ior(0x29)<<8);
        printf("read dm9000 vid = 0x%x\n", id);
       
        id = dm9000_ior(0x2a) | (dm9000_ior(0x2b)<<8);
        printf("read dm9000 pid = 0x%x\n", id);
       
        id = dm9000_ior(0x8) | (dm9000_ior(0x9)<<8);
        printf("read dm9000 reg(0x09,0x08) = 0x%x\n", id);
       
        printf("dm9000 isr = 0x%x\n", dm9000_ior(0xfe));
}
 楼主| 亚瑟王 发表于 2010-5-10 18:05:47 | 显示全部楼层
<***************************************>
               TQ2440 Test Program
                www.embedsky.net
<***************************************>
read dm9000 vid = 0xa46
read dm9000 pid = 0x9000
read dm9000 reg(0x09,0x08) = 0x3837
dm9000 isr = 0x0

Please select function :
0 : Please input 1-11 to select test
1 : Test PWM
2 : RTC time display
3 : Test ADC
4 : Test interrupt and key scan
5 : Test Touchpanel
6 : Test TFT LCD
7 : Test IIC EEPROM
8 : UDA1341 play music
9 : UDA1341 record voice
10 : Test SD Card
11 : Test CMOS Camera

上面列出来实际运行时获取的DM9000的ID号,将1楼的代码放到TQ2440_Test程序的main.c中,然后在main()函数中的“MMU_init();”上面一行添加rd_dm9000_id();即可读取正确的ID号。
回复

使用道具 举报

zajiju 发表于 2011-1-2 15:17:32 | 显示全部楼层
我之前读出的ID不对,试试板主的哈。
回复

使用道具 举报

braveboys 发表于 2011-8-14 21:34:03 | 显示全部楼层
这个貌似也不对。。。
回复

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-5-2 04:59 , Processed in 2.040177 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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