I used the TDO, TDI, TCK as user I/O . The problem is that I can program at the first time with USB blaster but when I program again, it failed.I set the JTAG PIN afile:///C:/Users/Jack/AppData/Roaming/Tencent/Users/502802988/QQ/WinTemp/RichOle/T8%7BU_97VKXVO%7BBS@C)FS_T0.png s the user I/O through the way Assignments->Device->Device and Pin Options->General-> Enable JTAG pin sharing .But I didn't cancel the above option :Enable nCONFIG, nSTATUS,and CONF_DONE pins . Is any way to solve the problem?? This is the option's description Enable JTAG PIN sharing Enables JTAG pins sharing feature in user mode. When selected, the JTAGEN pin is used to select JTAG pins (TDO, TCK, TDI, and TMS pins) operation, between JTAG operation (JTAGEN=1) and user I/O operation (JTAGEN=0). If JTAG pin sharing is not enabled the JTAGEN pin acts as a user I/O pin, and the JTAG pins (TDO, TCK, TDI, and TMS pins) are retained as dedicated JTAG pins. The JTAGEN is always connected with the 3.3v through a 10k resistor.It means the JTAG pin do not run as user I/O .But JTAG error, why?? My device is MAX10M08SCM153I7G. Thanks
General thoughts and hints on this subject:See: https://www.altera.com/content/dam/altera-www/global/en_us/pdfs/literature/hb/max-10/m10_handbook.pd... Have a careful look at the JTAG schematic diagram on page 3-3 • If you intend to switch back and forth between user I/O pins and JTAG pin functions using the JTAGEN pin, all JTAG pins must be assigned as single-ended I/O pins or voltage-referenced I/O pins. Schmitt trigger input is the recommended input buffer. • JTAG pins cannot perform as JTAG pins in user mode if you assign any of the JTAG pin as a differential I/O pin. • You must use the JTAG pins as dedicated pins and not as user I/O pins during JTAG programming. • Do not toggle JTAG pin during the initialization stage. • Put the test access port (TAP) controller in reset state and drive the TDI and TMS pins high and TCK pin low before the initialization. If you use the JTAGEN pin, Altera recommends the following settings: • Once you entered user mode and JTAG pins are regular I/O pins—connect the JTAGEN pin to a weak pull-down (1 kΩ). • Once you entered user mode and JTAG pins are dedicated pins—connect the JTAGEN pin to a weak pull-up (10 kΩ).
there is a bug on Quartus, so you need to affect TDO and use it as OUTPUT only;from ALTERA/Support "Why can’t I access the MAX 10 device via JTAG even though JTAGEN is pulled high in user mode?" https://www.altera.com/support/support-resources/knowledge-base/solutions/rd03222016_95.html "How do I gain access to the JTAG pins of my MAX 10 device if I have enabled the JTAG pin sharing option, and the Quartus Prime Programmer is unable to auto detect the device?" https://www.altera.com/support/support-resources/knowledge-base/solutions/rd05192016_963.html