Jump to content

Pasqualino31

Members
  • Posts

    12
  • Joined

  • Last visited

Everything posted by Pasqualino31

  1. Let's get down to brass tacks. A) I wasn't looking for source or proof that the CMOD-A7 could be used as a UART and never requested your help in completing my project, although I do appreciate the material you posted. B) WTF? You're a charming little chap, aren't you? C) I read your project's doc and went through the py code. I spent a total of an hour or so doing that. I also tried it w Putty. The fact is that your project doe not work on a standalone CMOD, not "as is" anyway. Your documentation didn't include settings for Putty, your python script can not run on Win10. You probably should have mentioned all of this. You are also wrong about the CMOD's FT2232 being able to use the UART and the JTAG at the same time. Try your project with an ILA for proof. D) look in the mirror, bro Apparently this happens to you often. Try not to be so condescending, it would really cut down on the negative feedback, I promise you. You didn't get "excoriated" until you crossed the line with your "lead a horse to water" comment. Really, Who TF do you think you are? Should I quote all of your condescending and incorrect statements? What a lengthy waste of time that would be. You have a bad habit of "talking at" people as opposed to "speaking to" people. Perhaps this is only when posting in this forum and perhaps it's only with me. You may not do this in real life, but you sure do it in this forum. So come down off your cross brother. You nailed yourself up and only you can get yourself down. Once again, thank you for the material you posted. It will help me with my Python skills. I'm a 59 yr-old HW engineer. I cut my teeth on analog vacuum tube RADAR and Communication equipment in the NAVY and never touched a PC or wrote a line of code until 1989 when I was 26, my freshman year of college. I worked RF at Raytheon (my first job out of college) until 1997 before touching a CPLD and taking a VHDL beginner course on audio cassette tapes. So while I'm not new to this, I am on the other side of the spectrum when it comes to SW, including scripts. I am not embarrassed by this. I remain humble and continue to learn while trying to help others. I listen closely to what people say and certainly to don't bark at people telling them how easy it is when trying to help them and ask for nothing in return. Kindly sharing your experience and passion for the subject matter is its own reward. Humility is the key. So thank you for the material, I'll use what I can to improve myself and forget about anything negative in our interaction, It' a waste of energy. Thank you for reminding me to stay centered and humble. I needed this, I always need this. Have a great night, -Patrick
  2. um... yeah, definitely. Your project is a great resource for me since I'm light on Python scripts and even lighter on these apps other than TeraTerm. So I really appreciate your input, but I could really due without the sarcastic "horse to water" crap, and other snarky sht, so cut it out. I'm grateful for any input and yours will be particularly useful to me when I'm less busy. I'm not so bad at Python, but I separate any py scripts: 2.7 in Unix type O/S and Py 3.1 on windows. I really don't want to pick apart scripts and decode them with your "readme" docs. That's a project onto itself. I do appreciate the material though. S-I-M-P-L-E is what I wanted and that's what I made for my customer. Do you have customers? This is a test system designed to work with minimal overhead. Python scripts and other apps which requires setup beyond the scope of the average Union Electronic technician means I have to write a detailed instruction document. Don't you dare tell me that the setup is simple enough to satisfy this requirement, so stop your f'n BS about how "easy" this project is to setup. It doesn't work on a free-standing CMOD-A7 out-of-box, so it's no simple enough for my project of which you know next to nothing beyond the mistakes in my schematic you created in your mind to fit you narrative. It's good work, but it's not a one-size-fits-all solution to anything but the app board you created it for, I got the UART to work. The /mini-Mod takes way longer than I imagined to come out of reset. On top of that, the Vivado ILA wouldn't work with my system clock and that took a while to debug and then redesign with a different sys_clk. Once I got the ILA up and running it was a walk in the park. So quit wishing for my failure, it isn't going to happen. The debug time it took to bring this up was short and I took a week off since this discussion started Let me remind you that you are very fast to criticize and find errors that didn't exist (zero-ohm res to shield? WTF???, what were you looking at?) On top of that, you are very presumptuous. Who TF are you to say how much FPGA resource or whether a particular part or mod board is sufficient for my needs? I am the owner of an SCORP and this is a Purchase Order (PO) contract. That means that I had to sell a cheap solution, so you have no frame of reference here, having not read the Contract Requirements. I'm sure you're proud of your project, and it seems to be a useful resource. I'm sure you're proud of it and you should be. However, the fact that the CMOD does not behave like other app boards that use the FT2232H (Like my AC701 board.) is a pure non-sequitur, I'm using the CMOD-A7 and it's working with the Mini-Mod at this point... so there. If you like, I'll make a build just for you that doesn't use the USB port of the CMOD for COMM's for any target board you want. No scripts needed, just a TeraTerm.
  3. Well, the initial surprise of having the CMOD run a UART, full-duplex and at a pretty fair clip, it is no surprise that you can not access the JTAG chain because the FT2232 is not capable of any further functionality. I have an Ubuntu install I can try this out on, but it won't fly in windows without some changes to the Python script and, like I said, I'm no a SW guy, so my knowledge of anything beyond ANSI C rolls off quickly. I know enough TCL Python and C++ to get by for integration, but the only code I am proficient with is VHDL and SV which might be code, but it's not SW..
  4. I had no problem building it, just took a little work. You have a file that I'm missing, so I had to export the DCP because I go a "missing file" warning, but I was still successful building it. the Python script did not work. I'll mess with all that another day. It's definitely not what I need here, but it will give me something to work with in the future. This UART is strictly a dumb terminal thing. I do need the RTS/CTS HW control flow though.
  5. There is no 0-ohm resistor to shield. The USB shield of the Mini-Mod is connected to GND of the Mini-Mod board by the Mfr (FTD). The only thing I was able to do about that was to use a laptop PC for my USB Bridge Host. When I use my desktop PC that pulls everything down to Earth GND and I can't have that. Using a laptop PC for my USB Bridge Host solves the ground problem. I use my PC for the CMOD-A7-35T. The grounded shield is no longer an issue, it is what it is. ************** [edit] I appreciate the link, but I've dealt with that project in the beginning. It was the "last straw" for many reasons. For starters, I had a hell of a time building it. I had to open the DCP as its own project export the DCP as a Verilog netlist and then add the generated Verilog netlist files into the project and deleted the original DCP from the project. after trying a few other things out. I couldn't get the Python script to run in Win10, but I tried. Ultimately it just hammered home the point that using the on-board FT2232 was just not worth it due to all the proprietary nonsense. The FT2232H is not capapble of handling all of this functionality, so you can't use the JTAG interface. It was a particularly bloated UART, too and needed assistance with that Python script. The contract requirements for this project were very specific about no IP or Black Box modules and especially no software, The system tests a digital power-down sequencer that deals with a very high power system. The group is unhappy enough with having to support an FPGA. The engineers are electrical power guys as are their technicians. The documentation reads like a beginners course in Xilinx/Vivado/VHDL. Probably over 1./3 of my VHDL files are comments and verbose headers explaining the functionality in excruciating detail. Then there's a design Document and a User's Manual. They want no SW and no voodoo. A lot of FAA and Government work is like that. SW adds a whole new set of reliability work to certify and they don't like black boxes. This is particularly true of the FAA. ******** [end edit] I built a project on Friday with an ILA to monitor all those lines and am making changes to my VHDL code now. On Friday managed to get the system to "hiccup" the welcome message I have stored in ROM (BRAM) on the FPGA. It is supposed to wait to send it, but It's triggering early for some reason. A few changes had to be made: The ILA needs at least a 20MHz clock. If the frequency is lower, the ILA core will not be created. No problem there, I doubled the system clock frequency and with the Generic parameters I have in place it should have adjusted the baud rate to match. I'm about to run a simulation now because other things in the system are affected by the sys clock change. It shouldn't be much work. I'm using HW Ctl Flow, and Fridays build shows that the FT2232H pulls the RTS# line low at Rst# going low. (I use a single cycle wide neg pulse from the FPGA which is much slower then the clock on the Mini-Mod which is 125MHz I believe.) When that rst# pulse hits the Mini-Mod it brings the RTS# line down for about 1.25 us and it goes high again. I'm not sure what the HW startup sequence goes, but I believe I'll monitor that line and wait for it to go high before sending a CTS# and then waiting for the Mini-Mod to pull the RTS# line down again. Then I'll start sending my welcome message. At the end of the welcome message I wait for the user to hit "Any Key" to continue and then send the "Main Menu" which will ask the user to hit a number from 0 to 6 to run a particular test. Another message sometimes needs to be sent for certain tests. There's an option on every message to hit the space bar to return to the main menu. The Welcome Message is only at startup. On Friday i got it to the point where i started with a blank screen since the welcome message was already sent. I hit the "CR" key and got garbled txt in return. So I'm close here. I have a very good test bench for this system and once this UART problem is solved I'll be all but done with this. When this project is complete, this proto board will make one hell of an Artix-7 project board. I've got SPI,I2c, 1533, bi-directional BUS-Switches opto-isolator loopbacks and lots of other things and no SW required. I was able to expand the I/O of the CMOD by tri-stating some outputs (12) and connecting them to bi-di bus switches. I also have 12-bits of I/P on a 2:1, 12-bit Bus Mux, 16 bits of DIP SWs, a bank of 16 LED's and another bank of 12. There's also a few random LED's and the 3 LEDs for the Mini-mod.
  6. Hey Zygot, Thanks for the reply. I have to use a UART w/o SW. It has to be all HW and I'm starting slow with the 115,200 baud just like the gazillion apps bundled with these FPGA app boards use, just to get it going. For now I have the HW Flow control disabled for the same reasons, I just want it to work in any way, so simple is better. The CMODs are pretty new CMOD-A7 35Ts (6 of them to make 6 boards). I have to design this project 100% in VHDL, no Xilinx or 3rd party IPs, (needs to be portable) and no embedded cores. I am not married to the idea of using TeraTerm, it's just a simple dumb terminal emulator that needs minimal configuration for ser port. I actually have Putty installed for some embedded projects, but this UART is so damned simple that it's embarrassing me at this point that I have no COMs. As for the USB Bridge drivers, I did a clean Win10 install on both the laptop and desktop this month and they automatically loaded the drivers, so they are most likely the VCP drivers. I haven't tried this project on Linux for this project or for any UART for that matter. I've used my Linux machine for PCIe and ethernet with an AC701 board, but not for a (what I pitched to be and expected to be) a simple UART. I just need to sit down and calmly walk through this. The deadline for this phase is approaching and I'm starting to second guess myself and am getting a bit discombobulated. With the Mini-Mod, there is no reason for this not to work, it's just too simple. Using the on-board FT2232H on the CMOD as a full duplex modem is another story. I could only get that to fly in one direction, same thing for the ARTY. I am surprised, no, very surprised that you got a full-duplex 921600 COM going using the onboard FT2232H. That part is used for FPGA config and some other proprietary stuff (I think the SRAM has something hard wired to it.) Either way, I gave up on that, I couldn't find anyone else who could get it to go, you are the first. The different results from Laptop vs PC is that damned USB cable for the Mini-Mod. I included a pic showing the USB cable conn shells tied to the shields and Mini-Mod GND. It's not an issue when using the laptop for Mini-Mod and my Desktop for the FPGA boards. No trouble with the laptop seeing the FT2232 and doing the PnP config thing as shown in the pics above. I did clip my ground wire from the Mini-Mod to the IDC pins of the ribbon cable conn since there's no reason to connect the Laptop GND to the App Board Gnd. The attached pics show a continuity check verifying the shields to the USB cable for the Mini-Mod connected to the conn shells and the second pic verifying GND of Mini-Mod to shield connection. Never tie two chassis together unless you're trying to make a GND loop. Make no mistake. This is by design because the shell of the Mini-Mod is on the GND plane! I never expected this. It's a real problem with the PC because the MoBo USB connectors are tied to Earth ground. I really do appreciate the detailed replies, They're not just informative, they're therapeutic. I'm working remotely from a lab I built in an old bedroom of my family home on Long Island during the COVID shutdown. Moved out of here in 1981 when I joined the Navy and came back because I wanted my mommy, lol. Since then all my brothers and sisters took the opportunity and moved away. My youngest brother is still around, but he took the opportunity to work outside the home for the first time in a long while. So it's me an a 97 yr-old woman who needs very little care and is not very demanding (except for her 3PM hamburger on Thursdays, medium rare and purchased from a particular local butcher) , but not at all useful to wax electronics. The solitude can be maddening. So I truly, from the bottom of my heart, appreciate the discussion. I threw a pic of the "Poor Man's Lab". I found the analog O'scope in the attic, it was a Xmas present from my father in 1979. There's a cheap-O digi from Sigilent in the back. I was thinking eyeing that Digilent Analog Discovery 2 since there's a $200 off deal if you buy an FPGA app board for > $100
  7. BTW: Regarding the portion of my post that you quoted. The CMOD-A7 can NOT use its on-board FT2232H as a full duplex UART. Idid a poor job separating my actual issue from the conclusion of not being able to use the Arty or the CMOD app board's FT2232H parts because I know the USB bridge used for JTAG and other things other things. The config and actual wiring is proprietary. My issue is with getting a completely separate FT2232H working, which I am certain it can. It's just not working at the moment because of something I'm doing wrong.
  8. Thanks for the reply. If you refer to my schematic you'll see that I have my FT2232 Mini-mod wired up correctly. What I failed to show is the no PMOD connections. I have completely bypassed the CMOD on-board UART and am using a tried and true UART design. I have verified the FT2232H Mini-Mod with an Arty project, so I know this can be done. I am with your four (4) points 100% when it comes to the UART problems from the FPGA boards. I am aware that the USB Conn shell on the CMOD board is isolated from ground as is the shielding and the conn's on the USB cables themselves. That's what made the fake that the shield for the FT2232 USB is attached to its connector shells AND the board mounted USB connector shell on the Mini-Mod board. I was astonished!!! It was the last thing I expected. Using this with a desktop computer is out of the question since the mobo's USB conn are Earth grounded. Laptops (not an I have owned) do not have their USB conn Earth grounded. The Laptop I'm using now got me around this grounding issue. In my case the FT2232H is configuring in windows as two serial ports. I am using a laptob for this and am running a TerTerm dumb terminal configured at the 115,200 baud typical of this type of project. I have a desktop with my Xilinx tools and this is how I'm programming the board (I have programmed the Flash and am able to program the FPGA. I DO NOT use the CMOD USB port for the UART. I have assigned unused general purpose CMOS3.3V std I/O pins for my UART Tx and Rx serial lines and I have the HW flow control signals all hooked up. In fact, I suspect that the flow control IS what's causing this to fail. Like I said, I've checked this out before, but didn't use the HW flow control sigs. Right now I have the DSR & DTR grounded. They're of no use. The reset#, RTS & CTS may need pull-ups, so I'm about to try that. I have no choice in using an alternative. This part was chosen so that a higher speed FIFO can be used as well. It is on the board right now and I HAVE to make this work and there is NO reason why I shouldn't be able to make this happen. It has to happen, there is NO alternative. The FT2232H Mini-mod is there for a two (2) reasons and one of them (supposedly the easier of the two as I have made my share of systems that use RS232/422 over the last 25 years.) I can worry about the High Speed async FIFO part of the FT2232H later, but right now I MUST get this UART to work. I included images for the remaining UART sigs so you can see that they are not on the pre-wired ports to the on-board FT2232. I also posted a screenie of my Windows Device Manager. I have the ports configured to my baud rate o the FPGA and I configured the Tera Term dumb terminal emulator to these settings. If I pull the USB from the mini mod board the virtual COM ports 3 & 4 go away. This should work. If I can Tx some chars from my Arty board I can at least confirm the configuration of the FT2232 Mini-Mod. From there I'll have to try the CMOD design and probe the UART signals with an ILA and check the board sigs with an O'scope. I'm praying this is not an FT2232 config thing. Thanks, -Patrick So I ported this design to an Arty Board and will try things from there.
  9. I have been unable to get the My UART (I've used my own design and several other verified designs) to take I/P from the keyboard using TeraTerm. I came to the conclusion that it's not possible due to some proprietary wiring/configuration of the CMOD/FT2232H. I purchased an FT2232H Mini Module which sits in a socket on an actual circuit board as does the CMOD-A7 and is wired to the CMOD board through the PMOD connector and by direct connections on the circuit board. https://ftdichip.com/products/ft2232h-mini-module/ The FT_Tx is connected to the Rx I/P in my VHDL project and FT_Rx is connected to the Rx I/P. I use the individual USB ports to power each of the boards, but The FT2232H does have it's ground connected to the CMOD-A7 board through a ribbon cable connecting the PMOD's together. The CMOD-A7 is happy with this power configuration unless I connect the FT2232 to my desktop where the USB cable shields pulls everything to Earth ground. I'm using laptops to get around this issue, but I was surprised that the USB cable actually had the metallic connector shell tied to its shield and was surprised that I picked up Earth ground in this manner. Tying chassis of two units together through a cable is a built in ground loop. The cables for the CMOD-A7 (and the Arty, which I am also trying out only with ALL the UART sigs connected through the ribbon cable.) have completely isolated grounds. The USB cables outer shells are not tied together and the FPGA App boards' PCB mounted shells are not connected to GND. So after sorting through all this I get nothing on Rx or Tx. I can transmit through the FT2232H 'on board' the CMOD (Just reading characters out of a ROM for a "Welcome Message" and sending them out through my UART Tx in the project. It works fine so I know that circuit is good.) The FTD drivers are obviously good, so it is some configuration or connectivity issue. Maybe I need pullups on the OBUF's on the FPGA. I included a schematic of how I have this wired up. I followed the FT2232H Mini-Mod manual verbatim for self powering https://ftdichip.com/wp-content/uploads/2020/07/DS_FT2232H_Mini_Module.pdf Page 7 describes how to wire up the module for USB self-power. I'm going to double and triple check the connections and try pullups for driving the Mini-Mod. I have an ILA configured and it shows data out, but none in. Maybe there's something else I'm missing? -Patrick
  10. Walter. Outstanding work! I'm in the middle of debugging my own work targeting a CMOD-A7 which had too much proprietary nonsense to get a full duplex human interaction using TeraTerm as a dumb terminal emulator, so I bought a separate FT2232H-Mod board. The interaction from the user I/P side is simple. I simply spit out a welcome message which prompts the user from ROM (7-series BRAM) -> "press any key to continue" and then this triggers a menu for the user to select a test. I just decode the char returned and I just send test vectors out to my UUT which in turn responds and I bump up the sent data to the expected return data. I have a pointer that moves around to preset start points in ROM. This all works swimmingly well... in theory. I'm not getting a return character from the TeraTerm emulator, though. I have used buttons to trigger the tests, so that's all verified, just no response from the FT2232H although it does send the message to the terminal just fine. As a sanity check I attempted to use your TB, but the Vivado simulator doesn't recognize some of the code for reading/writing the stim file "tb_serport_uart_rxtx_stim.dat" these functions are not recognized: readcomment(iline, ok); readword(iline, dname, ok); the other textio functions are fine: write(oline, string'(".reset")); writeline(output, oline); readline (fstim, iline); It's as if I'm missing a lib or pkg? I'll create my own stim, but I like the idea of using a dat file for stim, i have just never used it. Thanks, -Pat
  11. I have a project that worked fine under 2015.4 2018 though 2021.1 but now I can't seem to find a board file that works for 2021.2 Installing 2021.2 was painful in Windows and absolute torture in Ubuntu. Can I modify a Board file to get it to work in 2021.2 ?
  12. I had to get a separate FT2232H module board to make my UART. The FT2232 can only be used as a UART if you make a block project and instantiate the AXI UART IP. For my project it had to be no SW and no IP (other than the MMCM and BRAM). I am curious how you worked around this issue, I burned a lot of time trying to figure out how to implement a full-duplex UART in VHDL, but concluded that the Rx and Tx pins in the XDC file are not what they seem. I used I/O resource and wired the two mod boards on sockets on a project board. I even used the HW flow control signals. Now I have upgraded my Vivado to 2021.2 and Vivado won't recognize the Board file, now I can't program the board. Does anyone know what I can do to get a board file for CMOD-A7-35t that Vivado 2021.2 will be able to read?
×
×
  • Create New...