For those of you who got non-working EPM7064 from aliexpress.
Some of them have JTAG disabled and that is the reason why they do not work.
By applying 12V to OE1 (44) with a 2k2 resistor for a minute I was able to restore JTAG communication. It did not work for all but some CPLD's are working now!
Amazing. How did you find that out?
It was strange to have so many non-working parts, in my case <10% were good. So I thought maybe they were write-protected or something similar and I found this thread:
https://www.eevblog.com/forum/fpga/atmel-atf150x-cpld-and-wi...
It seems to also work for ATF150X and reading that thread I wonder if ATF1504 could be a replacement for EPM7064 given it is still produced. ( https://eu.mouser.com/ProductDetail/Microchip/ATF1504AS-7JX44 )
I have lot of pinlocked epm7032, do you also apply GND ?
Yes, GND is needed, and remember the resistor.
WARNING: Once is unlocked and JTAG is recognized, you should disconnect 12V to program it.
Trying to guess which usb drives work using this command lsusb -v | grep bEndpointAddress
I have found that the drives with the following 2 different endpoint addresses work
--
bEndpointAddress 0x01 EP 1 OUT
bEndpointAddress 0x82 EP 2 IN
--
bEndpointAddress 0x01 EP 1 OUT
bEndpointAddress 0x81 EP 1 IN
--
And this one does not work
bEndpointAddress 0x81 EP 1 IN
bEndpointAddress 0x02 EP 2 OUT
S0urceror, I tried to guess what is happening from the file https://github.com/S0urceror/MSX-USB/blob/70507c5646258c61a9...
but I am unable to understand the code.
Any hint to make it work with more usb drives?
Monitoring this thread as I'm about to build one of those to test. Already ordered the minimum amount of PCBs and components that were missing in my parts bin (need to wait weeks now to have everything here).
On a side note to support the community, for the issues with non-working EPM7064s, I had the same issue in the past with a bunch of used ATF1504s (which is somehow equivalent to EPM7064) and indeed applying 12V to OE1 worked. In my case it worked for all 1504s I had JTAG locked.
Later I found a FT232H shield (https://github.com/hackup/ATF2FT232HQ) that allows programming those ones using openocd and implementing a MAX662 boost converter to produce the 12V to "relive" them. I believe the same shield board together with a FT232H can be used to program and when needed, relive those EPMs.
Congrats for the project and the effort. Awesome.
Hi crisag, I was following that page to use ATF1504 and was able to convert from POF to JED but not from JED to SVF. I guess it is because I am using usb-blaster instead of a ft232 module.
Also, I finally uploaded a build/programming guide for this project (with 12v trick and more) as well as my mini-pcb version on my fork https://github.com/issalig/MSX-USB/ I hope the guide will help people building this amazing project. Keep sharing!
Yeah. It is a bummer Atmel charges for their dev tools, that only reduce people using their technologies. Have you tried with Xilinx imPACT? I will make some tests as soon as I get those two components from China... still waiting as those are the ones missing on my bin. imPACT can load JED and save SVF/xSVF.
Today, I had a free day so I played a little bit with ch376s.
- I have a USB drive that does NOT work with MSXUSB
- I have checked that ch376s IS able to read it using SERIAL mode with arduino and CPC I/O board USIFAC2.
- I have checked that ch376s IS able to read FAT type using PARALLEL mode (as MSXUSB does) with arduino so there is communication (could not explore more things)
Thus, it is not a problem of ch376s board, there should be something in the nextor.rom that causes the problem, maybe some delays.
In order to isolate the problem I am planning to get rid of HUB support since I just want to read only 1 usb drive.
For those of you wanting to debug it I suggest you to add a wait in _PRINT_DONE (print_bios.asm) : since messages just disappear.
_PRINT_DONE: pop af ; DEBUG IFDEF __MYDEBUG ld bc, WAIT_ONE_SECOND call WAIT ENDIF ret