6554|25

90

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

DM9000驱动 [复制链接]

各位兄弟,我的DM9000现在没什么反应,帮忙看看,谢拉!
所有的信息罗列如下,权当作一个总结,方便以后的朋友参考。

平台:三星C100,DM9000AEP,中断信号接EINT0引脚。

问题:没有中断报上来,插上网线后,两个指示灯看起来貌似正常。

我手上有一份友坚6410的BSP,包含DM9000的驱动,工作正常。

按照友坚的驱动,我在C100的BSP中做了如下工作:

1. Config.bib中,添加如下配置信息:

ETHNET      98000000    00100000        RESERVED                ; 1MB used for DM9000

2. Platform.bib中,添加如下信息:

   dm9isa.dll      $(_FLATRELEASEDIR)\dm9isa.dll      NK                         SHMK

3. Platform.reg中,添加如下内容:

;--------------DM9000A driver-------------------------------------------------
[HKEY_LOCAL_MACHINE\Comm\DM9CE]
    "DisplayName"="DM9000A ISA Fast Ethernet Adapter"
    "Group"="NDIS"
    "ImagePath"="dm9isa.dll"

[HKEY_LOCAL_MACHINE\Comm\DM9CE\Linkage]
    "Route"=multi_sz:"DM9CE1"

[HKEY_LOCAL_MACHINE\Comm\DM9CE1]
    "DisplayName"="DM9000A ISA Fast Ethernet Adapter"
    "Group"="NDIS"
    "ImagePath"="dm9isa.dll"

[HKEY_LOCAL_MACHINE\Comm\Tcpip\Linkage]
    "Bind"="DM9CE1"

[HKEY_LOCAL_MACHINE\Comm\DM9CE1\Parms]
    "BusNumber"=dword:0
    "BusType"=dword:1
    "XmitBuffer"=dword:20
    "RecvBuffer"=dword:20
    "IrqNumber"=dword:0
    "SysIntr"=dword:12        ; 0x12, SYSINT_FIRMWARE+2=18
    "IoAddress"=dword:88000000
    "NetworkAddress"="e0aac8de6352"

[HKEY_LOCAL_MACHINE\Comm\DM9CE1\Parms\TcpIp]
    "EnableDHCP"=dword:1
    "UseZeroBroadcast"=dword:0
;    "IpAddress"="159.99.249.238"
;    "Subnetmask"="255.255.255.0"
;    "DefaultGateway"="159.99.249.1"
;    "DNS"="10.192.2.45"
;    "WINS"="0.0.0.0"
;------------------------------------------------------------------------------


4. dm9isa.cpp中,更改CONFIG_PARAMETER:

  1. CONFIG_PARAMETER        g_szDm9ConfigParams[] =
  2. {
  3.         { CID_CONNECTION_TYPE, -1, NDIS_STRING_CONST("ConnectionType") },
  4.         { CID_SLOT_NUMBER, -1, NDIS_STRING_CONST("SlotNumber")},
  5.         { CID_BUFFER_PHYSICAL_ADDRESS, 0, NDIS_STRING_CONST("BufferPhysicalAddress")},
  6.         { CID_TXBUFFER_NUMBER, 0x20, NDIS_STRING_CONST("XmitBuffer")},
  7.         { CID_RXBUFFER_NUMBER, 0x10, NDIS_STRING_CONST("RecvBuffer")},
  8.         { CID_ADAPTER_NUMBER, 0, NDIS_STRING_CONST("AdapterNumber")},
  9.         { CID_IO_BASE_ADDRESS, 0x88000000, NDIS_STRING_CONST("IoAddress")},
  10.         { CID_IO_RANGE, 0x10, NDIS_STRING_CONST("IoRange")},
  11.         { CID_IRQ_NUMBER, 0, NDIS_STRING_CONST("IrqNumber")},
  12.         { -1,-1,NULL}
  13. };

复制代码



5. bsp_config.h中,添加系统中断号:


  1. #define SYSINTR_ETH                        (SYSINTR_FIRMWARE+2)        // for DM9000, value is 16+2=18, 0x12
复制代码


6. oemaddrtap_cfg.inc中,添加如下内容:

DCD 0x98000000, 0x88000000, 32  ; 32 MB SROM(SRAM/ROM) BANK 1

