6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sun Nov 24, 2024 8:35 pm

All times are UTC




Post new topic Reply to topic  [ 147 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 10  Next
Author Message
PostPosted: Sun Aug 26, 2018 5:25 pm 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
GaBuZoMeu wrote:
I am a bit puzzled :) :oops:

I thought that RS-232 was an optional IF to Spartan 1...

Regards,
Arne

Oh damn, you're good! Yes, that particular USB I/F for the keyboard will most likely be attached to the bottom Master Spartan 6. If I run out of pins on the Master Spartan 6, then I don't think it would be a problem dumping hi-speed data into one of the RAMs controlled by the slave Spartan 6 using another USB hi speed contoller.

I should really finish this day checking the pin counts. I really appreciate your help!

_________________
65Org16:https://github.com/ElEctric-EyE/verilog-6502


Top
 Profile  
Reply with quote  
PostPosted: Sun Aug 26, 2018 5:33 pm 
Offline
User avatar

Joined: Wed Mar 01, 2017 8:54 pm
Posts: 660
Location: North-Germany
Don't hesitate :D

My pleasure; and if you ever get this baby up and running don't forget to post news!


Regards,
Arne


Top
 Profile  
Reply with quote  
PostPosted: Sun Aug 26, 2018 5:58 pm 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
I'll be making more videos too. Like these

_________________
65Org16:https://github.com/ElEctric-EyE/verilog-6502


Top
 Profile  
Reply with quote  
PostPosted: Mon Aug 27, 2018 9:18 am 
Offline
User avatar

Joined: Fri Nov 09, 2012 5:54 pm
Posts: 1431
I'm a bit puzzled about those two FT232H chips in the block diagram.

Correct me if I'm wrong:
It doesn't come out clearly from the FT232H datasheet, but I think the FT232H is a USB Slave,
designed to work as a bridge from USB to RS232\FIFO\SPI etc.

Interfacing a USB keyboard or a USB memory stick to the FPGA would require a USB Host.
Please check. :)


Top
 Profile  
Reply with quote  
PostPosted: Mon Aug 27, 2018 10:27 am 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
ttlworks wrote:
I'm a bit puzzled about those two FT232H chips in the block diagram.

Correct me if I'm wrong:
It doesn't come out clearly from the FT232H datasheet, but I think the FT232H is a USB Slave,
designed to work as a bridge from USB to RS232\FIFO\SPI etc.

Interfacing a USB keyboard or a USB memory stick to the FPGA would require a USB Host.
Please check. :)

It doesn't explicitly say if it's a USB host or slave device. I think it has the potential to be both? as it says multipurpose. But thanks for pointing that out. What attracted me to this IC was the royalty free drivers available for Win10 64-bit. Maybe more searching on FTDI's site might yield a better solution. I'm tempted to just go with 2 MCP2200's as they are much smaller, however their royalty free drivers are spec'd for WinXP and Win7, which I guess I could run in compatibility mode? Not sure, but when I used the Tx/Rx mode on the MCP2200 I was able to push crazy speeds sending data from the PC. I forget the terminal program I was using ... It's here somewhere.

Regarding the A21 line and extending the SyncRAMs to 4Mx18 using 2 of them, they have separate active low and active high chip enables so only one more pin needed from the FPGA. Also, since the memory has doubled I was checking into 4K transmitters. I don't think that's going to happen as my RAMs are limited to 250MHz.

_________________
65Org16:https://github.com/ElEctric-EyE/verilog-6502


Top
 Profile  
Reply with quote  
PostPosted: Mon Aug 27, 2018 11:09 am 
Offline
User avatar

Joined: Fri Nov 09, 2012 5:54 pm
Posts: 1431
Sorry: To me, it looks like the MCP2200 is a USB Slave.

Please take a look at the Maxim MAX3421E USB Host\Slave. // I don't have any practical experience with that chip.


Top
 Profile  
Reply with quote  
PostPosted: Mon Aug 27, 2018 11:47 am 
Offline
User avatar

Joined: Wed Mar 01, 2017 8:54 pm
Posts: 660
Location: North-Germany
Now, that I have realized that the Spartan6 do not have USB functionality (I thought they were capable) I understand why you are looking for an USB master chip :!: :idea:

Perhaps another FPGA that intrinsic supports Highspeed USB 2.0 is an option for you? This third FPGA could then distribute and collect data via fast SPI within the system.


Regards,
Arne


Top
 Profile  
Reply with quote  
PostPosted: Mon Aug 27, 2018 12:38 pm 
Offline
User avatar

Joined: Fri Nov 09, 2012 5:54 pm
Posts: 1431
Microchip PIC32MK family of microcontrollers seems to have chips with two USB ports,
each port able to work as USB Host or USB Slave.

Pro: PIC32 in the system also probably could be used as a "debugger" for the FPGAs.
Con: Writing the software for the PIC32 will require some work... and won't be fun.

Hmm... it's a pity, that the PIC32MK family doesn't seem to have an Ethernet controller already integrated on the chip... yet.

Edit: if somebody happens to know a microcontroller with 2 USB Host\Slave ports which isn't from Microchip, please post it here.


Top
 Profile  
Reply with quote  
PostPosted: Mon Aug 27, 2018 8:25 pm 
Offline
User avatar

Joined: Wed Mar 01, 2017 8:54 pm
Posts: 660
Location: North-Germany
ttlworks wrote:
Edit: if somebody happens to know a microcontroller with 2 USB Host\Slave ports which isn't from Microchip, please post it here.

The STM32H753xI seems to have 2 distinct USB IFs plus Ethernet and a few things more. :P

