Electron 6502 desolder / socket pics + Max 10 FPGA in CPU socket

for bbc micro/electron hardware, peripherals & programming issues (NOT emulators!)
User avatar
myelin
Posts: 430
Joined: Tue Apr 26, 2016 9:17 pm
Location: San Francisco, CA, USA
Contact:

Electron 6502 desolder / socket pics + Max 10 FPGA in CPU socket

Post by myelin » Tue Jun 13, 2017 11:55 pm

After much messing around with a broken hot air rework station, followed by even more messing around with a solder sucker, and finally getting the rework station to function, I managed to get the 6502 out of my Elk:
desoldered_6502_sm.jpg
... and back in again, on a socket! Actually a 28-pin socket with a second hacked-apart 28-pin socket for the last 12 pins, which was a bit fiddly, but worked:
desoldered_6502_in_socket_sm.jpeg
I was sure I had fried something with all that, but the machine seems to be working just fine.
Last edited by myelin on Tue Jan 30, 2018 11:13 pm, edited 1 time in total.
SW/EE from New Zealand, now in Mountain View, CA, making BBC/Electron hardware projects for fun.
Most popular: fast serial port, FX2+PiTubeDirect Tube/Cartridge adapter, USB cart interface.

User avatar
DutchAcorn
Posts: 1829
Joined: Fri Mar 21, 2014 9:56 am
Location: Maarn, Netherlands
Contact:

Re: Electron 6502 desolder / socket pics

Post by DutchAcorn » Wed Jun 14, 2017 5:56 am

Congrats on the successful desoldering! Was there a higher goal to reach for socketing the 6502?
Paul

User avatar
myelin
Posts: 430
Joined: Tue Apr 26, 2016 9:17 pm
Location: San Francisco, CA, USA
Contact:

Re: Electron 6502 desolder / socket pics

Post by myelin » Wed Jun 14, 2017 7:47 am

DutchAcorn wrote:Congrats on the successful desoldering! Was there a higher goal to reach for socketing the 6502?
The near-term plan is to make an internal upgrade for my Elk so I can have some RAM / flash / mass storage without having to have anything plugged into the back. The 6502 socket is a really convenient place to get access to almost all the expansion port signals.

I'm also interested in getting hoglet's AtomCpuMon working, so I can play around with ideas like buffering video writes so the CPU can run at 2MHz. That's further away though :)
SW/EE from New Zealand, now in Mountain View, CA, making BBC/Electron hardware projects for fun.
Most popular: fast serial port, FX2+PiTubeDirect Tube/Cartridge adapter, USB cart interface.

User avatar
myelin
Posts: 430
Joined: Tue Apr 26, 2016 9:17 pm
Location: San Francisco, CA, USA
Contact:

Re: Electron 6502 desolder / socket pics

Post by myelin » Tue Nov 21, 2017 8:27 am

More pics to come once I get a good one of the whole setup in daylight, but here's a start:
2017-11-installed-in-electron.jpeg
This is my expansion board that buffers everything from the CPU socket out for 3.3V daughterboards. It's working very nicely right now with one big chunky board sitting on top, with a Xilinx XC6SLX25 dev board (miniSpartan6+) and a Raspberry Pi Zero on top of that. Possibly the first CPU socket interface for PiTubeDirect?
SW/EE from New Zealand, now in Mountain View, CA, making BBC/Electron hardware projects for fun.
Most popular: fast serial port, FX2+PiTubeDirect Tube/Cartridge adapter, USB cart interface.

dominicbeesley
Posts: 588
Joined: Tue Apr 30, 2013 11:16 am
Contact:

Re: Electron 6502 desolder / socket pics

Post by dominicbeesley » Tue Nov 21, 2017 1:59 pm

Oooh! Another one! I've just started using the xeropage de0nano/fpag adaptor. And have started thinking about another similar idea! Will you be selling them?

D

dominicbeesley
Posts: 588
Joined: Tue Apr 30, 2013 11:16 am
Contact:

Re: Electron 6502 desolder / socket pics

Post by dominicbeesley » Tue Nov 21, 2017 2:02 pm

