Jump to content
  • 0

PModOLEDrgb on Zybo Z7-20


EmaZybo97

Question

Hello, I'm trying to use PModOLEDrgb on a Zybo Z7-20 and run the basic Demo provided by the library but I have a problem with it.
I follow all the steps indicated in the Getting Started guide (https://digilent.com/reference/learn/programmable-logic/tutorials/pmod-ips/start) but  I still have problems. I'm using Vivado 2021.2 and until the board programming, all seem fine: I'm able to generate the bitstream, build the Platform and Application Project without errors. However, when I try to program the board an unexpected crash appears. The board is reset and I hear the classic Windows "cable reconnected sound". 
I did some tests with vivado-library takes from master branch and with vivado-library takes from last release (with the updated Makefiles) but the results are the same.
In the pictures above there are my Block Design and my settings, I hope that they can help to understand where is the problem, maybe I missed some steps, or I have a wrong configuration.

 

image.thumb.png.a434dd030f88bfb40945170f91e81fa5.png

 

image.png.a11b701decfbb6c8b1bd6e91913dfccf.png

 

image.thumb.png.c5cc81261e977fa56794b5679dc414af.png

 

During my tests, I saw that the crash is somehow related to the function OLEDrgb_begin(). 
I surrounded the begin function with two xil_print to Debug the situation and only the first one is correctly visualized.
If I comment the begin function the board and the "Done" Led stay on. 
I also supposed that the problem could be the hardware module, but I test it on my Arduino and it work. 

Could you help me solve this problem?
In case, there is another guide to follow or some sample projects I could try on my board?

 


Tell me if you need more information, I will provide you as soon as possible.

Thanks and Best Regards.

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Hi @EmaZybo97,

I've never seen this particular issue before.

The behavior you are describing sounds like a power issue where the board suddenly draws too much power, but then you would have expected Windows to have complained about this or the LEDs to blink out. The Pmod OLEDrgb, both physically and literally, does not have a way to affect the USB connectivity as it is.

I don't have the hardware on hand to test this for myself, but I will test it when I get back to the office next week.

Thanks,
JColvin

Link to comment
Share on other sites

  • 0

It could be a problem with the AXI bus in the PL. Double check the assigned addresses in Vivado and the xparameters.h file that Vitis created when you built the platform. An address mismatch will hang the AXI bus and appears to crash the entire system.

Link to comment
Share on other sites

  • 0

Hello, thanks both for your answer.

@Richm  I did a check in the AdressEditor/Map and the xparameters.h file as you suggest but there was no mismatch between addresses as shown in the photos below. 

494718459_Immagine2022-09-12122758.thumb.png.f6d53eb69230389918ada5f55f5313cd.png

 

74744515_Immagine2022-09-12123353.png.3abd7b4e186693e1b870c73458eb25af.png

 

580439430_Immagine2022-09-12123225.png.82c9eb9d90345708797a8efd26e4e411.png

 

@JColvin I did another test. I tried to create a system with OLEDrgb as a hierarchical block following this guide: https://digilent.com/reference/programmable-logic/guides/hierarchical-blocks (I used the vivado-library repository "feature / merged_hierarchies" branch: https://github.com/Digilent/vivado-library/tree/feature/merged-hierarchies). This time there is no crash but the module still does not work (the DONE led is high). I also did one last test to understand where the problem could be. I added a series of xil_printf inside the OLEDrgb_begin function and the OLEDrgb_DeviInit function and these are the results: 

 

1635499938_Immagine2022-09-12131358.png.87a2351cb2d6c98a72ecc7812a6b7de7.png

 

625298958_Immagine2022-09-12131648.png.77a04e727c8e1fc0507eb54020134bac.png

 

For some reason, it can't end the Write_SPI function inside the OLEDrgb_DevInit, so I assumed it could be due to a communication problem (I have not made any other changes to the SDK).
Hope this could help. Please, tell me if you need additional details.

 

Thanks.

Immagine 2022-09-12 131606.png

Edited by EmaZybo97
Link to comment
Share on other sites

  • 0

Hi @EmaZybo97,

I tested out the design that I had (I checked to verify that I had the same address spaces as you since we were both working with the barebones design, the addresses did match what you posted in the screenshot), and mine worked as is (I am using the default example that comes with the Pmod OLEDrgb with a Vivado block design that looks identical to yours, settings and all, and am able to see the picture of one of the former Digilent interns is using as the demo output)

To confirm, is the Pmod OLEDrgb that you have attached to Pmod header JE on the Zybo Z7-20?

At one point while getting it set up, I did hear a disconnect sound, but I think this is because I have not updated my 2021.2 installation or restarted my computer recently since the programming process was running incredibly slow (as per Xilinx this thread), but I have not made the dedicated effort to reboot my computer or reinstall the Xilinx software to see if that resolves the issue.

Thanks,
JColvin

Link to comment
Share on other sites

  • 0
On 9/13/2022 at 1:30 AM, JColvin said:

is the Pmod OLEDrgb that you have attached to Pmod header JE on the Zybo Z7-20?

Yes It is. I also tried on JC.

Are you using the vivado-library from master branch on GitHub?

In this other guide https://digilent.com/reference/programmable-logic/guides/getting-started-with-pmod-ips, in the section "Add Digilent's Vivado Library to a Vivado Project" there is a v2020.1-1 ZIP file. But It is not available to download (in both references). Is there an updated lib?

 

Link to comment
Share on other sites

  • 0

Hi @EmaZybo97,

I am using master branch of the Digilent Vivado library, i.e.
git clone --recursive https://github.com/Digilent/vivado-library.git
(or the Code -> download option if you prefer). I believe the guide you referenced has been updated to correctly point to this file: https://digilent.com/reference/programmable-logic/guides/getting-started-with-pmod-ips#add_digilent_s_vivado_library_to_a_vivado_project.

I've attached the exported Vitis project that I was able to get successfully running on Vitis 2021.2 with the Zybo Z7-20 and the Pmod OLEDrgb on JE. You should be able to run it by opening up a new instance of Vitis 2021.2, select whatever folder for your workspace, and then choose the "Import Project" option. After importing, you'll probably need to ensure the platform and linkerscript are correct as described at the bottom of this document here: https://digilent.com/reference/programmable-logic/guides/using-github-releases#baremetal_release_workaround_before_programming.

Let me know if you have any questions or if this does not work for you.

Thanks,
JColvin

Edit:
P.S. 2021.2 has been running unreasonably slow for me where I have occasionally gotten the Windows disconnect noise when attempting to configure the board. You might want to try a different version of Vivado/Vitis; I recreated this exact same project in 2020.1 and 2022.1 and did not have any slow connection or launching of the Vitis project on the Zybo Z7-20 in either of those versions.

vitis_export_archive.ide.zip

Edited by JColvin
Link to comment
Share on other sites

  • 0

Hi @JColvin,
Thank you for your answer.

I did other tests and as you suggested at the beginning ( 

On 9/10/2022 at 12:54 AM, JColvin said:

The behavior you are describing sounds like a power issue where the board suddenly draws too much power

) the problem is related to the power supply. I have tried running the program with an external power supply and it seems to work fine. Is it normal that without an external power supply the OLEDrgb does not work? I worked also with the MTDS module (a time ago) and in that case I did not have these kind of problems.


Anyway, thank you very much again for your help!

 

P.S: 

On 9/15/2022 at 12:28 AM, JColvin said:

2021.2 has been running unreasonably slow for me

This could be related to a problem with the hw server (as you mentioned earlier) that I avoided by replacing it with Vivado2020's hw server. (In any case I also did a test with the Vivado clean installation, but even then the module needs external power).

Link to comment
Share on other sites

  • 0

Hi @EmaZybo97,

I wouldn't think it would require external power, or at least I am able to successfully run the project without needing more than the USB connection, though if you have other applications and bits of your design also running on your device, that would use more current. The modules embedded in the Pmod OLEDrgb itself don't seem to require that much current based on their datasheets.

Thanks,
JColvin

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...