12-10-2019 03:19 AM
I am implementing a SATA Device Controller on my KC705 Board.
I have a FMC-SATA board, a SATA crossover cable, and a PC motherboard as a host.
Here is the first issue(implemented as SATA2 configuration):
1) I can manage a SATA OOB communication if I use two transceivers("gt0" as a device and "gt1" as a host) and connect them through SATA crossover cable via FMC-SATA board. However, if I connect device side(gt0) to the motherboard, I can get "cominitdet = '1'", I send "txcominit" and get acknowladge as "txcomfinish", but i can not get "comwakedet" which should come from the host(motherboard).
-Buffers are enabled.
-I assert txelecidle and cdrhold during OOB sequence.
-I use LPM filter as default.
-I wait until tx and rx reset processes are finished before starting my OOB sequence state machine.
Here is the second issue(implemented as SATA1 configuration):
2) I try to configure transceivers as SATA1 configuration. As far as I know the only difference of SATA1 and SATA2 is the additional MMCM between "txoutclk" port and "txusrclk/txusrclk2" ports in SATA1. However, simulation is failed(no cominit detection) in this case. What should be done while configuring transceivers in SATA1 differently than SATA2?
Thanks in advance. I am stuck in this situation for a long time.. Early answers are appreciated.
12-10-2019 08:03 AM
TXELECIDLE forces TXP and TXN to common mode. How can you send txcominit or anything else with this set high? Are you able to verify what is being sent and received with a scope?
12-10-2019 09:14 AM