7. 在init.c中,添加如下内容:


  1. #define DM9000A_Tacs    (0x0)    // 0clk
  2. #define DM9000A_Tcos    (0x0)    // 0clk
  3. #define DM9000A_Tacc    (0x7)    // 14clk
  4. #define DM9000A_Tcoh    (0x0)    // 0clk
  5. #define DM9000A_Tah     (0x0)    // 0clk
  6. #define DM9000A_Tacp    (0x0)    // 0clk
  7. #define DM9000A_PMC     (0x0)    // normal(1data)

  8. static void InitializeGPIO(void)
  9. {
  10.         volatile S5PC100_SROMCON_REG *pSROMREG = (S5PC100_SROMCON_REG *)OALPAtoVA(S5PC100_BASE_REG_PA_SMC, FALSE);

  11.         pSROMREG->SROM_BW = (pSROMREG->SROM_BW & ~(0xF<<4)) |
  12.                 (1<<7)| // nWBE/nBE(for UB/LB) control for Memory Bank1(0=Not using UB/LB, 1=Using UB/LB)
  13.                 (1<<6)| // Wait enable control for Memory Bank1 (0=WAIT disable, 1=WAIT enable)
  14.                 (1<<5)| // Select SMC Address base(0=half word(16bits), 1=byte(8bits))
  15.                 (1<<4); // Data bus width control for Memory Bank1 (0=8-bit, 1=16-bit)

  16.         pSROMREG->SROM_BC1 = ((DM9000A_Tacs<<28)+(DM9000A_Tcos<<24)+(DM9000A_Tacc<<16)+(DM9000A_Tcoh<<12)+(DM9000A_Tah<<8)+(DM9000A_Tacp<<4)+(DM9000A_PMC));

  17. }

复制代码


8. 在intr.c中,添加如下内容:


  1. extern BOOL OALIntrEnableIrqs(UINT32 count, const UINT32 *pIrqs);

  2. volatile static S5PC100_GPIO_REG * pGPIOReg = NULL;

  3. //------------------------------------------------------------------------------
  4. //
  5. //  Function:  BSPIntrInit
  6. //
  7. BOOL BSPIntrInit()
  8. {
  9.         UINT32 value = 0;
  10.         pGPIOReg = (S5PC100_GPIO_REG *)OALPAtoVA(S5PC100_BASE_REG_PA_GPIO, FALSE);

  11.         // EINT0(GPH0:0)->IRQ_LAN
  12.         pGPIOReg->GPH0CON = (pGPIOReg->GPH0CON & ~(0x3<<0)) | (0x2<<0);        // IRQ_LAN by EINT0 (GPH0:0)
  13.         pGPIOReg->GPH0PUD = (pGPIOReg->GPH0PUD & ~(0x3<<0)) | (0x0<<0);        // pull-up/down disabled
  14.         pGPIOReg->GPIO_INT_CON.GPIO_INT0_CON = (pGPIOReg->GPIO_INT_CON.GPIO_INT0_CON & ~(0x7<<0)) | (0x0<<0); // Low level triggered

  15.     OALIntrStaticTranslate(SYSINTR_OHCI, IRQ_UHOST);        // for USB Host 1.1

  16.     OALIntrStaticTranslate(SYSINTR_ETH, IRQ_EINT0);
  17.     value = IRQ_EINT0;
  18.     OALIntrEnableIrqs(1, &value);

  19.     return TRUE;
  20. }
复制代码



