This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
My customers show great interest in Fast Serial Interface (FSI) in F28004x, and I have some questions about FSI as below.
2. How to use FSI for communication of multiple devices(N)? I am evaluating two kinds of connection method:
(1) star connection(like a single-master/many-slave); (2) daisy-chain-like connection.
Since handshake mechanism for synchronization must take place before actual data transmission, so here comes my concern:
1) Is it possible to use FSI with star connection? How can the master detect the right information sent from N-1 slaves during handshake? Can it be done one by one?
2) For daisy-chain-like connection, how to do the handshake?
Here is my assumption: the device 1 send a specific PING to device 2, then device 2 send another PING to device3, …., device N send a PING to device 1, so device 1 can determine whether the communication is successful by detecting whether the PING from device N is a pre-defined one. Is this can be an effective handshake process?
3) How to achieve the fastest communication for multiple devices with FSI? I’d like to try DMA function, is there any other suggestion?
4) Do you have example project for multiple devices communication with FSI?
Looking forward for your comment, thank you!
Dear Nima,
Thank you for your explanation. I still have some confusion:
1. delay line control
May be I misunderstood it, because in my former opinion, delay line control can be used to compensate the delay caused by the isolation chip. As you said, the delay line control is used to guarantee signals on FSIRXD1, FSIRXD2 and FSIRXCLK with the same delay during isolation communication? So the transmission data rate will unavoidably decrease due to the isolation?
Can you give further explanation on how to use the delay control? Actually, our customers need this now( next year maybe too late, since most of digital power applications are based on isolated communication.
2. Handshake mechanism for daisy chain connection of multiple devices
I also think that it would be a challenge or star connection with FSI. As mentioned, for daisy chain, each device (index i) must handshake with the FSITX of deivce i+1 and FSIRX of i-1. However, I have tested the handshake mechanism given in example project(P2P connection), handshake needs both TX and RX connection between 2 devices, so how can it be used to daisy chain as shown below? The handshake is used to guarantee both transmit and receive working for two chips, am I right?
1. Isolation chip does not affect the transmission rate. It will introduce skews and the delay line elements can be used to make sure the communication is done correctly at max rate (50MHz DDR)
I will post another answer with my preliminary work on FSI delay control.
2. The TX module of each device in the daisy chain must send a ping to the next device untill all devices have successfully received the ping.
So there are 3 signals you need to worry about. FSIRXD1, FSIRXD2 and FSIRXCLK. First you want to choose the optimal delays for FSIRXD1 and FSICLK, so what you can do is run the FSI handshake (USING SIGNLE DATA LINE) with a timeout implemented between the two devices, and sweep through the 2 * 32 possibilities of delay line control for RXD1 and CLK. (keep CLK delay = 0, RXD1 delay 0-31 and then RXD1 delay = 0 and CLK from 0-31) . Check to see what value of RXD1 and CLK delay causes successful ping transmission. This way you can find the optimal delay between CLK and RXD1.
It will be one of the following scenrarios. Again the data bellow checked every possible DELAY setup but you only actually need to check 2*32 (instead of 32*32).
The green shows successful handshake, the blue shows optimal points.
knowing the set of optimal points for CLK and RXD1, you can sweep through the [optimal CLK, optimal RXD1] delays vs RXD2 delays (32 possibilities) and find the optimal CLK, RXD1 and RXD2 delays.
Selecting the blue optimal point to be centered in the green allows for the system to operate with the best margins.
I'm sure there are confusing parts in this so let me know what your questions are!
Thank you for your kindly explanation.
Here is my further question.
1. I'd like to further confirm the handshake mechanism for daisy chain connection.
Supposed a 3 devices connection, for device 1 handshake: device 1 sends a ping1 to device2, then devce2 send ping1 to device 3, then device 3 sends ping1 back to device 1, at last device 1 judges whether the received ping is ping1, if so, handshake is completed. Then, the same process happens to device 2. Is the above right?
2. For the delay line control, I am still digesting your work. As you said, this process is done during handshake. However, I learned from the TRM that the delay values should only be adjusted while the FSIRX is held in soft reset, so I'd like to confirm whether I missed sth.
You are correct on your daisy chain handshake. After ping 1 is successful try to do another round of pings for robustness.
Yes during application, keep RX in SW reset when you change it. But when you are doing your calibration you will keep reseting and trying different RX DELAY values.
Thank you.
1. Actually, if the round of ping1 from device 1 is successful, we can say the handshake is completed. So the second round of ping2 from device 1 is used to further confirm the communication is working, right?
2. So, if we want to choose the optimal delays for FSIRXD1 and FSICLK, we need to reset and then handshake for 2 * 32 times ?