6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Tue Sep 24, 2024 9:28 pm

All times are UTC




Post new topic Reply to topic  [ 67 posts ]  Go to page 1, 2, 3, 4, 5  Next
Author Message
PostPosted: Sat Dec 14, 2019 10:52 pm 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
Board Description:
The 4 layer board measures 2.5" (63.5mm) x 4.5" (144.3mm). It's a design that has evolved from past projects that have primarily focused on video. This new board can also display 1080p 16-bit 5-6-5 RGB video using a VGA connector, but now can also accommodate audio I/O.
There are 2 Spartan 6 FPGA's, each of which can control up to 2 4Mx18 250MHz NBT (No Bus Turnaround) SyncRAMs wired to form 8Mx18. [more to add here]

All IC's are powered by 3.3V with 5V needed for the Audio and USB. A rather tight voltage range of 5V-5.5V @5 amps is needed for the main power supply input. Close to 3 amps (max) are used by the SyncRAMs alone (@250MHz).

The I2C bus:
1) A programmable CMOS crystal oscillator with a frequency range of 100kHz to 212MHz. Boot address: $55
2) A resistive touchscreen controller. Boot address: $48
3) Digital audio transceiver. Boot address: $80

The SPI bus:
1) SD Card controller.
2) 256Mb FLASH.

I/O Connectors:
1) 2mm x 5.5mm 11Amp main power receptacle input.
2) 4 pin FFC connector for resistive touchscreen input.
3) VGA output.
4) JTAG for programming FPGA's. Digilent HS-1 Rev A JTAG programming cable is used. Digilent HS-2 & HS-3 are currently available.
5) USB for keyboard input, PC communication.
6) micro-SD card for storage, data exchange.
7) SPDIF receiver module. Up to 216kHz In.
8) SPDIF transmitter module. Pass thru.
9) SPDIF transmitter module. Out.
10) 3.5mm stereo receptacle. 2x analog inputs to 24-bit ADCs @ 96kHz.

IC's and Package Styles:
FPGA's: Xilinx XC6SLX9. 144-pin QFP.
FPGA 8Mb SPI FLASH (PROMs): Winbond W25Q80DV. 8-pin WSON.
Synchronous RAM's: GSI Tech GS8640Z18. 100-pin QFP.
Digital Audio Transceiver: PCM9211. 48-pin QFP.
330MHz VideoDAC: ADV7125. 48-pin QFP.
Programmable Oscillator: Si514. 6-pin 5x7mm.
Touchscreen Controller: SX8651. 12-pin DFN.
USB to UART: MCP2200. 20-pin QFN.
FAT16/32 SD Card Controller: CH376T. 20-pin SSOP.
256Mb (32MBx8) SPI FLASH: S25FL256S. 8-pin WSON.

Onboard Linear Voltage Regulators and Filtered A/V Powers:
1) 3.3V @5A: TPS75633. Main 3.3V Power derived from main 5V input.
2) 2.5V @1A: MCP1826: FPGA VCCAUX. Power derived from main 5V input.
3) 1.2V @1A: MCP1826: FPGA VCCINT. Power derived from main 5V input.
4) 5V for analog audio section of the digital audio transceiver is filtered from the main 5V input through a 500mA ferrite bead and ceramic cap's.
5) 3.3V for digital audio section of the digital audio transceiver is filtered from the main 3.3V power plane through a 500mA ferrite bead and ceramic cap's.
6) 3.3V for the videoDAC is also filtered from the main 3.3V power plane through another 500mA ferrite bead and ceramic cap's.
[schematic soon]

Design Challenges:
The very first challenge was trying to stack the RAMs. After placing 1 RAM on the bottom and flipping the 2nd RAM to go directly behind it on the opposite of the board, I quickly realized the pin layout of the SyncRAMs easily accommodated this setup. Just a few pins needed special attention by adding traces. The rest of the address lines and data lines just required vias to connect to the other address and data lines respectively, direct pin to pin lineup is not necessary.
The second challenge, after adding the digital audio transceiver was finding room to place the pass thru SPDIF module. Currently it is on the opposite side of the board as the USB connector. This will require me to shave down the pins of the module after soldering so that the USB connector can sit more flush to the board. I'll also have to insulate the bottom of the USB connector as it is metal.
The next challenges were getting the SPDIF control signals to the Master Spartan 6 and the analog L & R inputs wired up between the barrel jack connector and the digital audio transceiver IC. The constraints of using 4 layers and size of the board forced me to use wire wrap for the control signals and shielded analog cable for the analog inputs.

