• Content Count

  • Joined

  • Last visited

About dftmax

  • Rank

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hi @blanca12. My current code only implements UART TX. There is no UART RX, and therefore no way to implement XON/XOFF. I have worked around this by slowing the baud rate down to a speed that TeraTerm can cope with, but this is far from ideal. I was commenting that in future it might be worth considering adding an extra hardware line from the UART (RTS, DTR, CTS - I am unsure which is the right one!). I did port my code to another FPGA board. This board uses an AVR for USB comms and does have signalling telling the sender to wait, so I could bump up the baud rate on this board. For portability of code I may just use a regular FDTI UART and manually wire TX, RX and CTS(?). --Gary
  2. I realise that my posting was quite long, so perhaps my main point went unnoticed. I am more and more sure that the issues seen by zygot, myself and others are related to the voltage drop resulting from poor quality USB cables. Just to re-iterate. My PC is under a desk. I have a USB lead plugged into the back of the PC (i.e. the motherboard itself) which goes to a Dell monitor. I suspect that the Dell monitor behaves like a powered hub. I then have a USB lead from the Dell to a small 4-port (unpowered) USB 2.0 hub. The CMOD-A7 connects to this hub by means of a USB lead. I use a USB voltage monitor to measure the off-load voltage seen at the output of the 4-port USB hub. It is 4.9V. The 0.1V drop almost certainly dropped by the USB cable connecting the hub to the Dell. I connected the CMOD-A7 to the hub with the 4 (random) micro-USB leads which I had. I measure the reduced voltage at the output of the hub and the voltage between the gnd and Vu pins of the CMOD-A7 (i.e. both ends of the USB cable). Lead type / voltage measured at hub / voltage measured at CMOD-A7 / notes Very short white lead / 4.75V / 4.22V / is not recognised by Win10 Black "velcro" lead / 4.75V / 4.33V Long black lead / 4.76V / 4.36V Very long white lead / 4.74V / 4.38V So the shortest lead (6 inches) has the worst voltage drop, and the longest lead has the lowest voltage drop. If I plug the long white lead into the USB of the Dell monitor I measure 4.60V at the CMOD-A7, and it finally programs correctly in Viviado with no disconnects/re-connects. My suspicion is that some leads will drop enough voltage to "upset" the FDTI chip, which in turn really screws up Win10. Also if the application currently running on the CMOD-A7 is power hungry, it will just exasperate the voltage drop. I hope this clarifies my point and might help other users of this excellent FPGA board. It also ties in with the suggestion from Digilent to use a powered hub. I would also suggest that the voltage drop across a selection of USB leads be measured in order to pick the best "quality" lead. Finally it might be worth using a pin on the board as a "low power" pin, which can be tied low (for example) during programming to minimise the current. In the RTL this input would disable PLLs and clocks. I use one of the button as a reset and noted that when pressed the current taken by the CMOD-A7 reduces and so the voltage measured at the CMOD-A7 increases. For user suffering marginal problems this will minimise any voltage drop (which we now know screws up the FDTI chip), and might be sufficient to allow the FPGA to be programmed. --Gary
  3. I would appreciate any help. I have having a nightmare trying to program the CMOD-A7 in the Vivado programmer manager screen. Background. I use a PC and WIN10. I bought the board some time ago and followed the tutorial and burnt the switches and LEDs demo into the board. I am now working on a real project, based on Hamsters HDMI on Artix 7 web page. Whenever I open the programmer manager in Vivado it is highly unstable and get disconnects and error windows. There is another thread where someone posted a snip of the error box. It gets so bad that my USB hub locks up and the CMOD-A7 is no longer recognised (in any USB port). I have searched the forums and found relevant threads. It appears that I am not alone with this problem. Digilent suggest using a high-quality USB cable (I have no idea how you determine what is high quality). They also suggest using a powered hub. Others have reported success using shortened USB cable. This lead me to think that the issue might be caused by the voltage drop over the USB cable run from the PC motherboard to CMOD-A7. Also these micro USB cables tend to be very thin, and therefore the gnd and +5V wires are likely to be very thin. From painful past experience there can be a substantial voltage drop over a short distance. For example I plug an extender cable into a front port on the PC, which in turn has a cable running from the front port to the motherboard. I then use what appears to be a high quality cable from the extender to the CMOD-A7. That's quite a few feet of cable! My (unpowered) hub to which I normally connect the CMOD-A7 (due to convenient placement) connects from a monitor which is turn connects to the PC (PC <-> Dell <-> 4-way hub<->CMOD-A7). Also I would like to point out that I have several other FPGA boards, Altera, Xlinix (3E and Spartan6), some of which use the FDTI FT2232 chip, and they all have had no problems when connected to my hub (even with multiple other devices connected). This also suggested to me that perhaps the issue could be made worse due to the higher power of the Artix chip. This in turn could be made worse depending upon the frequency of your circuit. When I played with the simple switches and LED example, I don't recall having problems (but it was 4/5 months ago). The current circuit has 150MHz operation and OSERDES at 750Mbps (1080p HDMI - which amazingly does work). So if the flash is programmed with a heavy current load application the instability when programming could be made worse? The past few days I have been unable to program the flash. I just get the disconnect error box from Vivado. Searching for the programmer just loops finding nothing. I did some measurements. The end of the extender plugged into the front panel, shows 4.4V using a USB voltmeter ($10 from Ebay). I use a simple digital voltmeter across the Vu and GND pins of the CMOD-A7 and this reads less than 4V. The LEDs still light, but perhaps the FDTI chip might struggle and crash/lock-up? This isn't the normal way I connect.power the CMOD, but the voltages given to show that +5V at the end of the USB cable is not to be taken from granted. So I used my Rigol power supply to actively power the hub (for the first time). Ironically the power lead was thin. I set the Rigol to +5.40V. The USB voltmeter plugged into the hub read 5.3V, and the voltmeter across the VU/gnd pins now read 5.0V. I now though that I wouldn't have any problems. Wrong!!! Hoever for the first time I was finally able to program the flash, overwriting the old switches and LED code with the HDMI code.Now I only had problems with the Dell recognising the 1080p signal! It's all a bit hazy but Vivado started to display the usual connection lost error box. I found that my hub was locked up (could have been due to the overvolt - but I doubt it as this lock-up is what happened the day before). The UART was displaying as COM12 in the Windows device manager. When I unplugged the CMOD-A7 the COM12 entry stayed. When the system is working it goes away. I tried plugging the CMOD-A7 into another USB port, but there was no bing-bong-bing recognition. There was when I plugged in a USB drive. Clearly the PC was all confused (perhaps it was still confused thinking that the CMOD-A7 was plugged in, so refused to recognise it in another port???). Even asking for a USB re-scan the COM12 did not go away. Plugging the USB into the hub did not work. The PC was clearly not happy with the hub. The only way out was a complete re-boot. I tried modifying the code to 720p HDMI, but the same set of problems occured again, and once again the PC stopped responding to anything plugged into the hub. In this condition I ran Adept-2 and it just hung. At this point I gave up. I thought that fixing the voltage drop would fix the FDTI communcation problem. It didn't. The hub lock up also happened the day before, so it's nothing to do with powering the hub. I am at a loss of what to do, and I am getting pretty frustrated. HELP!!!!!!!! regards.. --Gary
  4. Thank you for the replies. There is another issue which I need to explore further having read various messages in the forum. Programming the device in Vivado is very unstable, to the point I had to re-boot my PC. First I intend to get a high quality USB cable as suggested to see if this fixes the problem. Having read a suggestion in this forum I did install Adept2. Programming the device using this tool appeared stable, however I couldn't see how to program the SPI flash. I think that this is not possible with this tool for the CMOD-A7? With respect to serial comms, it is clear there is no status coming from the FTDI which indicates a valid USB link has been setup. I can work around this. There is also no flow control. I can work around this too. One project of mine which ran on a different board, did use the flow control coming back from the UART, as I was sending lots of data to the PC, so having this feature was very helpful. On a different FPGA board I was forced to lower the baud rate so as not to get overruns on the PC. Perhaps Digilent and other FPGA board manufacturers might consider this in the future? The instability of programming in Vivado (which might be a cable issue) might have locked up the COM9 and COM10 ports, such that when I tried running TeraTerm it crashed. I will try again to establish whether COM9 or COM10 is the UART link. It would have been helpful if the documentation explained that two COM ports appear in the device list on the PC, with an explanation of how to determine which is the UART. I remember having the same problems with the Papilio board, as I was unaware that the FDTI chip established two COM ports (and I had several other COM port devices hooked up to confuse matters). --Gary
  5. With no schematics of the FTDI part of the CMOD A7, UART details are shrouded in mystery.... First question. On the WIndows 10 device manager window, I see that the CMOD A7 appears as COM9 and COM10. I understand this is a consequence of using a dual channel FTDI chip the FT2232H? Which is the UART connection (*), the low numbered port or the high numbered? I think that they are known as A and B in the FTDI chip. I have tried using TeraTerm but it completely hung and couldn't be killed. I suspect I chose the wrong port and would like to avoid this in future. I believe the other channel is used for JTAG and is proprietary. In my application on the FPGA, how do I know when the UART USB connection has been opened? In Arduino sketches (for example) there is a while wait loop which waits for the USB serial port to be opened before allowing the code to continue. This means you don't miss any initial greeting information, although it does mean that you do have to open the USB serial port in order for the program to actually run. I guess the only way might be to sent a character from the PC to the CMOD A7 via the UART to indicate that the serial port is open?