CS8900A自身用IRQ0输出中断,接2410的EINT8。我用H-JTAG + WIGGLER调试。<br /><br />CS8900A的初始化设置(用MEMORY MODE访问):<br /><br />LINE_CTL &= ~(AUI_ONLY | AUI_AUTO);<br />INDI_ADDR56 = 0x0506; //MAC 01-02-03-04-05-06<br />INDI_ADDR34 = 0x0304;<br />INDI_ADDR12 = 0x0102;<br />RX_CTL |= (RX_OK_A | INDI_ADR_A | PROMISCUOUS_A | BROADCAST_A);<br />RX_CFG |= (RX_OK_IE | BUFFER_CRC);<br />BUF_CFG |= (RX_MISS_IE);<br />LINE_CTL |= (SER_RX_ON | SER_TX_ON); <br />INTCH = 0x0000; //use IRQ0 <br />BUS_CTL |= (ENABLE_IRQ);<br /><br />2410关于中断的设置:<br /><br />GPGCON = 0x55555556; //select EINT8 for cs8900a<br />EXTINT1 = 0x22222221; //cs8900a irq active high<br />EINTMASK &= ~(1 << 8);<br />INTMSK &= ~(INT_TIMER4 | INT_UART0 | INT_EINT8_23); //enable timer4 ,uart0 ,eint8 irq<br />INTSUBMSK &= ~(INT_RXD0);<br /><br />已经确认的情况:<br />1. 定时器4和串口0的中断是正常的。<br />2. 用查询方式可以查询到CS8900A的ID:630E,可以正确接收完整的以太网帧。<br />3. 如果将CS8900A的中断输出改为IRQ1,即等于将2410的EINT8悬空,那么EINT8的外中断处理被频繁触发。<br />4. 将EINT8的管脚GPG0设置为GPIO输入,并不断读取该管脚的电平,始终为低。(我没有示波器)<br /><br />我的问题是:为什么不能通过外部中断接收CS8900A的数据?我认为是CS8900A不产生中断。<br /><br />各位请指教。<br /><br /><br /><br /><br /> |
|