Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
11 years ago

HSMC GPIO Daughter card.

I have a question regarding the gpio-hstc card (http://www.terasic.com.tw/cgi-bin/page/archive.pl?language=english&categoryno=67&no=322&partno=1). I'd like to use this board to expand the gpio of my DE2-115 dev. board. In the documentation it states that the HSMC connector pins are connected to GPIO pins. Am I correct in thinking that there is no need for a driver in my design? Meaning I can just map a HSMC pin as if it is a GPIO pin, or do I need to do something more.

If you have any tips regarding the use of the board, I'd like to hear them as well.

18 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hi there,

    Your project gave funny numbers at HSMC_TX_D_p[16] (0.38V) and HSMC_RX_D_p[15] (0.34V), so I decided to start it all over by launching the DE2-115 system builder and keeping HSMC as default (you still have to select HSMC Default in the drag-down column).

    After making sure the jumper at HSM_VCCIO is installed on 2.5V, I then powered up the board I got 2.51V at both HSMC_TX_D_p[16] and HSMC_RX_D_p[15].

    I've uploaded my project here for your reference. I understand it still doesn't explain why there's a small difference, but at least you could give it a try over there and see how it goes, given that I couldn't duplicate your result based on the project that you uploaded.

    David from Terasic
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I modified it to set all HSMC bidir and outputs high.

    
    assign HSMC_TX_D_P = 'b11111111111111111;
    assign HSMC_RX_D_P = 'b11111111111111111;
    assign HSMC_TX_D_N = 'b11111111111111111;
    assign HSMC_RX_D_N = 'b11111111111111111;
    assign SMC_CLKIN0 = 1;
    assign HSMC_CLKOUT_N1 = 1;
    assign HSMC_CLKOUT_N2 = 1;
    assign HSMC_CLKOUT_P1 = 1;
    assign HSMC_CLKOUT_P2 = 1;
    assign HSMC_CLKOUT0 = 1;

    And all gave about 2.44V.

    When making them all 0 among others, pin

    RX_D_N(16) gave 1.72V and

    RX_D_N(15) gave 2.11V.

    Later today I will try this with my project and post the results
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I have followed your steps for creating a project exactly and found that a lot of pins do change, but not trough the full range. For example HSMC_RX_D_n16 Switches between 1.6 and 2.6 volts. Maybe this is something in Quartus? I use Quartus II 64-Bit Version 15.0.0 Build 145 04/22/2015 SJ Web Edition, no patches installed. I run this on a Windows 8.1 system.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hi there,

    Sorry for my late reply.

    I'll download your project and take some measurements to see how it goes.

    Thanks,

    David from Terasic
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I have done some measurements myself and have sent them to Terasic. They told me it might be damage to the IO of the FPGA. It might be an incorrect IO setting, but that was discussed before and is, for me, not the case. They think the latter more likely and they suggest I don't use the pins.

    Attatched you'll find my measurements from all IO pins.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hi there,

    I went through the mail and discussed with my colleague from the technical support team. It seems there's misunderstanding here, as your measurements were wrongly recognized as the result based on our default code instead of the new voltage test.qar that you uploaded.

    I've asked my colleague to try your project and compare it with a blank project generated by the system builder but loaded with your code. I'll post up the result here when it's done.

    Thanks,

    David from Terasic