First Design Concept:
The Master Spartan 6 has 35 I/O lines of communication with the Slave Spartan 6. For my conceived design, the Master will send RGB data to the Slave along with HSync & VSync and Pixel Clk. That leaves 17 I/O lines for commands between the Master & Slave Spartan 6's.
The Slave will then send out the RGB to the 330MHz capable videoDAC. The Slave can also communicate with a keyboard or a Windows PC via USB. This video setup will allow not only multiple page flipping but also video overlay. The video overlay is a concept I've proven using 5 Parallel Video Boards. 3 boards seemed to be the realistic limit due to some video pixel noise created from back-plane connectivity between the boards @148.5MHz. That design had no ability for page flipping and I abandoned it. So in this current design there are 2 video sources, 1 per FPGA, merged into one board. Hardware graphics in the 'rear' plane while character plotting on the front from the Master and Slave hardware plotters will be the first goal.

More Design Concepts:
Not all the IC's need to be on the board in order for it to be functional.
For example, if one just wanted SPDIF functionality, only the SPDIF Transceiver and Master Spartan 6 would be needed with just a few supporting ICs (Oscillator, FPGA PROM, Voltage Regulators, etc).
Another possibility, since the keyboard interface and video output are done by the Slave Spartan 6, you could have a terminal? or maybe assembler? In addition, this would require at least 1 SyncRAM for video output and the videoDAC.
[more to add here]

NOTE: This is a work in progress. Look here for critical updates like pics, FPGA constraints, parts list, etc.
Block Diag made with yEd. Extended pics taken with Techsmith Snag-It.

EDIT (1/9/20): Added Digilent JTAG programming cable details.


Attachments:
V1.5 Production.Top.Real.jpg
V1.5 Production.Top.Real.jpg [ 977.12 KiB | Viewed 2263 times ]
V1.5 Production.Bottom.Real.jpg
V1.5 Production.Bottom.Real.jpg [ 934.67 KiB | Viewed 2263 times ]
EPCB.jpg
EPCB.jpg [ 158.43 KiB | Viewed 2290 times ]
Block_1.jpg
Block_1.jpg [ 187.8 KiB | Viewed 2303 times ]
V1.5 Production. Bottom. Layer.jpg
V1.5 Production. Bottom. Layer.jpg [ 1.81 MiB | Viewed 2362 times ]
V1.5 Production. Top. Layer.jpg
V1.5 Production. Top. Layer.jpg [ 2.12 MiB | Viewed 2400 times ]

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


Last edited by ElEctric_EyE on Fri Jan 10, 2020 12:12 am, edited 1 time in total.
Top
 Profile  
Reply with quote  
PostPosted: Mon Dec 30, 2019 9:49 pm 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
Starting the soldering today using my hot plate that I've used years ago. It still works very well. There's an old thread in here in the Programmable Logic section about SMT reflow where I showed it off. It has the link to where I based the design. It has 1 thermocouple and 4 heating elements in a 1" thick 8"x6" block of aluminum. It takes about 30 minutes to get it to 200C from room temp. After that, the board goes on for about 5-10 seconds. To cool it down quickly I place it on an identical block of aluminum at room temp which quickly draws the heat away.


Attachments:
Hotplate.jpg
Hotplate.jpg [ 2.27 MiB | Viewed 2232 times ]

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


Last edited by ElEctric_EyE on Mon Dec 30, 2019 10:17 pm, edited 2 times in total.
Top
 Profile  
Reply with quote  
PostPosted: Mon Dec 30, 2019 9:55 pm 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
I'm starting with the JTAG section as I've never used SPI FLASH to program the Xilinx Spartan 6. I've always used the Xilinx PROMs with no problem. So after soldering, I'm check out the connections using a USB microscope. And after looking at this pic, I've realized I forgot to add flux! Bad solder joints. Hopefully adding some flux after the fact and reflowing will refix the problem.


Attachments:
USB microscope.jpg
USB microscope.jpg [ 2.41 MiB | Viewed 2137 times ]
SPI FLASH QC.jpg
SPI FLASH QC.jpg [ 231.82 KiB | Viewed 2233 times ]

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


