News:

Attention: For security reasons,please choose a user name *different* from your login name.
Also make sure to choose a secure password and change it regularly.

Main Menu

how to program Si5338 on TE0803 using J17 on TEBF0808

Started by gingu, March 22, 2019, 12:41:11 AM

Previous topic - Next topic

gingu

Hi,
I am using TE0803-01 module board with TEBF0808 carrier board. I want to program the volatile memory (not to burn the NVM) of the Si5338 from TE0803 module using the PLL_SCL/SDA lines available on the 2x5 connector J17 from TEBF carrier board. What hardware/software do I need to connect to J17?

I tried the Silicon Labs ClockBuilder pro Field Programmer but does not work. The Silicon Labs technical support told me (after reading the documentation for module and carrier boards) that I have two options: (1) they don't have a  dedicated programmer for this hardware and I should contact you for a solution, or (2) try to use their Si5338-EVB (https://www.silabs.com/products/development-tools/timing/clock/si5338-development-kit) and effectively steal the SDA and SCL signals from the Si5338-EVB and route them over to the SDA and SCL pins of the J17 connector of TEBF0808 such as to reach the Si5338 on TE0803.

Thanks,
Cristian

JH

Hi,
we program over FSBL on module start:
SDK Template and source code is included into the download of the reference design.

Is there a reason, why you didn't want to use this way?


PS: NVM can't be programmed on SI5338 when the device is  soldered

br
John

gingu

Hi John,

I know the NVM can't be programmed, that's why I specified the volatile memory programming. I also knew you use the FSBL solution. And we have reasons to prefer to use the existing J17 on the carrier board. How can we do this?

Thanks,
Cristian

JH

Hi,
we havn't special external programmer for SI5338. But it's I2C, you can also use other I2C programmer, you must only write the correct register, like we do with the FSBL.
br
John

simon.beaudoin

Hi, I know it's been a while, but in case someone else wants to do the same thing I will explain what I did to do it.

We have Ultra96 boards which embeds XCZU3EG. We fabricated a little adapter that connects one of the I2C bus on the low speed connector to the PLL_I2C bus on the Trenz adapter board. After that, I went to this link :

https://lwn.net/Articles/698134/

Which is a proposition for a SI5338 linux kernel driver, which, for some reason, never made it to mainline. In my experience, it works fine. I copied and pasted the whole patch content into a file that I named si5338_driver.patch. If you don't know how to patch the kernel in petalinux, go to this link which explains it quite well :

   https://forums.xilinx.com/t5/Embedded-Linux/how-to-add-or-modify-petalinux-2016-4-yocto-kernel-source-or/td-p/742861

After this, I modified the system-user.dtsi to add the si5338 node in the corresponding node of the I2C mux.

Of course it's more a hack than something permanent, but it allows you to do 'some' things.

N.B. : Since in my experience, the FSBL is more a pain to patch (for a reason beyond me, patches of the fsbl don't apply to the code, no matter what I do) I went the route of incorporating a kernel driver for configuring the SI5338. But then, problems occurred because of the fact that the initialization of the chip would happen after the init of USB and PCI for exemple. I managed to modify the order in the case of USB, but for not the PIC. In the end, moral of the story, go the FSBL route... it's easier at the end

JH

Hi,

thanks for this feedback and the nodes with SI linux drivers.

PS: I've updated TEBF0808 CPLD Firmware (power sequencing and resets and more) and also done  a rework of the FSBL modification for SI initialisation on the 2018.3 reference design.  SI initialisation will be done now before GTR serdes initialisation with better results for PCIe. 

CPLD Update instructions: https://wiki.trenz-electronic.de/display/PD/TEBF0808+CPLD+Firmware
Firmware: https://shop.trenz-electronic.de/en/Download/?path=Trenz_Electronic/Modules_and_Module_Carriers/5.2x7.6/5.2x7.6_Carriers/TEBF0808/REV04/Firmware
Description: https://wiki.trenz-electronic.de/display/PD/TEBF0808+CPLD#TEBF0808CPLD-RevisionChanges

Reference Design Description: https://wiki.trenz-electronic.de/display/PD/TE0803+StarterKit
Download: https://shop.trenz-electronic.de/en/Download/?path=Trenz_Electronic/Modules_and_Module_Carriers/5.2x7.6/TE0803/Reference_Design/2018.3/StarterKit
FSBL changes and template location: https://wiki.trenz-electronic.de/display/PD/TE0803+StarterKit#TE0803StarterKit-Application

br
John