Different Register Values EPxFIFOFLGS vs. EPxxFIFOFLAGS (FX2)

Question: What is the difference (if any) between the value of the Flag bits in the EPxFIFOFLGS, EPxxFIFOFLGS and EP2468STAT registers?



The EPxFIFOFLGS register is an equivalent register to EPxxFIFOFLGS. The only difference is that EPxFIFOFLGS is located in the external RAM whereas EPxxFIFOFLGS is located in the SFR portion of memory, thus allowing shorter instruction cycle moves (mov vs movx).



The difference between EPxxFIFOFLGS and EP2468STAT is the domain in which data is present. EPxxFIFOFLGS register will give the status of the Flags (EF, FF and PF) when data is in the peripheral domain (fifo). Once the data has been committed from the peripheral domain (fifo) to the USB domain (Endpoint) the status of the same Flags will be given by EP2468STAT register. So we need to refer EP2468STAT register when the data is present in the USB domain (endpoint) and EPxFIFOFLGS/ EPxxFIFOFLGS registers when the data is in the peripheral domain (fifo).