9. 在intr.c中,OALIntrEnableIrqs函数中添加如下内容:


  1. //------------------------------------------------------------------------------
  2. //
  3. //  Function:  OALIntrEnableIrqs
  4. //
  5. BOOL OALIntrEnableIrqs(UINT32 count, const UINT32 *pIrqs)
  6. {
  7.     BOOL bRet = TRUE;
  8.     UINT32 VirtualIRQ;
  9.     UINT32 PhysicalIRQ;
  10.     UINT32 i;

  11.     OALMSG(OAL_INTR&&OAL_FUNC, (L"+OALIntrEnableIrqs(%d, 0x%08x)\r\n", count, pIrqs));

  12.     for (i = 0; i < count; i++)
  13.     {
  14. #ifndef OAL_BSP_CALLBACKS
  15.         VirtualIRQ = pIrqs[i];
  16. #else
  17.         // Give BSP chance to enable irq on subordinate interrupt controller
  18.         VirtualIRQ = BSPIntrEnableIrq(pIrqs[i]);
  19. #endif

  20.         if (VirtualIRQ == OAL_INTR_IRQ_UNDEFINED) continue;

  21.         // Translate to Physical IRQ
  22.         PhysicalIRQ = g_VirIrq2PhyIrq[VirtualIRQ];

  23. /////////////////// Added by Brian Liu ////////////////////////////////////
  24.                 if(PhysicalIRQ == PHYIRQ_EINT0)
  25.                 {
  26.                         g_pGPIOReg->GPIO_INT_MASK.GPIO_INT0_MASK &= ~(1<
  27.                 }
  28. //////////////////////////////////////////////////////////////////////////

  29.         if (PhysicalIRQ < VIC1_BIT_OFFSET)
  30.         {
  31.             g_pVIC0Reg->VICINTENABLE = (0x1<
  32.         }
  33.         // add for c100.. by shin..
  34.         else if (PhysicalIRQ < VIC2_BIT_OFFSET)
  35.         {
  36.             g_pVIC1Reg->VICINTENABLE = (0x1<<(PhysicalIRQ-VIC1_BIT_OFFSET));
  37.         }

  38.         else if (PhysicalIRQ < PHYIRQ_MAX_S5PC100)
  39.         {
  40.             g_pVIC2Reg->VICINTENABLE = (0x1<<(PhysicalIRQ-VIC2_BIT_OFFSET));
  41.         }
  42.         else
  43.         {
  44.             bRet = FALSE;
  45.         }
  46.     }

  47.     OALMSG(OAL_INTR&&OAL_FUNC, (L"-OALIntrEnableIrqs(rc = %d)\r\n", bRet));

  48.     return bRet;
  49. }
复制代码

最新回复

已经搞定。ISR里中断配置出的问题。  详情 回复 发表于 2010-2-8 10:53
点赞 关注

回复
举报

75

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

4
 
楼主开始玩100,太NB了,帮顶下!!1
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

5
 
lz先确认一下下面几个信息:
1. DM9000AEP的chipid能否正确读到?

2. lz用示波器量过中断pin没有?是物理中断根本就没有呢,还是有物理中断,但是软件检测不到中断?
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用楼主 lbqhope 的回复:
各位兄弟,我的DM9000现在没什么反应,帮忙看看,谢拉!
所有的信息罗列如下,权当作一个总结,方便以后的朋友参考。

平台:三星C100,DM9000AEP,中断信号接EINT0引脚。

问题:没有中断报上来,插上网线后,两个指示灯看起来貌似正常。

我手上有一份友坚6410的BSP,包含DM9000的驱动,工作正常。

按照友坚的驱动,我在C100的BSP中做了如下工作:

1. Config.bib中,添加如下配置信息:

ETHNET? ? ? 98000000? ? 00100000? ? ? ? RESERVED                ; 1MB used for DM9000

2. Platform.bib中,添加如下信息:

?  dm9isa.dll? ? ? $(_FLATRELEASEDIR)\dm9isa.dll? ? ? NK                         SHMK

3. Platform.reg中,添加如下内容:

;--------------DM9000A driver-------------------------------------------------
[HKEY_LOCAL_MACHINE\Comm\DM9CE]
? ? "DisplayName"="DM9000A ISA Fast Ethernet Adapter"
? ? "Group"="NDIS"
? ? "ImagePath"="dm9isa.dll"

[HKEY_LOCAL_MACHINE\Comm\DM9CE\Linkage]
? ? "Route"=multi_sz:"DM9CE1"

[HKEY_LOCAL_MACHINE\Comm\DM9CE1]
? ? "DisplayName"="DM9000A ISA Fast Ethernet Adapter"
? ? "Group"="NDIS"
? ? "ImagePath"="dm9isa.dll"

[HKEY_LOCAL_MACHINE\Comm\Tcpip\Linkage]
? ? "Bind"="DM9CE1"

[HKEY_LOCAL_MACHINE\Comm\DM9CE1\Parms]
? ? "BusNumber"=dword:0
? ? "BusType"=dword:1
? ? "XmitBuffer"=dword:20
? ? "RecvBuffer"=dword:20
? ? "IrqNumber"=dword:0
? ? "SysIntr"=dword:12        ; 0x12, SYSINT_FIRMWARE+2=18
? ? "IoAddress"=dword:88000000
? ? "NetworkAddress"="e0aac8de6352"

[HKEY_LOCAL_MACHINE\Comm\DM9CE1\Parms\TcpIp]
? ? "EnableDHCP"=dword:1
? ? "UseZeroBroadcast"=dword:0
;? ? "IpAddress"="159.99.249.238"
;? ? "Subnetmask"="255.255.255.0"
;? ? "DefaultGateway"="159.99.249.1"
;? ? "DNS"="10.192.2.45"
;? ? "WINS"="0.0.0.0"
;------------------------------------------------------------------------------


4. dm9isa.cpp中,更改CONFIG_PARAMETER:
C/C++ code
CONFIG_PARAMETER    g_szDm9ConfigParams[]=
{
    { CID_CONNECTION_TYPE,-1, NDIS_STRING_CONST("ConnectionType") },
    { CID_SLOT_NUMBER,-1, NDIS_STRING_CONST("SlotNumber")},
    { CID_BUFFER_PHYSICAL_ADDRESS,0, NDIS_STRING_CONST("BufferPhysicalAddress")},
    { CID_TXBUFFER_NUMBER,0x20, NDIS_STRING_CONST("XmitBuffer")},
    { CID_RXBUFFER_NUMBER,0x10, NDIS_STRING_CONST("RecvBuffer")},
    { CID_ADAPTER_NUMBER,0, NDIS_STRING_CONST("AdapterNumber")},
    { CID_IO_BASE_ADDRESS,0x88000000, NDIS_STRING_CONST("IoAddress")},
    { CID_IO_RANGE,0x10, NDIS_STRING_CONST("IoRange")},
    { CID_IRQ_NUMBER,0, NDIS_STRING_CONST("IrqNumber")},
    {-1,-1,NULL}
};


5. bsp_config.h中,添加系统中断号:

C/C++ code#define SYSINTR_ETH            (SYSINTR_FIRMWARE+2)// for DM9000, value is 16+2=18, 0x12

6. oemaddrtap_cfg.inc中,添加如下内容:

DCD 0x98000000, 0x88000000, 32? ; 32 MB SROM(SRAM/ROM) BANK 1

7. 在init.c中,添加如下内容:

C/C++ code#define DM9000A_Tacs    (0x0)// 0clk#define DM9000A_Tcos    (0x0)// 0clk#define DM9000A_Tacc    (0x7)// 14clk#define DM9000A_Tcoh    (0x0)// 0clk#define DM9000A_Tah     (0x0)// 0clk#define DM9000A_Tacp    (0x0)// 0clk#define DM9000A_PMC     (0x0)// normal(1data)staticvoid InitializeGPIO(void)
{volatile S5PC100_SROMCON_REG*pSROMREG= (S5PC100_SROMCON_REG*)OALPAtoVA(S5PC100_BASE_REG_PA_SMC, FALSE);

    pSROMREG->SROM_BW= (pSROMREG->SROM_BW&~(0xF<<4))|
        (1<<7)|// nWBE/nBE(for UB/LB) control for Memory Bank1(0=Not using UB/LB, 1=Using UB/LB)        (1<<6)|// Wait enable control for Memory Bank1 (0=WAIT disable, 1=WAIT enable)        (1<<5)|// Select SMC Address base(0=half word(16bits), 1=byte(8bits))        (1<<4);// Data bus width control for Memory Bank1 (0=8-bit, 1=16-bit)
    pSROMREG->SROM_BC1= ((DM9000A_Tacs<<28)+(DM9000A_Tcos<<24)+(DM9000A_Tacc<<16)+(DM9000A_Tcoh<<12)+(DM9000A_Tah<<8)+(DM9000A_Tacp<<4)+(DM9000A_PMC));

}

8. 在intr.c中,添加如下内容:

C/C++ codeextern BOOL OALIntrEnableIrqs(UINT32 count,const UINT32*pIrqs);volatilestatic S5PC100_GPIO_REG* pGPIOReg= NULL;//------------------------------------------------------------------------------////  Function:  BSPIntrInit//BOOL BSPIntrInit()
{
    UINT32 value=0;
    pGPIOReg= (S5PC100_GPIO_REG*)OALPAtoVA(S5PC100_BASE_REG_PA_GPIO, FALSE);// EINT0(GPH0:0)->IRQ_LAN    pGPIOReg->GPH0CON= (pGPIOReg->GPH0CON&~(0x3<<0))| (0x2<<0);// IRQ_LAN by EINT0 (GPH0:0)    pGPIOReg->GPH0PUD= (pGPIOReg->GPH0PUD&~(0x3<<0))| (0x0<<0);// pull-up/down disabled    pGPIOReg->GPIO_INT_CON.GPIO_INT0_CON= (pGPIOReg->GPIO_INT_CON.GPIO_INT0_CON&~(0x7<<0))| (0x0<<0);// Low level triggered
    OALIntrStaticTranslate(SYSINTR_OHCI, IRQ_UHOST);// for USB Host 1.1
    OALIntrStaticTranslate(SYSINTR_ETH, IRQ_EINT0);
    value= IRQ_EINT0;
    OALIntrEnableIrqs(1,&value);return TRUE;
}


9. 在intr.c中,OALIntrEnableIrqs函数中添加如下内容:

C/C++ code//------------------------------------------------------------------------------////  Function:  OALIntrEnableIrqs//BOOL OALIntrEnableIrqs(UINT32 count,const UINT32*pIrqs)
{
    BOOL bRet= TRUE;
    UINT32 VirtualIRQ;
    UINT32 PhysicalIRQ;
    UINT32 i;

    OALMSG(OAL_INTR&&OAL_FUNC, (L"+OALIntrEnableIrqs(%d, 0x%08x)\r\n", count, pIrqs));for (i=0; i< count; i++)
    {
#ifndef OAL_BSP_CALLBACKS
        VirtualIRQ= pIrqs;#else// Give BSP chance to enable irq on subordinate interrupt controller        VirtualIRQ= BSPIntrEnableIrq(pIrqs);#endifif (VirtualIRQ== OAL_INTR_IRQ_UNDEFINED)continue;// Translate to Physical IRQ        PhysicalIRQ= g_VirIrq2PhyIrq[VirtualIRQ];/////////////////// Added by Brian Liu////////////////////////////////////if(PhysicalIRQ== PHYIRQ_EINT0)
        {
            g_pGPIOReg->GPIO_INT_MASK.GPIO_INT0_MASK&=~(1<         }//////////////////////////////////////////////////////////////////////////if (PhysicalIRQ< VIC1_BIT_OFFSET)
        {
            g_pVIC0Reg->VICINTENABLE= (0x1<         }// add for c100.. by shin..elseif (PhysicalIRQ< VIC2_BIT_OFFSET)
        {
            g_pVIC1Reg->VICINTENABLE= (0x1<<(PhysicalIRQ-VIC1_BIT_OFFSET));
        }elseif (PhysicalIRQ< PHYIRQ_MAX_S5PC100)
        {
            g_pVIC2Reg->VICINTENABLE= (0x1<<(PhysicalIRQ-VIC2_BIT_OFFSET));
        }else
        {
            bRet= FALSE;
        }
    }

    OALMSG(OAL_INTR&&OAL_FUNC, (L"-OALIntrEnableIrqs(rc = %d)\r\n", bRet));return bRet;
}

跟楼主一起学习,努力!
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 4 楼 ricky_hu 的回复:
lz先确认一下下面几个信息:
1. DM9000AEP的chipid能否正确读到?

2. lz用示波器量过中断pin没有?是物理中断根本就没有呢,还是有物理中断,但是软件检测不到中断?


1. ChipID正常可以读到的,而且,网线拔插可以从串口看到相关调试信息。
2. 昨天发现中断线被拉高后在别的地方拉底了,现在正在找。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

8
 
mark 帮顶~
 
 
 

回复

55

帖子

0

TA的资源

一粒金砂(初级)

9
 
需要根据原理图来设置,中断方式。
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

10
 
mark
帮顶
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

11
 
引用 6 楼 lbqhope 的回复:
引用 4 楼 ricky_hu 的回复:
lz先确认一下下面几个信息:
1. DM9000AEP的chipid能否正确读到?

2. lz用示波器量过中断pin没有?是物理中断根本就没有呢,还是有物理中断,但是软件检测不到中断?


1. ChipID正常可以读到的,而且,网线拔插可以从串口看到相关调试信息。
2. 昨天发现中断线被拉高后在别的地方拉底了,现在正在找。

你说的什么意思??中断可以产生吗?你是不是用示波器看了,如果有小灯的话,可以这样看有个黄色的等如果他闪下酒应该产生一个中断,中断很快的。楼主可以看看!不过我平台是2440的,但是网卡是一样的!应该都是DNIS接口的!
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

12
 
中断线我接的是EINT0(GPH0:0),这个引脚同时也是Wake up中断,但是文档上说,PowerDown情况下是Wake Up中断,正常状态下是普通中断。我在BSPIntrInit()中上拉该引脚后,在后面不知道被哪里下拉了,查BSP没发现其他哪里使用GPH0。

怎么回事呢?
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

13
 
你的配置问题
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

14
 
帮顶,另外请问下楼主,你的DM9000对应的物理地址和虚拟地址间的映射是怎么映射的,我在做6410下的DM9000驱动,但是却找不到chipid,怀疑是映射或者内存地址有问题。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

15
 
引用 11 楼 lbqhope 的回复:
中断线我接的是EINT0(GPH0:0),这个引脚同时也是Wake up中断,但是文档上说,PowerDown情况下是Wake Up中断,正常状态下是普通中断。我在BSPIntrInit()中上拉该引脚后,在后面不知道被哪里下拉了,查BSP没发现其他哪里使用GPH0。

怎么回事呢?

你说的问题好像不是这样的吧!我也是在这里配置的、但是我看我dm9000没启动时,中断脚是低电平,如果这里配置对了,就是驱动那问题!我给你看看我的吧!
        //Set GPF2 as EINT2
        value = INREG32(&pOalPortRegs->GPFCON);
        OUTREG32(&pOalPortRegs->GPFCON, (value & ~(3 << 4))|(2 << 4));
        // Disable pullup
        value = INREG32(&pOalPortRegs->GPFUP);
        OUTREG32(&pOalPortRegs->GPFUP, value | (1 << 2));

        // High level interrupt
        value = INREG32(&pOalPortRegs->EXTINT0);
        OUTREG32(&pOalPortRegs->EXTINT0, (value & ~(0xf << 8))|(0x1 << 8));
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

16
 
我这边中断是低电平有效。
先在发现问题出现在DM9000这一端,驱动加载后,DM9000会把中断引脚拉底,CPU这边控制都不好使。
我想问下,在DM9000这段有什么办法配置中断低电平有效么? 也就是驱动加载后拉高。
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

17
 
引用 13 楼 huangqibin888 的回复:
帮顶,另外请问下楼主,你的DM9000对应的物理地址和虚拟地址间的映射是怎么映射的,我在做6410下的DM9000驱动,但是却找不到chipid,怀疑是映射或者内存地址有问题。


写在注册表里的,还有程序中的默认配置。
可以看看我上面贴出来的代码和注册表配置。
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

18
 
请问下楼主是那块片子,我看文档上写的好好地默认是高电平触发呀!不会你改了人家配置还是这么了!你是100pin的那个片子?还是48pin的??
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

19
 
引用 17 楼 xuefeng_baggio 的回复:
请问下楼主是那块片子,我看文档上写的好好地默认是高电平触发呀!不会你改了人家配置还是这么了!你是100pin的那个片子?还是48pin的??


48pin的。硬件工程师把EECK拉高了,所以就INT就变成低有效了。
我用的驱动是友坚6410BSP中拿过来的,在6410开发板上用的好好的,使用的是默认的高电平触发。
所以我觉得可能是我的DM9000驱动内部的某个设置有问题。
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

20
 
建议楼主用示波器看看有没有中断产生,如果硬件这没问题即使驱动不成功,但是硬件中断也会产生的,我当时系统中断没弄好,但是我看了硬件只要插上网线,还是有中断的。这里应该没什么问题的。但是我的平台式2440的,不知道你们6410是怎么写的!
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表