硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5429|回复: 2
收起左侧

[有问必答] dm9000无法读ID,求大侠

[复制链接]

5

主题

4

回帖

5

积分

新手上路

积分
5
发表于 2014-5-16 16:34:26 | 显示全部楼层 |阅读模式
我用stm32vet6+dm9000+uip1.0,
一。硬件连接:fmsc_a16接cmd,  fsmc_ne1接cs,
二,地址设置:
#define   NET_BASE_ADDR        0x60000000#define   NET_REG_ADDR            (*((volatile uint16_t *) NET_BASE_ADDR))#define   NET_REG_DATA            (*((volatile uint16_t *) (NET_BASE_ADDR + 0x00020000)))
三FSMC设置


*/
static void DM9K_FSMCConfig(void)
{
    FSMC_NORSRAMInitTypeDef  FSMC_NORSRAMInitStructure;
    FSMC_NORSRAMTimingInitTypeDef  FSMC_NORSRAMTimingInitStructure;

    /*-- FSMC Configuration ------------------------------------------------------*/
    /*----------------------- SRAM Bank 1 ----------------------------------------*/
    /* FSMC_Bank1_NORSRAM4 configuration */
    FSMC_NORSRAMTimingInitStructure.FSMC_AddressSetupTime = 4;
    FSMC_NORSRAMTimingInitStructure.FSMC_AddressHoldTime = 4;
    FSMC_NORSRAMTimingInitStructure.FSMC_DataSetupTime = 4;
    FSMC_NORSRAMTimingInitStructure.FSMC_BusTurnAroundDuration = 4;
    FSMC_NORSRAMTimingInitStructure.FSMC_CLKDivision = 4;
    FSMC_NORSRAMTimingInitStructure.FSMC_DataLatency = 4;
    FSMC_NORSRAMTimingInitStructure.FSMC_AccessMode = FSMC_AccessMode_A;


    FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;
    FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
    FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM;
    FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
    FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
    FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
    FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
    FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
    FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
    FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
    FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
    FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
    FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &FSMC_NORSRAMTimingInitStructure;
    FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &FSMC_NORSRAMTimingInitStructure;

    FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);

    /* - BANK 1 (of NOR/SRAM Bank 0~3) is enabled */
    FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);

四。读取ID函数

uint32_t dm9k_ReadID(void)
{
    uint8_t vid1,vid2,pid1,pid2;

    if (s_FSMC_Init_Ok == 0)
    {
        DM9K_CtrlLinesConfig();
        DM9K_FSMCConfig();

        s_FSMC_Init_Ok = 1;
    }
    vid1 = ior(DM9000_REG_VID_L) & 0xFF;
    vid2 = ior(DM9000_REG_VID_H) & 0xFF;
    pid1 = ior(DM9000_REG_PID_L) & 0xFF;
    pid2 = ior(DM9000_REG_PID_H) & 0xFF;

    return (vid2 << 24) | (vid1 << 16) | (pid2 << 8) | pid1;
}

*    函数名: ior
*    参  数: reg :寄存器地址
*    返  回: 无
*    功  能: 读出寄存器的值
*/
uint8_t ior(uint8_t reg)
{
    NET_REG_ADDR = reg;
    return (NET_REG_DATA);
}


五,debug出错地点  ior函数,return时出错
报错图片

ior函数return时出错

ior函数return时出错
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107157
QQ
发表于 2014-5-17 14:57:02 | 显示全部楼层
保证DM9000的焊接和正品芯片
回复

使用道具 举报

5

主题

4

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2014-5-18 14:41:38 | 显示全部楼层
我买的模块,网口的LED灯也可以亮
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-20 20:17 , Processed in 0.156577 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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