And is there a way to "take over" the cpu signals i.e. RnW, A, D for DMA?

User avatar
myelin
Posts: 430
Joined: Tue Apr 26, 2016 9:17 pm
Location: San Francisco, CA, USA
Contact:

Re: Electron 6502 desolder / socket pics

Post by myelin » Tue Nov 21, 2017 5:37 pm

dominicbeesley wrote:And is there a way to "take over" the cpu signals i.e. RnW, A, D for DMA?
No plans to sell them, but if you’re happy to solder one up yourself, I can send you a PCB!

I added in the ability to separate A15:13 from the CPU, so you can implement shadow ram by removing the OS ROM and driving A15:13 to 110 (&C000-DFFF) on the motherboard, which frees up the bus. It wires RnW, D, and the rest of A straight to the motherboard though, so you’ll have to use a soft CPU in an FPGA, or have the CPU on a daughter board, to do DMA.

I couldn’t decide exactly how I wanted all the control signals wired up, so I put a CPLD in there to deal with all that, which means you can do whatever you like with RnW, SYNC etc, with the caveat that the socketed CPU sees what the motherboard sees, with the exception of A15:13.
SW/EE from New Zealand, now in Mountain View, CA, making BBC/Electron hardware projects for fun.
Most popular: fast serial port, FX2+PiTubeDirect Tube/Cartridge adapter, USB cart interface.

User avatar
myelin
Posts: 430
Joined: Tue Apr 26, 2016 9:17 pm
Location: San Francisco, CA, USA
Contact:

Re: Electron 6502 desolder / socket pics

Post by myelin » Tue Nov 21, 2017 6:20 pm

That is... you have full control (within the limits of the CPLD... so if you want to push a 16MHz clock out through the /NMI pin, you could do that), over everything except A12:0 and D7:0. The A and D pins are wired to 74LVC245 buffers, and you have control of the /OE and DIR pins, so you can put a soft CPU on the board that plugs into the expansion connector and have that drive the bus if you like.

Here's a pic of it with an attached FPGA and Pi -- talking to the micro SD card using MMFS, and with the Pi running PiTubeDirect:
2017-11-minispartan_and_pi_on_cpu_board.jpg
SW/EE from New Zealand, now in Mountain View, CA, making BBC/Electron hardware projects for fun.
Most popular: fast serial port, FX2+PiTubeDirect Tube/Cartridge adapter, USB cart interface.

User avatar
daveejhitchins
Posts: 4264
Joined: Wed Jun 13, 2012 5:23 pm
Location: Newton Aycliffe, County Durham
Contact:

Re: Electron 6502 desolder / socket pics

Post by daveejhitchins » Tue Nov 21, 2017 7:16 pm

OK . . . Now let's see a photo with the keyboard in place =D> :lol:

Dave H :D
Parts: UM6502CE, GAL22V10D, GAL16V8D, AS6C62256A, TC514400AZ, WD1772, R6522, TMS27C512, AT28C256
Products: ARA II, ABR, ATI, AP6, MGC, AP5 . . .
For a price list, contact me at: Retro Hardware AT dave ej hitchins DOT plus DOT com

User avatar
myelin
Posts: 430
Joined: Tue Apr 26, 2016 9:17 pm
Location: San Francisco, CA, USA
Contact:

Re: Electron 6502 desolder / socket pics

Post by myelin » Tue Nov 21, 2017 8:13 pm

daveejhitchins wrote:OK . . . Now let's see a photo with the keyboard in place =D> :lol:
Hah! It won't even close with the *single* riser board (two photos up; the one with the CPU on it). I was hoping to be able to make a board that would give me all this stuff (shadow RAM, internal SD, Tube) without running into the keyboard PCB, but getting the Pi in there is going to be challenging, and I'm going to have to get rid of the high-rise programming connectors :)
SW/EE from New Zealand, now in Mountain View, CA, making BBC/Electron hardware projects for fun.
Most popular: fast serial port, FX2+PiTubeDirect Tube/Cartridge adapter, USB cart interface.

JonC
Posts: 654
Joined: Wed May 14, 2014 9:19 pm
Location: Wakefield
Contact:

