Yet Another 2-prop machine idea
pik33
Posts: 2,398
This is my first rough idea of 2-propellers machine:
VGA Mode bit: select from 8-bit (Demoboard compatible) or 10 bit (256 colors VGA with sync on 24,25)
I am still beginner. So I am asking if there is something wrong with this idea. If not, I will start to make it
Before I start, I want to do some experiments with 4 pieces of 23k256. They were ordered two days ago and should arrive today.
P1: vga and LMM VM
P2: all other peripherals/human input
P2 boots from eeprom, then loads an OS kernel from flash SD card
Then it sets Resn of P1 to high and transfers OS to P1
P1 starts to work in LMM mode
16 pieces of 23k256 should provide a fast external RAM.
VGA Mode bit: select from 8-bit (Demoboard compatible) or 10 bit (256 colors VGA with sync on 24,25)
I am still beginner. So I am asking if there is something wrong with this idea. If not, I will start to make it
Before I start, I want to do some experiments with 4 pieces of 23k256. They were ordered two days ago and should arrive today.
P1: vga and LMM VM
P2: all other peripherals/human input
P2 boots from eeprom, then loads an OS kernel from flash SD card
Then it sets Resn of P1 to high and transfers OS to P1
P1 starts to work in LMM mode
16 pieces of 23k256 should provide a fast external RAM.
Comments
The first prop can be used to emulate rom for the second prop, so you might not need extra eeproms, if your use the SD option.
Just some options...
You don't have to skip FAT support. Propeller GCC allows both with SDXMMC programs. SDXMMC programs can be huge, but data is limited to HUB size minus cache minus stack size. However, SDXMMC is slower than other solutions such as SPI-FLASH or others with Propeller because of the limited cache memory and the need to read a whole 512KB block which means only 16 cache lines. SPI-Flash is faster because it can have any cache geometry.
@pik33 (nice name - first initials ds? ).
It would be just as fast to use 2 banks of 8x SPI-SRAM with separate chip selects for the banks (using IPSiLog parts would give 1MB).
The reason is in the way we can move bytes from outside to inside Propeller HUB ram.
With a separate cache COG it is possible to achieve 5MB/s burst at 80MHz after address setup.
So an 11 pin interface (1 CLK, 2 CS, 8 data) is good and would allow you to add things like SDCard on the main Propeller which is a big + in my opinion.
A 10 pin VGA is new territory. Maybe it can be done and I wish you the best with it. Propeller's video counters are very flexible.
Thanks,
--Steve
I don't disagree, I'm just pointing out that there is method that trades FAT support for speed. The "memory SD" become "internal" to the system but is very little cost. Of course you can still have another SD that supports FAT and is removable, and trades speed for FAT. My wife is on a diet, so I'm very FAT conscious these days.
Maybe, when use 16 bits, it will be possible to make a video buffer from these 32k256. Fast read 160 words, then put them via video hardware to vga. Still have to learn. I received 4 23k256 chips some hours ago, so I will try them with a demo board, to learn how it works and what can be done with them.
Adventurous Maybe 16 bits is possible. I don't see 2 pins for CLK/CS on your drawing though - you'll need 18 pins.
How long do you have to set up the SPI SRAM address? Seems like you'll need about 4us for address phase with 64+ instructions and special clocks.
SPI address set - yes, it takes some some microseconds, 24 bits to transmit, 1.2 microsecond absolute minimum, but it can be done once, then a lot of bytes can be read.
When I get some time to play with these chips, I will connect these 23k256 to the demo board and try, what I can do with them.
EDIT: I read datasheet... will need hold signal, too, to do what I want... it seems it can be done. Two pins more for 23k256 interface, so 19 pins needed for this idea... 19 pins sram, 10 pins vga, only 3 pins left for communication Still this propeller can be booted from second one via serial connection, so this idea still can be done
VGA mode switch (prop std 6bit+2 bit sync/8bit color+2bit external sync driven by another cog's counters) can be driven from second propeller.
what features of an RTC do you need?
Can't a RTC on spare COG be enough? There already are objects available.
Massimo
The options I tested so far are:
counters, a free pin a no extra cog (even if a free pin looks difficult to find)
seconds counting in a separate COG, not necessarily a dedicated one. After all seconds counting is not a great effort, so you have a lot of free time. For instance I placed it with button debouncing.
probably there are better options, check also the obex.