阅读:1447回复:3
CYPRESS的637CXX的端点1和端点2什么时候产生中断?
我看说明书有很多种情况,那么该怎样区别呢?
|
|
沙发#
发布于:2004-10-22 05:20
?CY7C63xx?
1.不同模式的响应 datasheet讲的很清楚,不过第一次看的话可能不会太明白。 从datasheet(可能我们的版本不一样)第39页开始的 "Table 22-3. Details of Modes for Differing Traffic conditions" 明确讲述了各种"End Point Mode"下,对数据包产生的响应. 2.中断发生 "endpoint. A USB endpoint interrupt is generated after the USB host writes to a USB endpoint FIFO or after the USB controller sends a packet to the USB host." 就是说: 对于ep1(IN),发生在设备发送完握手(ack或nak)后。 若为ack,产生中断时,数据已经发完了;为nak则表示告诉host没有数据可用。可在中断程序开始的地方来确定是ack还是nak中断(读EP1ModeRegister来确认); 对于ep2(OUT),发生中断时,如果应答的握手为ack,则数据已经在buff里了; 若为nak,则你的ep2还没准备好,做好处理就是了。 你只要根据需要确认产生的是否为ACK中断(读EP2ModeRegister),和数据是否有效(在EP2CounterRegister中)。 |
|
板凳#
发布于:2004-10-22 05:29
纠正:
EP1的发生时机: on the host’s ACK during an IN,,在设备受到host的ACK之后; 如果enp1的模式设置为了nakin,则发生在设备发送完nak之后。 |
|
地板#
发布于:2004-10-25 09:55
谢谢您的答复,我还想问一下,如果我用端点1同时收发数据,如果都用中断方式的话,那我发送出数据和收到数据时都会产生中断,这样在中断里该如何区分呢?
|
|