09-19-2018 07:15 AM - edited 09-19-2018 07:17 AM
We have purchased a picozed. On that board, the 33.333 MHz oscillator is rated as +/-50ppm, We have replaced it with a more stable (2.5ppm) 40MHz pin compatible oscillator. I have gone into the PS configuration and set the new clock frequency to 40MHZ. Vivado automatically adjusted all of the derived PLL clocks and dividers. I rebuilt the project, exported to SDK, and re-imported the hdf in Petaliinux and rebuilt.
Decompiling the device tree, I see that the 40MHz reference is there, and the ARM frequency updated to 660MHz vs the original 666Mhz. So it looks like the frequency change propagated properly through the project. However, I'm seeing the UART spit out garbage characters, indicative of an incorrect BAUD clock. Measuring it on a scope it looks like the BUAG rate changed from 115200 to around 142000, so doesn't look like that propogated properly through the project. I have also lost ethernet comms. The FPGA done light is lighting up, so I presume that's working.
Is there anything else I need to do to update the clock frequency to reflect the new 40MHz oscillator? Is there a setting in petalinux or the FSBL I need to change?
EDIT: I posted a question on the Avnet forum and have not received a response, figured this forum would be more appropriate since it involves a vivado setting and SDK update: http://picozed.org/content/changing-3333333mhz-oscillator
09-19-2018 02:50 PM
what version are you using? there was a known issue in 2017.1/2 relating to the pss_ref_clk not getting populated corectly in the devicetree:
Can you pass on your devicetree? It sounds like you checked the pss_ref_clk and is getting updated, so this may not be it.
Have you checked this with a hello world baremetal test to rule out a linux/device tree issue?
09-24-2018 07:40 AM
@stephenmI have not tried a bare-metal application quite yet. I think this is the next logical step. Also, we're using Vivado 2016.4, looks like the link you posted is for 2017.1/2, though I will also give that a shot to see if it fixes anything.
I have attached the device tree below. Do you see anything obviously wrong?
09-25-2018 07:20 AM
Ha! So super embarrassing... I discovered the issue. The problem was that the Picozed dip-switch settings were set to boot from QSPI/eMMC, not the SD card, which contained the updated image with new clock settings. This is what happens when you have several Picozeds laying around in front of you.