Re: Electron 6502 desolder / socket pics

Post by JonC » Tue Nov 21, 2017 9:11 pm

When I was much much younger, I wrote to Slogger to suggest that they take the Electron mainboard out of it's case and give it a bigger one (a bit like the master compact), leaving the Keyboard where it was.

Maybe someone could do this as their next project giving you highrise options for your CPU boards. :lol:
Jon
Image

User avatar
myelin
Posts: 430
Joined: Tue Apr 26, 2016 9:17 pm
Location: San Francisco, CA, USA
Contact:

Re: Electron 6502 desolder / socket pics

Post by myelin » Tue Nov 21, 2017 9:41 pm

JonC wrote:Maybe someone could do this as their next project giving you highrise options for your CPU boards. :lol:
Could work! My keyboard extender cable (the rainbow coloured ribbon visible in the pic) has effectively split my Elk into a two box solution, and with a bit of 3D printing it could be made that way permanently :)
SW/EE from New Zealand, now in Mountain View, CA, making BBC/Electron hardware projects for fun.
Most popular: fast serial port, FX2+PiTubeDirect Tube/Cartridge adapter, USB cart interface.

User avatar
myelin
Posts: 430
Joined: Tue Apr 26, 2016 9:17 pm
Location: San Francisco, CA, USA
Contact:

Electron + 10M04 (Max 10 FPGA) in CPU socket

Post by myelin » Mon Jan 29, 2018 1:46 am

I've been hacking on this one for a while without any reports, so here's my current setup, with one of my "bga in two layers" boards plugged in to the CPU socket board.
2018-01-28 elk_with_10m04 sm.jpeg
It's super flaky right now (any time I try to add any logic that drives the bus results in weird crashes), but I'm getting closer to having it work -- I've got it to sample the address bus on the rising edge of PHI2 and data bus on the falling edge, and have implemented a little UART output that traces the address and data bus, and what I've checked so far seems to be working correctly, so at least it appears to be *reading* the buses properly.
SW/EE from New Zealand, now in Mountain View, CA, making BBC/Electron hardware projects for fun.
Most popular: fast serial port, FX2+PiTubeDirect Tube/Cartridge adapter, USB cart interface.

dominicbeesley
Posts: 588
Joined: Tue Apr 30, 2013 11:16 am
Contact:

Re: Electron 6502 desolder / socket pics

Post by dominicbeesley » Mon Jan 29, 2018 9:45 am

Have you more details of what this is and what it's trying to do....

I nearly got my machxo CPU working last night on a model b. It seems to be running ok but nothing on screen... I need to strip down and check I've not broken the machine when I accidentally left it running with no clock for an hour

User avatar
myelin
Posts: 430
Joined: Tue Apr 26, 2016 9:17 pm
Location: San Francisco, CA, USA
Contact:

Re: Electron 6502 desolder / socket pics

Post by myelin » Mon Jan 29, 2018 10:42 pm

I'm not exactly sure where I'm going with this one. It started after talking to crj about his project plans, which inspired me to check out the Max 10 line, and see if I was up to designing a board for a BGA chip, and whether one could run properly with only two layers (i.e. not much in the way of a ground plane). I designed a board (linked in the last post) which takes a 10M08SCU169, brings out a bunch of IOs in all directions, and matches the pinout on my cpu_socket_extension and rom_socket_level_shifter boards, to play around with, and now I'm trying to bring it up.

My first attempt soldering it involved tinning all the pads, drenching the whole thing in flux, and reflowing it on a hot plate. It mostly worked; I made some VHDL that output a square wave at ~1Hz on every pin, and checked every pad with a multimeter. All but 6 of them appeared to be working, so I edited my VHDL to just output 'Z' on all the bad pins (in case they were shorted to something) and soldered a jumper to fix the one bad pin on the cpu_socket_extension pinout, then tried wiring it up to my Electron.

