psehorne Posted March 16, 2017 Report Share Posted March 16, 2017 Just received my Pro and MegaWing a couple of days ago. I have not been able to get segments in digit 0 to light up. Below is the VHDL that works for the other three digits. Seg7_AN(x) (all four 0 through 3) are all un-commented in the ucf file, and I get no compile errors. The Seg7_test process flashes all the other three digits once per second. EDIT-1:You can disregard the code referring to LEDs and Switches; that all works too, and it not relevant to the problem. EDIT-2: One other thing of note. The decimal points (of the three working digits) are very bright, but the other elements are very dim - hardly visible in normal room lighting. library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity Seven_Segment_LED is Port ( Seg7_AN : out STD_LOGIC_VECTOR(0 to 3); Seg7_A : out STD_LOGIC; Seg7_B : out STD_LOGIC; Seg7_C : out STD_LOGIC; Seg7_D : out STD_LOGIC; Seg7_E : out STD_LOGIC; Seg7_F : out STD_LOGIC; Seg7_G : out STD_LOGIC; Seg7_DP : out STD_LOGIC; CLK : in STD_LOGIC; -- 32MHz for Papilio Pro, period 31.25 ns JOY_SELECT : in STD_LOGIC; SWITCH : in STD_LOGIC_VECTOR(0 to 1); --reversed LED : out STD_LOGIC_VECTOR(0 to 3); LED1 : out STD_LOGIC); --reversed end Seven_Segment_LED; architecture Behavioral of Seven_Segment_LED is signal Counter : STD_LOGIC_VECTOR(24 downto 0) := (others => '0' ); signal CLK_1Hz : STD_LOGIC; constant Seg7_AN_ON : STD_LOGIC := '0'; constant Seg7_Element_ON : STD_LOGIC := '0'; begin LED(0) <= SWITCH(0) AND SWITCH(1); LED(1) <= SWITCH(0) OR SWITCH(1); LED(2) <= SWITCH(0) XOR SWITCH(1); LED(3) <= (NOT JOY_SELECT) or CLK_1Hz; -- Joy Stick normally high, acitve low. -- So line below holds LED1 on until JS_Select ir pressed. -- Then LED1 will flash at the rate of the preselector counter CLK_1Hz. LED1 <= JOY_SELECT or CLK_1Hz; Seg7_test: process (CLK_1Hz) -- flash LogicStartMegawing 7-segment LEDs at 1Hz begin Seg7_AN(0) <= NOT CLK_1Hz; --NOT Seg7_AN_ON; --CLK_1Hz; Seg7_AN(1) <= NOT CLK_1Hz; --NOT Seg7_AN_ON; Seg7_AN(2) <= NOT CLK_1Hz; --NOT Seg7_AN_ON; --CLK_1Hz; Seg7_AN(3) <= NOT CLK_1Hz; --NOT Seg7_AN_ON; --CLK_1Hz; Seg7_A <= Seg7_Element_ON; --NOT CLK_1Hz; Seg7_B <= Seg7_Element_ON; --NOT CLK_1Hz; Seg7_C <= Seg7_Element_ON; --NOT CLK_1Hz; Seg7_D <= Seg7_Element_ON; --NOT CLK_1Hz; Seg7_E <= Seg7_Element_ON; --NOT CLK_1Hz; Seg7_F <= Seg7_Element_ON; --NOT CLK_1Hz; Seg7_G <= Seg7_Element_ON; --NOT CLK_1Hz; Seg7_DP <= Seg7_Element_ON; --NOT CLK_1Hz; end process Seg7_test; Prescaler: process (CLK) -- flash onboard LED1 at 1Hz begin if rising_edge(CLK) then if Counter < "111101000010010000000000" then -- counter to clock freq /2 Counter <= Counter + 1; else CLK_1Hz <= NOT CLK_1Hz; Counter <= (others => '0'); end if; end if; end process Prescaler; end Behavioral; Only after I had this problem did I search this forum. I found hits about no current limiting resistors. But those discussion are a few years old, and at the time Mr Gassett stated that new boards were coming out with current limiting resistors. I just received my boards this past week; could my boards be old stock without the current limiting resistors; or is there a problem with my code? Quote Link to comment Share on other sites More sharing options...
offroad Posted March 17, 2017 Report Share Posted March 17, 2017 Hi, the very bright decimal points were indeed one "feature" of the resistor-less board. But best take a magnifying glass and look for the resistors, then you have peace of mind. I'd simply use a multimeter in diode mode on the headers to check the segments, or jumper wires to +3.3 V / GND (but don't do this without resistors or there will be 7-segment magic smoke). Quote Link to comment Share on other sites More sharing options...
Jack Gassett Posted March 17, 2017 Report Share Posted March 17, 2017 psehorne, We can replace the board for you if you feel confident there is an issue with it. Just send us an email to support@gadgetfactory.net with your shipping address and a link to this email. Jack. Quote Link to comment Share on other sites More sharing options...
psehorne Posted March 17, 2017 Author Report Share Posted March 17, 2017 Jack, Thank you. I've sent the email. Because of typos on my part you may receive more than one email. Paul Quote Link to comment Share on other sites More sharing options...
psehorne Posted March 17, 2017 Author Report Share Posted March 17, 2017 11 hours ago, offroad said: Hi, the very bright decimal points were indeed one "feature" of the resistor-less board. But best take a magnifying glass and look for the resistors, then you have peace of mind. I'd simply use a multi-meter in diode mode on the headers to check the segments, or jumper wires to +3.3 V / GND (but don't do this without resistors or there will be 7-segment magic smoke). Thanks for the suggestions/precautions. I understand your message completely. I have been an electronic technician for many years. However I don't feel that troubleshooting the board has a high likelihood of actually fixing it (I have no experience with SMD..); so I won't be going to the trouble. Paul Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.