Here is the standard -
Hli, seems like 2.5" drives in general was motive for standard, and
of course SATA drives took over the 2.5" market. SAS was also
a motive for strandard.
You can refer to the attached SGPIO component. This new version can support up 24 bits per frame.
To import the component to PSoC Creator, please refer to this video:
I can not create 2 instances with this component in a project, but I can create 2 instances with SGPIO_Target_PSoC4.zip.
my psoc device is CY8C4246AZI-M445
This component can support 12 clks or/and 24 clks. If you need to dynamically change the number of clks supported, use the SetSGPIOFrameSize() function.
In order to support 24 clks, the component requires 3 UDBs. That means you can only place one instance in the PSoC 4M part.
You could remove the Vendor Specific info to save a few resources, but it will still require 3 UDBs.
tx and rx FIFO buffer is not need 4x datas, or do not need tx FIFO，this can reduce one udb？
Useing SetSGPIOFrameSize to set the clk is not practical， because PSOC do not know in advance the data length.
So I think the Frame need to be set 24 clk, if the practical data is 12 clk, and the ReadRxData return 12 valid clk data, and 12 invalid data(0).
Removing the TX FIFO support will not decrease the number of UDBs. It only reduces the number of PLD logic, but we still need at least 3 datapath to support 24 clks, which consumes 3 UDBs.
You could use a timer or a counter externally to the component to count the number of clocks between two consecutive rising edge of SLOAD. Once you find out that, you can call SetSGPIOFrameSize() and enable the SGPIO component.