Trying to run the same code that worked fine on the miniSpartan board (pictured earlier in this thread -- the big stack of boards) resulted in lots of crashing. I'm not sure exactly what was wrong there, so I'm just poking at it and seeing what I can debug. I have it waiting for an access to &FCxx, then sampling the address and data bus values into a 24-bit fifo on the falling edge of PHI2, then outputting that through a UART. My current bug is that the fifo is 1024 words deep and appears to fill all the way up, but I only get 560 x 3 bytes out from the UART. I suspect either I'm sometimes double-acking words from the fifo, or my writes to the uart are getting lost. The data that does come out looks correct though; I see a bunch of accesses to the ROM that match a startup trace I got using the fx2 board, although it looks like it's skipping every second clock (which matches

This is my first attempt to make something more complex for an FPGA than an emulated ROM, and also the first time I've used a clock faster than 2MHz (I'm using the Max 10's internal oscillator, which appears to be running at 82MHz), so it's kind of a crash course in synchronous design and doing things the right way rather than hacking the hell out of it to make it fit in a tiny CPLD :)

I guess what I'm hoping to prototype here is my ultimate internal Electron expansion -- a board that plugs into the CPU socket and provides a soft CPU, a second processor and/or a PiTubeDirect interface, sideways RAM, flash, a couple of micro SD sockets, and a USB serial port. Maybe my idea to run the CPU at 2MHz even when it's writing to screen memory, by buffering screen accesses until the ULA is ready to accept them. But first things first... right now I'm just trying to get the Max 10 to run reliably, and hopefully produce some code that'll help others bring up their Max 10 projects!

In parallel, I ordered a stencil so I can try reflowing a second board with solder paste, which might give better results than my hacky first attempt. It arrived a week or so ago but I haven't had a chance to actually do it yet.
SW/EE from New Zealand, now in Mountain View, CA, making BBC/Electron hardware projects for fun.
Most popular: fast serial port, FX2+PiTubeDirect Tube/Cartridge adapter, USB cart interface.

Budgie
Posts: 79
Joined: Mon Nov 02, 2015 9:14 pm
Location: Manchester, UK
Contact:

Re: Electron 6502 desolder / socket pics

Post by Budgie » Tue Jan 30, 2018 12:00 am

Have you seen these boards ? May not give you enough GPIOs and creating your own BGA board sounds great but just thought I’d post this just in case you may find it useful. The MAX10s are an interesting FPGA with instant on functionality etc. I’ve got one of these boards but not done anything with it yet.

https://shop.trenz-electronic.de/en/Pro ... tel-MAX10/


Andy

User avatar
myelin
Posts: 430
Joined: Tue Apr 26, 2016 9:17 pm
Location: San Francisco, CA, USA
Contact:

Re: Electron 6502 desolder / socket pics

Post by myelin » Tue Jan 30, 2018 1:22 am

Those look pretty nice. I considered buying a proper dev board to eliminate the possibility that my hardware is flaky, but decided that half the reason I'm doing these projects is to get better at hardware design and debugging, so I'm just going to do everything myself :) I wouldn't recommend going down my route unless getting debug practice is also your goal though!
SW/EE from New Zealand, now in Mountain View, CA, making BBC/Electron hardware projects for fun.
Most popular: fast serial port, FX2+PiTubeDirect Tube/Cartridge adapter, USB cart interface.

User avatar
hoglet
Posts: 7355
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Electron 6502 desolder / socket pics

Post by hoglet » Tue Jan 30, 2018 7:34 am

Following this with great interest. Well done taking on a BGA package!

User avatar
fordp
Posts: 958
Joined: Sun Feb 12, 2012 9:08 pm
Location: Kent, England
Contact:

Re: Electron 6502 desolder / socket pics

Post by fordp » Tue Jan 30, 2018 8:02 am

JonC wrote:When I was much much younger, I wrote to Slogger to suggest that they take the Electron mainboard out of it's case and give it a bigger one (a bit like the master compact), leaving the Keyboard where it was.

Maybe someone could do this as their next project giving you highrise options for your CPU boards. :lol:
I had the same idea recently to replace the Electron board with an FPGA based one.
FordP (Simon Ellwood)
Time is an illusion. Lunchtime, doubly so!