Last edited by ElEctric_EyE on Tue Dec 31, 2019 10:26 pm, edited 1 time in total.
Top
 Profile  
Reply with quote  
PostPosted: Mon Dec 30, 2019 10:45 pm 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
Attachment:
After flux.Cold joints.jpg
After flux.Cold joints.jpg [ 341.94 KiB | Viewed 2227 times ]
After flux. Did not solve the problem.
Here I've added the SMALLEST amount of Chipquick liquid solder. Some interesting pics.


Attachments:
Chipquick liquid solder close.jpg
Chipquick liquid solder close.jpg [ 494.86 KiB | Viewed 2227 times ]
Chipquick liquid solder far.jpg
Chipquick liquid solder far.jpg [ 415.7 KiB | Viewed 2227 times ]

_________________
65Org16:https://github.com/ElEctric-EyE/verilog-6502
Top
 Profile  
Reply with quote  
PostPosted: Mon Dec 30, 2019 10:52 pm 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
Final desired result, close enough anyway. 4th reflow. Not good. However, I am developing a SOP for IC's at least. Individual 0402 packages will be the real challenge, but I had no choice!
Now it's off the ultrasonic cleaner with a heated solution of Windex. Caveman make SMD boards


Attachments:
Liquid Solder reflowed.jpg
Liquid Solder reflowed.jpg [ 391.41 KiB | Viewed 2226 times ]

_________________
65Org16:https://github.com/ElEctric-EyE/verilog-6502
Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 31, 2019 7:51 am 
Offline

Joined: Wed Mar 02, 2016 12:00 pm
Posts: 343
You may want to consider a two-step reflow process to get better solder joints. Going all the way to solder temperature at one step within a few seconds will give you all sorts of problems. One of them is "splatter" of the solder which will remove the solder from one point and deposit it all around. I believe that is what you are experiencing.

One way to do this is to increase the temperature of the board more slowly. You can put your hotplate at a lower temperature and use some thermal resistance between the hotplate and your board. For example another PCB. That will bring your board up in temperature more slowly. You will then need to finish the reflow with a heatgun (or alike) to bring the components up to the final solder temperature. Keep the components at reflow for around 30 seconds and then bring the whole board down in temperature again. With a heatgun, the board will go down to the hotplate temperature, and then you can take it off (the hotplate) and let it cool. Try to prevent temperature shocks.

You may want to look at this link (look under "reflow profile") to get a better understanding of what can happen if you shock your boards.


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 31, 2019 2:20 pm 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
I think you're correct, a hot air gun would probably help. Also, after watching some more videos I realized I need liquid solder. I'm using solder paste currently and it's preventing me from applying as much as I really need.

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


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 31, 2019 8:15 pm 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
So for the FLASH PROM's I just applied more flux and hit each pin with the soldering iron. I think that's what I'm going to wind up doing for everything. I tackled some 0402 passives using the hot plate and heat gun. The flux kept the parts from being blown away. Then I let it cool down, reapplied some flux and hit each end with the soldering iron with the slightest bit of solder on the end.

I'm almost done with the JTAG section. 4 0402 resistors have been soldered in, the DS1818's with internal 5.5K pull-up resistors are soldered in. I believe all that's left are the reset buttons, the FPGA's and the JTAG connector. Ah, and the voltage regulators which I still have to order.
Here's the schematic for the JTAG section. I realized I made an error on the silkscreen labeling the Master and Slave reset buttons. They're switched.

I'll have some more pics after I solder in the FPGA's.


Attachments:
JTAG.jpg
JTAG.jpg [ 142.42 KiB | Viewed 2155 times ]

_________________
65Org16:https://github.com/ElEctric-EyE/verilog-6502
Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 31, 2019 9:50 pm 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
144-pin .5mm QFP's are a breeze to solder in. There's enough solder already on the new board, so I've done exactly what I've done so many times in the past for these QFP's: Just applied flux, laid the IC on top and swiped a fine tip soldering iron, @450deg F, towards each pin. Nice, clean and neat. No hot plates, no heat guns, no liquid solder. I'll be doing the same for the 100-pin .5mm QFP SyncRams, if I get that far with this version of the board. The 0402 passives are the only challenge here I think.
Here's some pics after a hot ultrasonic bath in 91% Isopropyl Alcohol.


