VIC-20 flash memory expansion
Moderator: Moderators
-
- Vic 20 Dabbler
- Posts: 78
- Joined: Mon Nov 18, 2013 1:06 pm
- Location: Finland
- Occupation: Game developer
VIC-20 flash memory expansion
Hi there! I'm planning to build a device for the expansion port which should allow fast cross-platform development and I'm looking for comments on the feasibility of the project and also on any glaring errors in the design
The cartridge should have the following features:
- vic-20 can see the flash as read only memory
- vic-20 can autoboot from the flash
- a microcontroller is used to write to the flash, the microcontroller is connected to PC/Mac through serial
- the memory can be flashed while the vic-20 is powered on
Please see the attached conceptual diagram. The flash and MCU are connected to the same address and data busses. There are two modes of operation:
1) the MCU is inactive and vic-20 can access the flash memory; the 74HCT245 transceivers are enabled. MCU I/O pins are connected to address and data busses but they are in high impedance input mode.
2) the MCU is active and uploads new data to flash. The 74HCT245 transceivers are disabled (by setting inv. OE lines high) so the vic can not access the memory and the bus between MCU and flash is disconnected from the vic.
Can you see any problems with this design? Any ideas how to make it simpler?
Another idea I've been thinking is to hold the vic-20 in reset while the flash is updated. Would the 74HCT245 chips be needed in this case? Is it safe to use the bus while the computer is in reset?
I want to get this right because I don't have any extra vics to burn down
The cartridge should have the following features:
- vic-20 can see the flash as read only memory
- vic-20 can autoboot from the flash
- a microcontroller is used to write to the flash, the microcontroller is connected to PC/Mac through serial
- the memory can be flashed while the vic-20 is powered on
Please see the attached conceptual diagram. The flash and MCU are connected to the same address and data busses. There are two modes of operation:
1) the MCU is inactive and vic-20 can access the flash memory; the 74HCT245 transceivers are enabled. MCU I/O pins are connected to address and data busses but they are in high impedance input mode.
2) the MCU is active and uploads new data to flash. The 74HCT245 transceivers are disabled (by setting inv. OE lines high) so the vic can not access the memory and the bus between MCU and flash is disconnected from the vic.
Can you see any problems with this design? Any ideas how to make it simpler?
Another idea I've been thinking is to hold the vic-20 in reset while the flash is updated. Would the 74HCT245 chips be needed in this case? Is it safe to use the bus while the computer is in reset?
I want to get this right because I don't have any extra vics to burn down
- Attachments
-
- block_diagram.png (26.78 KiB) Viewed 2138 times
Re: VIC-20 flash memory expansion
Hi
Well it is a fairly straight forward design and concept. USB on the host side?
Pulling the reset seams a good idea anyway, however The 6502 can't tristate the address bus so you need the buffers.
Well it is a fairly straight forward design and concept. USB on the host side?
Pulling the reset seams a good idea anyway, however The 6502 can't tristate the address bus so you need the buffers.
BR
Thomas Lövskog
Thomas Lövskog
-
- Vic 20 Dabbler
- Posts: 78
- Joined: Mon Nov 18, 2013 1:06 pm
- Location: Finland
- Occupation: Game developer
Re: VIC-20 flash memory expansion
Yeah, I suspected that the bus is not in high impedance state even in reset. Thanks for the confirmation!
Yes, the plan is to use USB->serial converter between MCU and host PC. I hope to get some free time during the christmas holidays to work on this. I'll post results here.
Yes, the plan is to use USB->serial converter between MCU and host PC. I hope to get some free time during the christmas holidays to work on this. I'll post results here.
-
- Vic 20 Dabbler
- Posts: 78
- Joined: Mon Nov 18, 2013 1:06 pm
- Location: Finland
- Occupation: Game developer
Re: VIC-20 flash memory expansion
I finally had some time to work on this. I built this on a breadboard and it works! Next I'm going to etch a PCB. Then I'm ready to start coding something for the VIC
Full write up with schematics and photos in my blog:
http://petenpaja.blogspot.fi/2014/01/vi ... rt-12.html
[youtube]HjBKyWvgfRQ[/youtube]
Full write up with schematics and photos in my blog:
http://petenpaja.blogspot.fi/2014/01/vi ... rt-12.html
[youtube]HjBKyWvgfRQ[/youtube]
Re: VIC-20 flash memory expansion
Looks promising.
-
- Vic 20 Drifter
- Posts: 37
- Joined: Sun May 23, 2004 10:23 pm
- Website: http://www.jagmod.com
- Location: Texas
- joshuadenmark
- Big Mover
- Posts: 1217
- Joined: Sat Oct 23, 2010 11:32 am
- Location: Fr-Havn, Denmark
- Occupation: Service engineer
Re: VIC-20 flash memory expansion
This looks very promising
Like that, keep up the good work.
Like that, keep up the good work.
Kind regards, Peter.
____________________________________________________
In need of a wiki logon - PM me
____________________________________________________
In need of a wiki logon - PM me
-
- Vic 20 Dabbler
- Posts: 78
- Joined: Mon Nov 18, 2013 1:06 pm
- Location: Finland
- Occupation: Game developer
Re: VIC-20 flash memory expansion
Thanks guys! I'm trying to find time to design the PCB with Eagle. I've never done a two-sided pcb before. Any ideas how to align masks for uv exposure? Maybe drilling a few holes to align a few pads in the corners of the pcb is enough?
I would like to fit everything inside a standard cartridge box. It's going to be real tight... I would also like to fit in some extra ram...
I would like to fit everything inside a standard cartridge box. It's going to be real tight... I would also like to fit in some extra ram...
- joshuadenmark
- Big Mover
- Posts: 1217
- Joined: Sat Oct 23, 2010 11:32 am
- Location: Fr-Havn, Denmark
- Occupation: Service engineer
Re: VIC-20 flash memory expansion
Could you allign the films and staple one edge together and put the pcb in between?phvic wrote:Thanks guys! I'm trying to find time to design the PCB with Eagle. I've never done a two-sided pcb before. Any ideas how to align masks for uv exposure? Maybe drilling a few holes to align a few pads in the corners of the pcb is enough?
I would like to fit everything inside a standard cartridge box. It's going to be real tight... I would also like to fit in some extra ram...
Kind regards, Peter.
____________________________________________________
In need of a wiki logon - PM me
____________________________________________________
In need of a wiki logon - PM me
-
- Vic 20 Dabbler
- Posts: 78
- Joined: Mon Nov 18, 2013 1:06 pm
- Location: Finland
- Occupation: Game developer
Re: VIC-20 flash memory expansion
Good idea, I'll try that!joshuadenmark wrote:Could you allign the films and staple one edge together and put the pcb in between?
Heh, my project got featured in Hack A Day
http://hackaday.com/2014/01/27/flash-ga ... he-vic-20/
- joshuadenmark
- Big Mover
- Posts: 1217
- Joined: Sat Oct 23, 2010 11:32 am
- Location: Fr-Havn, Denmark
- Occupation: Service engineer
Re: VIC-20 flash memory expansion
Perhaps you could this service for the pcb production, looks cheap?
http://www.futurlec.com/PCBService.shtml
http://www.futurlec.com/PCBService.shtml
Kind regards, Peter.
____________________________________________________
In need of a wiki logon - PM me
____________________________________________________
In need of a wiki logon - PM me
Re: VIC-20 flash memory expansion
Just a thought, but consider modifying the Data lines to allow writing (and OE/WE support), so you can move data back to the PC (make changes, and then the controller can push data back to the PC.)
Jim
Jim
Re: VIC-20 flash memory expansion
Unless you really want to, there is nowadays no point in manufacture the PCB yourself. Use any of the gazillion prototype manufacturers that are around. Cheap, fast and plated through.
http://oshpark.com/ is one example which I have used. The accept eagle files directly also.
http://oshpark.com/ is one example which I have used. The accept eagle files directly also.
BR
Thomas Lövskog
Thomas Lövskog
Re: VIC-20 flash memory expansion
True. There is batchpcb, for truly cheap (but not fast) orders.TLovskog wrote:Unless you really want to, there is nowadays no point in manufacture the PCB yourself. Use any of the gazillion prototype manufacturers that are around. Cheap, fast and plated through.
http://oshpark.com/ is one example which I have used. The accept eagle files directly also.
I use ourpcb.com/eastpcb.com, and Bright Circuits.
I'm happy to help with an order, if needed.
JIm