dominicbeesley
Posts: 588
Joined: Tue Apr 30, 2013 11:16 am
Contact:

Re: Electron 6502 desolder / socket pics

Post by dominicbeesley » Tue Jan 30, 2018 10:14 am

Sounds good,

Is the code for this on GitHub, I hooked up a 10M8 breakout board to the cpu board.

What I've done is hacked the CPLD on your CPU board a little to:
a) make phi1/phi2 using buffer delays for non-overlap
b) pass RnW/IRQ/NMI/etc from expansion back to cpu socket
c) put back cpu_is_external code (the version of the cpld code I had had the ext_GP5 select disabled)
d) added SYNC on ext_GP12 (used for Hoglet's debugger/decoder to help it sync up at boot)

I then setup a T65 core on the MachXO board and made a crossover cable. After a lot of false starts due to dodgy soldering I've got something that nearly boots, it usually gets as far as

Code: Select all

BBC Micro Computer 32K

<insert random error message or garbage here>
I suspect this is close but there will probably be a timing issue as I've not spent much time fine-tuning the relationships between the CPU clock, phi0, phi1, phi2, 2MHzE and this is a fully loaded machine...

All good fun!

D

crj
Posts: 834
Joined: Thu May 02, 2013 4:58 pm
Contact:

Re: Electron 6502 desolder / socket pics

Post by crj » Tue Jan 30, 2018 3:57 pm

JonC wrote:Maybe someone could do this as their next project giving you highrise options for your CPU boards. :lol:
Meanwhile, if my plan comes to fruition, you might be surprised what can be achieved without rising high...

User avatar
myelin
Posts: 430
Joined: Tue Apr 26, 2016 9:17 pm
Location: San Francisco, CA, USA
Contact:

Re: Electron 6502 desolder / socket pics

Post by myelin » Tue Jan 30, 2018 11:12 pm

I haven't put any of this on GitHub yet, but will see about doing so tonight!
SW/EE from New Zealand, now in Mountain View, CA, making BBC/Electron hardware projects for fun.
Most popular: fast serial port, FX2+PiTubeDirect Tube/Cartridge adapter, USB cart interface.

dominicbeesley
Posts: 588
Joined: Tue Apr 30, 2013 11:16 am
Contact:

Re: Electron 6502 desolder / socket pics + Max 10 FPGA in CPU socket

Post by dominicbeesley » Wed Jan 31, 2018 12:08 am

That would be great. I've got my attempt "nearly" working it will boot and get my mmc menu loaded but most games crash before they go far. I had to add an extra couple of ground leads from the machxo to the motherboard - The leads from the cpu board to the machxo are nearly 1 foot long (a ribbon cable then a load of duponts) which I suspect might be making it flaky!

Some more ground lines on the ext connector would have been nice but of course then either a larger (50 way? next common size up) connector would have been needed.

I suspect my timings are a bit suspect too, I've just noticed that the phi0 to phi2 lag is a bit higher than expected and that is causing the beebs memory buffer (IC14) to get disabled a bit before phi2 finishes so that might help....

Have you got any pics of your BGA board?
Was there a reason to pick the BGA version of the MachXO?

D

User avatar
myelin
Posts: 430
Joined: Tue Apr 26, 2016 9:17 pm
Location: San Francisco, CA, USA
Contact:

Re: Electron 6502 desolder / socket pics + Max 10 FPGA in CPU socket

Post by myelin » Wed Jan 31, 2018 12:31 am

Here's the board before I soldered most of the connectors. To connect to the cpu_socket_extension board, I added a female header along the right hand side of this one, and I added some male header pins to the top of the board, which I connected to all the ext_GP lines using dupont cables. So this should have fairly decent signal integrity on the data and address bus, and hopefully okay integrity on the ext_GP lines. I'm not doing any clock conditioning in the CPLD, but that would probably be a good idea. There's a header on the cpu_socket_extension board that you can wire up to the Elk's 16MHz clock line, but I haven't tried that, so my CPLD has no clock aside from PHI2.

Sorry about the lack of grounds on the ext connector... I only really intended it to be connected directly to another PCB, and didn't consider that it's the perfect size to have a ribbon cable plugged into it. If you don't need all the signals, you could always drive every other ext_GP line to ground on both ends, which wouldn't be perfect, but would at least provide a little shielding.

Here's the top. The two-pin headers up top are for power and ground, and the headers on the left are GPIO and JTAG:
2018-01-bga-IMG_6694_bga_top.JPG
Zooming in on the bottom to make sure I had actually soldered some 0402 capacitors:
2018-01-bga-IMG_6696_bga_bottom.JPG
I picked the BGA version because it was cheaper, and also because I was curious as to whether I could successfully design and solder a 2-layer board with a BGA chip on it :)