(Be warned: hard stuff, datasheet = 232 pages, reference manual (w/o CPU) = 3247 pages)


Top
 Profile  
Reply with quote  
PostPosted: Mon Aug 27, 2018 10:56 pm 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
After looking at USB I/F's needed for fast data transfer, including ones found at Opencores.org, I've decided to abandon USB for this purpose. It's just too complicated and I can't afford to spend time on experimenting with it.

I'm going back to the SD Card I/F. That interface will most likely be one from OpenCores.org... I'll be keeping the MCP2200 for the keyboard and it can double for rudimentary file transfer from the PC @1Mb/sec. I just read an updated version of the MCP2200 datasheet and the drivers are compatible with Windows 10.

One step closer to board design. Not had a chance to work with the 65Org16 yet. :(

_________________
65Org16:https://github.com/ElEctric-EyE/verilog-6502


Top
 Profile  
Reply with quote  
PostPosted: Wed Aug 29, 2018 11:01 pm 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
Sorry for the slow progress but I finally got around to the availability of I/O pins on the bottom Master Spartan 6. Great news is that there should be about 22 pins available for the communications port going to the Slave Spartan 6. Wide enough to place a 4M address...

All this is for future development purposes as I'll be concentrating initially on the 65Org16 Assembler, not graphic state machines except for maybe character magnification. But if I spend the time and $$ on the board design I would like it to have as much potential as possible with those IC's so please bear with me at this development stage.

A few changes to the General Layout:
1) Master and Slave Spartan's are labelled and keyboard/PC interface is attached to the Master.
2) The MCP2200 USB to UART has replaced the FT232. Using the VQFN package, 5mmx5mm.
3) HDMI Transmitter has been relabelled. I still have yet to show programming connections from the slave Spartan 6 to this IC. Another QFN package.
4) There is now a common pixel clock among all the SyncRAMs so everything is guaranteed to be synchronized.
5) SDHC has been chosen for large/fast file transfers. It's looking like a SPI core? I hope I can do this!


Attachments:
General Layout.c.jpg
General Layout.c.jpg [ 69.2 KiB | Viewed 2673 times ]

_________________
65Org16:https://github.com/ElEctric-EyE/verilog-6502
Top
 Profile  
Reply with quote  
PostPosted: Thu Aug 30, 2018 8:19 am 
Offline
User avatar

Joined: Fri Nov 09, 2012 5:54 pm
Posts: 1431
Block diagram looks nice. (Do we need buffers\level_translators between FPGA and SD card ?)
BTW: It's a pity, that TDA19988, ADV7511 and TFP410 have different pinouts\packages. (Because availability of these chips may vary.)


Top
 Profile  
Reply with quote  
PostPosted: Thu Aug 30, 2018 1:28 pm 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
ttlworks wrote:
Block diagram looks nice. (Do we need buffers\level_translators between FPGA and SD card ?)
BTW: It's a pity, that TDA19988, ADV7511 and TFP410 have different pinouts\packages. (Because availability of these chips may vary.)

One nice thing about Xilinx FPGAs is you can spec the I/O voltage levels per pin. For those SyncRAMs that I was able to find, I have to set those I/O pins at 2.5V. For the TDA19988 interface, those I/O pins have to be 1.8V. Most everything else will be 3.3V which is max output voltage. You can also specify slew rate as Fast or Slow and also spec output current per pin.

The ADV7511 looks nice but has 100 pins vs 64. The TI part looks like it's geared for DVI connections, 3 of them which is interesting.

_________________
65Org16:https://github.com/ElEctric-EyE/verilog-6502


Top
 Profile  
Reply with quote  
PostPosted: Fri Aug 31, 2018 1:09 am 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
This is probably going to be the last block diag I work from in order to start the board routing. Will be 4 layer, size yet to be determined. I'll show my setup on how to solder QFN packages and individual SMD cap's and resistors when that time comes!

Last major addition was the 32Mb SPI FLASH for non-volatile storage. Will try to find one larger in size, but this one is only $4.50US. Why not add it? All I/O is just about Max'd out on both Spartan 6's.


Attachments:
General Layout.d.jpg
General Layout.d.jpg [ 82.99 KiB | Viewed 2599 times ]

_________________
65Org16:https://github.com/ElEctric-EyE/verilog-6502
Top
 Profile  
Reply with quote  
PostPosted: Sun Sep 02, 2018 3:09 pm 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
I started to panic a little today with all those different voltages. My last project, everything was using the Xilinx 3.3V LVTTL spec. I was reading the UG381 IOB spec today and for this project I'll be using the LVCMOS spec which allows 1.2V, 1.5V, 1.8V, 2.5V and 3.3V. It's sort of difficult to read but I believe any pin per IOB can be assigned any of those voltages, as long as the entire IOB is using the LVCMOS spec. Can anyone confirm this?

In preparation for my worst fears, I made most everything a 1.8V standard, the SyncRAMs are capable of this. The UG381 guide also mentioned to use LVCMOS when performing FPGA to FPGA communication so I'm confident there.

I'm going to run a project through ISE and experiment with the constraints file in order to see if it generates any errors.

Also, I may lose a few pins on the Inter FPGA Comm channel. There are some multi-function pins that are best left unused for 100% reliability. Still doing research.

EDIT: Deleted updated Layout.e

_________________
65Org16:https://github.com/ElEctric-EyE/verilog-6502


Last edited by ElEctric_EyE on Sun Sep 02, 2018 5:45 pm, edited 3 times in total.

Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 147 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 10  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 18 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: