In my actual project i'm working with parallel protocol ECP. I'm writing code on PC and I have a big problem. Something work: 1) It's ok the High Speed Negotiation Phase 2) and is ok the Forward Data Transfer Phase The PC and the microcontroller board can do the point 1) and 2) very well. The problem is on the Reverse Data Transfer Phase, the PC hardware handshake don't work. I can force the signal HostAck to perform the handshake but i can't read the data bus (better, i can read only the first byte, the other are 0xff). The Forward to Revers Phase and the Reverse Data Transfer Phase ar so performed: ecp_ForwardToReverse() // Make the Forward to Revers Phase: OK while () { qty=check_ecp_FIFO(); if (qty!=0) readEcp_data(); // Check signal XFLAG for abort ecp mode cXFlag=ecp_GetReg(DevStatusReg)&DSRv_XFlag; if (cXFflag) abort_ecpMode(); } ecp_ReverseToForward(); // OK The ecp_ForwardToReverse() function is made looking nAckReverse and writing the Extended Control Register with 0x34 value (go to PS/2 parallel port mode), change direction on Device Control Register (bit 5 to 1), and writing again 0x74 on Extended Control Register (return to ECP mode). Someone can help me? T.I.A. =================================================== Alboni Giorgio Faenza (Ra) ITALY E-Mail: rac1337@racine.ravenna.it http://www.geocities.com/SiliconValley/Heights/5444 (Last Update: 15/03/1998) ===================================================