Note that this is a 10M04 (Intel/Altera Max 10), not a Lattice MachXO. I'd like to try doing something with the MachXO2-7000, but haven't gotten to it yet. Another chip I'm curious about is the Lattice ECP5 FPGA, which has a $6.50 part with 12k LUTs, and only comes in BGA packages. It requires a split power supply and has no on board flash, but that's a LOT of fpga for the money. There's a version with 5GHz SERDES (HDMI, USB3, gigabit ethernet...) but that requires the $895 subscription version of Lattice Diamond.
SW/EE from New Zealand, now in Mountain View, CA, making BBC/Electron hardware projects for fun.
Most popular: fast serial port, FX2+PiTubeDirect Tube/Cartridge adapter, USB cart interface.

dominicbeesley
Posts: 588
Joined: Tue Apr 30, 2013 11:16 am
Contact:

Re: Electron 6502 desolder / socket pics + Max 10 FPGA in CPU socket

Post by dominicbeesley » Wed Jan 31, 2018 1:25 am

Sorry, I've been getting my part numbers mixed up, I've just received my Spartan 6 board (ordered from China months ago) a Max V board a EPM1270 board and a MachXO board...

Re grounds, I think a couple more would be good just to get a low-impedance connection to the daughter board. I'm now connected up with shorter leads (which made no difference).

I then tried a small tweak to the timing which made some things better and some things worse: I now have Galaxians, Chuckie Egg and Snapper more or less working (Snapper needs some help starting) but Shift-break has stopped working! I need to work out if this is clock timing on the Xilinx, duff soldering, noise, ground bounce, or maybe it's just the T65 core...

Re the clock conditioning, that is probably more important on a beeb, the Elk doesn't seem to do much with phi1. I think I'll try Hoglet's code from AtomBusMon tomorrow on the FPGA and feed phi1/2 back through on the so far unused EXT_GP8/EXT_GP2 pins to see if a known synchronous clock conditioner works. I gave up on my first attempt at cpu interfacing (65816) as it just wouldn't work reliably, that I suspect was due to the Beeb's rather fussy/noisy clocks

Anyway, I'm babbling now, I need some sleep

D

User avatar
myelin
Posts: 430
Joined: Tue Apr 26, 2016 9:17 pm
Location: San Francisco, CA, USA
Contact:

Re: Electron 6502 desolder / socket pics + Max 10 FPGA in CPU socket

Post by myelin » Wed Jan 31, 2018 5:59 pm

I eventually figured out what was going on last night, by hooking up the 6502decoder board and comparing its trace (with -d 1 to show data from every clock rather than just the decoded instructions) with what was coming out of the fifo in the FPGA.

It turns out that it's misreading the address bus. I changed a bunch of stuff there (tried synchronizing it on the rising PHI2 edge, then the falling edge, then tweaking various other things) but it looks like it's just always getting bad data. My VHDL was responding to debug accesses to &FCFx, but sometimes would also respond to &ECFx and mangle data coming from the OS ROM.

I'm seeing some really messy stuff coming in, and suspect that maybe my soldering on the address pins is worse than I thought -- maybe there are some shorts under the chip. Alternatively it could just be that my decoupling is terrible, but I'm barely using any of the chip (something like 100 LUTs out of 4000) and enough of the rest of the system is working fine, so I suspect it's those pins (because most of the soldering errors happened near the bad bits). I have a second board and now have a paste stencil, so I'm going to try building that one up a little more carefully than the first one, and see if it's more reliable.
SW/EE from New Zealand, now in Mountain View, CA, making BBC/Electron hardware projects for fun.
Most popular: fast serial port, FX2+PiTubeDirect Tube/Cartridge adapter, USB cart interface.

