Forum Discussion
Altera_Forum
Honored Contributor
17 years agoDE2 Ethernet Primitive Solution
With the DE2 board, the Ethernet controller does not seem to work in Quartus II 8.0 or 8.1. There are several problems with the DE2_NET demonstration; it was built pre-7.1, the software driver does n...
Altera_Forum
Honored Contributor
16 years agoHello,
I am having different problem. I send one packet to board, ISR executes, ReceivePacket function executes but then even though I don't send any packet, the ISR keeps running. When I set a breakpoint in ReceivePacket, I see rx_READY = IORD(DM9000A_BASE,IO_data)&0x03; rxReady is 0. But the algorithm doesn't care for this status. So I changed it like this: rx_READY = IORD(DM9000A_BASE,IO_data); if ((rx_READY & 0x01) == 1 ) { ... receive packet... } else //---UNCOMMENTED rest-- if ((rx_READY & 0x02) != 0 )//rx_READY) /* status check first byte: rx_READY Bit[1:0] must be "00"b or "01"b */ { //same code } but this is still not a good solution since ISR enters once more to reset the device. So how can I tell ISR not to enter ISR again after receiving the packet I already sent. What should I do? Clear ISR status/stop int request etc.. after receiving packet? According to datasheet, ISR Status Register-Packet Received bit is a RW/C1 so one has to write 1 to correspond bit. So I did a iow to ISR in ReceivePacket function. This solved the problem but I still don't think this as a good solution. Many thanks, Luisa