Jump to content
  • 0

BASYS3 Board's Seven Segment Display malfunctioning


Jason Kunz

Question

Hello, 

I received my BASYS3 board a few months back and recently found out that the seven segment display is not working right. I'm doing a class project where we have to increment the seven segment after every series of tests, and everything works as intended except for the first digit of the SSEG. The LEDs light up correctly, and the second SSEG digit increments as it should. However, when the first digit should show 0, 1, 2, 3, 4, 5, 6, etc, all it shows is 8. No cathodes turn off. When I run the Vivado bitstream on another basys3 board it works perfectly, so it must be the hardware on mine. In the default state, the buttons turn off all of the SSEG digits except the first, so it seems like the anode on the first one is faulty. Is this fixable? 

Thank you

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Hi @Jason Kunz,

If the same bitstream you created works as intended on a different Basys 3, then I would agree that it indicates a hardware problem on your board.

What I don't understand is how this problem is occurring to begin with if it is a hardware issue.

The Basys 3 has a common anode for each digit on the seven segment display and cathodes for each section of a digit that are shared among all digits and based on how the Basys 3 is designed, both anode and cathode need to be driven low for a particular section of a digit to illuminate. The only way to actually illuminate all sections would be for both the anode on the first digit and all cathodes to be driven low. Having the anode stuck being driven low/"activated" wouldn't affect all 8 of the sections on the 7-segment display as those are individually controlled by the cathode lines; if there was a problem with the cathode lines, it would manifest in all of the other digits as well since each section is shared between the digits.

If you still have it loaded, can you set the JP1 mode jumper to QSPI and load the out-of-box flash demo to see if that first digit still exhibits this behavior of having all segments stuck on?

Thanks,
JColvin

Link to comment
Share on other sites

  • 0

Hi @JColvin,

Thank you for taking the time to help me with this. When I load the out-of-the-box flash demo, the all the digits in the SSEG work normally, going through 0-9. It's only when I try to run my own program and light up just the first digit that I experience problems. Like if I'm trying to increment the SSEG by one, the first digit will subtly change such that the lights that should show are very slightly brighter than the LEDs that should be off but are still on. Once I get to 16, the second digit turns to 1 as expected and the first digit still shows "8".

But yes, the flash demo that the board defaults on when turned on without a bitstream works great. 

Thanks, 

Jason

Link to comment
Share on other sites

  • 0

Hi @Jason Kunz,

Ok, the fact that the first digit works correctly with the OOB flash demo indicates that the actual hardware is working correctly (since there is no software/firmware on the seven segment display to fail, it's just a group of LEDs).

The behavior you are describing to me sounds like the anode pin is floating and does not have a pull-up resistor associated with it, much like is described on this thread: https://forum.digilentinc.com/topic/17207-faint-7-seg-display-leds/?sortby=date. You can fix this by changing the generate bitstream properies or by specifying the Pulltype for the pins in .xdc file (this is described on how to do this on the Pulltype section in Xilinx's UG912 on page 320, https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_2/ug912-vivado-properties.pdf).

Thanks,
JColvin

 

Link to comment
Share on other sites

  • 0

Hi @JColvin,

So I took a look at those other threads and the manual and I'm trying to get a sense of the syntax for the .xdc file to specify the pulltype for the pins. Does this look right?

Also, if the same program works on other BASYS3 boards with no problem in the seven segment display, wouldn't the issue be unique to my board? 

Thanks, 

Jason

xdcfile1.png

xdcfile2.png

Edited by Jason Kunz
Link to comment
Share on other sites

  • 0

Hi @Jason Kunz,

You can use the xdc syntax example that is on page 321, so something akin to:

Quote

set_property PACKAGE_PIN_W7 [get_ports {CATHODES[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {CATHODES[6]}]
set_property PULLTYPE PULLUP [get_ports {CATHODES[6]}]

Let me know if you have any questions about this.

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...