dominicbeesley
Posts: 588
Joined: Tue Apr 30, 2013 11:16 am
Contact:

Re: Electron 6502 desolder / socket pics + Max 10 FPGA in CPU socket

Post by dominicbeesley » Wed Jan 31, 2018 6:30 pm

It might be worth bunging on a load more caps if you can and then adding an earth strap...a short length of solder braid from one ground to another. You're not using a lot but FPGAs switch very fast and so can induce a lot of ground bounce. It might be also worth trying reducing the pin drive and slew rates that can also help?

I'm still getting differences on my setup, I'm not sure if it is my vhdl, the cpu board, my soldering or a timing issue. I'm going to try generating the phi1 and phi2 signals synchronously to the 48M oscillator on the chip if I get time between domestic chores and sneezing!

D

User avatar
hoglet
Posts: 7355
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Electron 6502 desolder / socket pics + Max 10 FPGA in CPU socket

Post by hoglet » Wed Jan 31, 2018 7:01 pm

dominicbeesley wrote:It might be worth bunging on a load more caps if you can and then adding an earth strap...a short length of solder braid from one ground to another. You're not using a lot but FPGAs switch very fast and so can induce a lot of ground bounce. It might be also worth trying reducing the pin drive and slew rates that can also help?
I completely agree with this, having been burnt lots of times.

As a matter of course I now reduce the drive and slew rate to just what is needed and no more.

Dave

User avatar
myelin
Posts: 430
Joined: Tue Apr 26, 2016 9:17 pm
Location: San Francisco, CA, USA
Contact:

Re: Electron 6502 desolder / socket pics + Max 10 FPGA in CPU socket

Post by myelin » Wed Jan 31, 2018 10:44 pm

It looks like the problems were entirely due to my shoddy assembly on the first board. I soldered up another one, very carefully applying solder paste using the stencil and then reflowing the new chip on the hot plate I've used for a bunch of reflow projects in the past (the one in this video), and it works just fine. The debug register reads and writes correctly, and when I configure it to output a trace of all the bus transactions after a reset, it now matches the 6502decoder output.

The twist here is that I forgot to add any decoupling capacitors at all... I'm waiting for this to get really unstable, but I'm not seeing anything yet. I think I'll wait until something really weird happens before adding any, because I'm curious how far I can push it.

I wonder if public test suites exist for FPGAs, to tell you how well they're performing. I can think of some trivial things that would stress them out a bit, like making a giant shift register that snakes its way all around the entire chip and feeds back into itself, filling it with alternating ones and zeroes, and clocking it as fast as possible for a while. That would result in plenty of simultaneous switching, even if it wouldn't test the LUTs or the flash that much.
SW/EE from New Zealand, now in Mountain View, CA, making BBC/Electron hardware projects for fun.
Most popular: fast serial port, FX2+PiTubeDirect Tube/Cartridge adapter, USB cart interface.

dominicbeesley
Posts: 588
Joined: Tue Apr 30, 2013 11:16 am
Contact:

Re: Electron 6502 desolder / socket pics + Max 10 FPGA in CPU socket

Post by dominicbeesley » Wed Jan 31, 2018 10:49 pm

I'm glad you got it working! Are you running this alongside a real 6502 or does the BGA board contain a 6502 soft-core?

On my side, for once I've taken my own advice and it's worked.

I reduced all the slew rates on the lattice board to SLOW and the drives to 4ma/LVTTL - that effected an immediate improvement, I could get into more games. Elite got as far as the spinning ship at the start but with occasional glitches.

Soldering a better earth strap from ground plane to ground plane has improved matters to the point where I can now fly around in Elite. Hyperspace still doesn't work (I get a "Not Found" error but I'm not convinced that is not the T65 core/illegal opcodes thing).

Grounding and decoupling are a necessary pain in the whatsit

D

Post Reply