A 65C02 "SmartDust" unit for the Vic-20

Modding and Technical Issues

Moderator: Moderators

Post Reply
Kakemoms
Vic 20 Nerd
Posts: 740
Joined: Sun Feb 15, 2015 8:45 am

A 65C02 "SmartDust" unit for the Vic-20

Post by Kakemoms »

Short update on my 8-bit 65C02 expansion for the Vic-20:


- The 65C02 CPU sits on a 4x4cm removable PCB and is supported by a small battery & solar cell so that it can run independently of the Vic-20. I call this small PCB board the "VicDust". The VicDust can be taken off the expansion board and replaced with another VicDust unit. It can be put to a number of uses when its not connected to the Vic-20. Once programmed, it can run until the power runs out. If programmed intelligently it can run forever.

- The VicDust has an interface that I have connected to a small Bluetooth board. It can be accessed through the 65C22 for short-range communications. I am planning an App for simplistic steering of the VicDust once it has some program to run.

- Programmable clock is driven by the 65C22, so it can be changed on-the-fly. Both 65C22 and programmable clock sits on the VicDust and the 65C22 is available through an interface for adding other things to the VicDust. Overclocking is possible, only limited by the 65Cxx components, but for reduced power consumption you may want to underclock it instead.


I originally though this as an experiment to make a small unit based on the idea of "SmartDust" from a science fiction novel. It is not the-end-of-the-world kind of grey goo, but an small, simple, power-less sensor that can "see" its surroundings without being too invasive. It means that you won't get photographs from it, but some crude optical data that can be used to do some simple analysis. One of my first projects for this will be to use it in my refrigerator to get an idea of the amount of beer in the fridge. :mrgreen: Maybe you have some other ideas.

An earlier version of the VicDust (65C22 not mounted):
IMG_4709.png
IMG_4709.png (65.11 KiB) Viewed 1132 times
Kakemoms
Vic 20 Nerd
Posts: 740
Joined: Sun Feb 15, 2015 8:45 am

Re: A 65C02 "SmartDust" unit for the Vic-20

Post by Kakemoms »

Just a short update on what I am doing with the 6502 expansion for my Vic-20:

Basically I have a 65C02 expansion running at 1.1MHz along the 6502 of the internal Vic-20. I haven't tested the programmable clock, but I intend to do that with normal bitbanging from a 65C22. Target speed is 14MHz for the 65C02 (which is the rating). Any overclocking may or may not work.

The unit does not run multiplexed at this time, so you have to keep the 6502 running with internal memory only once the 65C02 kicks in. That is not very problematic as the 6502 can stop the 65C02 (or it can stop itself) if one needs to access the external paged memory from the Vic-20 side.

Memory paging is simply done by accessing $FFEx from the 65C02 side or $CFEx from the 6502 side. x is the page and currently I have 4-bit paging so 1MByte can be accessed. I am not happy with this way of paging as it requires 4 memory cycles to change the page. I have therefore looked into 1-cycle paging using $x3 opcodes which I will implement in the next version of VicDust.

I am also unhappy with the non-multiplexing behavior of the unit, so I have started programming a Lattice MachXO3 CPLD to get better clock adjustment behavior and being able to clean up the CLK2 signal from the Vic-20 with a PLL. Currently it looks like this with a 100MHz base clock for generating other signals:
MachXO3-simulation.png
The 100MHz clock is generated from a 400MHz internal clock and thus any jitter is on the order of 2.5ns. All the logic is included into the CPLD as well, so its a huge simplification of the interface board. And it is very easy to debug in comparison to resoldering lots of logic ICs. :roll:

Edit:
Not really a big update, but I have gotten the voltage translation transceivers and soldered them onto some adapters to get an interface between the Vic-20 and a Lattice MACHXO3 breakboard. Since I am mostly using my time to build a P3Steel 3D printer, I haven't tested it, but in theory it should be able to get an Arlens (or other) 6502 core going in multiplexing mode with the Vic-20. I will also add some memory for it so that it can run separately. I am still planning to have space for a WDC 65C02 on the (final) board, but having the possibility to run a 6502-core at 75+Mhz is just too attractive to only use a small CPLD.. Keep looking for more news here.
Post Reply