Attachments:
6x5 WSON pkg. FPGA FLASH PROM.jpg
6x5 WSON pkg. FPGA FLASH PROM.jpg [ 198.33 KiB | Viewed 2147 times ]
0402.R7.close.jpg
0402.R7.close.jpg [ 213.93 KiB | Viewed 2147 times ]
0402.R6.close.jpg
0402.R6.close.jpg [ 169.89 KiB | Viewed 2147 times ]
144-pin .5mm QFP. close2.jpg
144-pin .5mm QFP. close2.jpg [ 224.3 KiB | Viewed 2147 times ]
144-pin .5mm QFP. close.jpg
144-pin .5mm QFP. close.jpg [ 201.52 KiB | Viewed 2147 times ]

_________________
65Org16:https://github.com/ElEctric-EyE/verilog-6502
Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 31, 2019 10:30 pm 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
Soldered in 2 of the 3 voltage regulators and also the main power in receptacle. The VGA connector was just snapped in for show. The point of this first stage is to verify JTAG programming. Putting in an order for some stuff. See you next year!~


Attachments:
12.31.2019.front.jpg
12.31.2019.front.jpg [ 2.04 MiB | Viewed 2141 times ]
12.31.2019.back.jpg
12.31.2019.back.jpg [ 1.12 MiB | Viewed 2141 times ]

_________________
65Org16:https://github.com/ElEctric-EyE/verilog-6502
Top
 Profile  
Reply with quote  
PostPosted: Wed Jan 01, 2020 12:52 am 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
Temp storage... Need a few parts.


Attachments:
Temp Storage.jpg
Temp Storage.jpg [ 286.94 KiB | Viewed 2127 times ]

_________________
65Org16:https://github.com/ElEctric-EyE/verilog-6502
Top
 Profile  
Reply with quote  
PostPosted: Mon Jan 06, 2020 9:37 pm 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
I got the TPS756333 5A 3.3V linear voltage regulator, soldered it in, powered the board up and measured the 5V in, 1.2V, 2.5V and 3.3V. All are within spec. So tonight I'll finish off by scavenging the JTAG connectors from an old PVB board and I should be able to test the programming of the FPGA's using ISE14.7.

This is two steps forward. I did have a 1 step backwards moment when my main desktop computer failed to boot on Jan 2nd. Jan 1st I was away. Very very curious timing for this failure! However, I was prepared as I backed up everything to bluray when I had the boards made weeks prior and can proceed with JTAG testing on another computer very soon!

Xilinx has updated ISE 14.7 for Win10 but it's only good for the Spartan 6 which is fine in my case.

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


Top
 Profile  
Reply with quote  
PostPosted: Mon Jan 06, 2020 10:13 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10938
Location: England
Good save with the backups!


Top
 Profile  
Reply with quote  
PostPosted: Tue Jan 07, 2020 8:58 pm 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
BigEd wrote:
Good save with the backups!

I've learned. But still learning. My backup RAID5 server is on that computer that is down. :lol: It has operating system images, ISE images and project files... Next plan is to make that RAID5 array mobile.

So I must download many GB worth of data for ISE. 2nd attempt today after 7GB yesterday when I tried installing Xilinx' newest Windows 10 version but it runs under a virtual machine which will no doubt slow down the entire ISE environment. I can't tolerate that. So I'm downloading the previous version for Win7 and trying this fix again. This will take another 3hours to just download. :roll:

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


Top
 Profile  
Reply with quote  
PostPosted: Thu Jan 09, 2020 12:01 am 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
Still working out the ISE 14.7 install... iMPACT is not being installed for some reason, so I can't test the JTAG yet. Seriously pissing me off,,, I have to bring my old machine back up and reanalyze this whole PC failure situation.
Today I've installed the JTAG connector and took 2 pics with the 5V 11A power connector. That power is coming from an old ATX switching power supply. Plenty of current and good regulation. Be patient with this old geezer!


Attachments:
5VIn&jJTAG2.jpg
5VIn&jJTAG2.jpg [ 1.69 MiB | Viewed 1970 times ]
PWR&JTAG.jpg
PWR&JTAG.jpg [ 1.5 MiB | Viewed 1970 times ]

_________________
65Org16:https://github.com/ElEctric-EyE/verilog-6502
Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 67 posts ]  Go to page 1, 2, 3, 4, 5  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 16 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:  
cron