Sorted by Squirrels.

Thursday, 20 June 2013

Loading Einstein programs from SD card

Finally it's working!

http://www.youtube.com/watch?v=VA3agKxpm8k

There are still a few issues around some of the timing for handshaking, but I'll apply the logic analyser once I've found a reproducible test case.

Thursday, 13 June 2013

What did _you_ do in your lunch-hour?

As per the previous post - they were out of raspberry and white chocolate muffins, so...

It's amazing what a coat of paint does for a prototype board! This is the result of a careful spraying of Plastikote 'Creme de la creme' - AKA 'Retrocomputer white'. Ignore the bloom in the picture - that's just an artifact of whatever additional compression has been applied to the JPEG. In the flesh, as it were, the board is a gleaming off-white.


And here's the solder side. I can't wait to get stuffing.


If you click to embiggen then you may see the teeny tiny capacitors - 0402s. They'll be the teeniest thing I've ever used.

I treated myself to a fresh etching solution today as I was short of time. This board went from printer to camera in just under an hour. It would have been about half that if there wasn't a 60 way IDC connector and 44 pin CPLD socket on there :D

At least I didn't drill any body parts today.

If you haven't been following (shame on you!) then you have been looking at the second prototype of einSDein - an SD card interface for Tatung Einstein computers.

Today I wrote data from my Einstein to the PIC controller.



The PIC controller is announcing the title, and a small test program on the Einy is writing the ubiquitous string, where it is received and displayed by the PIC.


.module fnMessageToHostW
fnMessageToHostW:
   ld    hl,message-1
   jr    _endtest

_send:
   call  waitByteTaken
   jp    c,reportTimeout
   out   (WRITE),a
   ld    e,a
   push  hl
   DOSCALL(CPM_FUNC_CONSOLE_OUT)
   pop   hl
_endtest:
   inc   hl
   ld    a,(hl)
   and   a
   jr    nz,_send

   ret
.endmodule


The hardware has changed a little since my first stab after finding out to my horror that unless I upgraded the processor to a totally over-the-top type then I wasn't going to be able to use hardware SPI and the parallel master port at the same time. Disaster. Of course I could have used software SPI - like I did in the Acorn Atom version of this board - but that would have been too easy. Instead I chose to stand on the shoulders of a giant and implement the parallel port in the CPLD. My friend Phill had done this for the Dragon and so I've lifted a good portion of his design. Thanks Phill! 

Phill's design has several advantages over the built-in hardware of the PIC. 

1. It's processor agnostic so this design could be used with AVR, ARM, or whatever other chip you have handy.

B. Unlike the PIC the host computer can query the state of the buffers making for a slight increase in speed when polling long operations.

It hasn't been easy, I've spent a couple of days crying into my milk because it wasn't working and I just didn't know why. I added LEDs to make myself feel better. I stripped the implementation back to literally nothing and started again a couple of times. I stared at the code for Einy, PIC and CPLD until I realised my stupid mistake. One part of the design used active low logic, and the other was active high. With that sorted we appear to have lift-off!

Here's some glamour shots. Firstly - the thing in action!


To the left is the Xilinx programmer, to the right is Pickit3. Centre stage is the serial lead, an FTDITTL232. Bet you're really pleased I told you that.


And here she lies, disconnected. Do you like the wiring mess? :D This should sort it out:

Miraculously I've managed to fit this on a single layer which should make things a touch easier.



Next step will be to add the SD card handling to the PIC code. Or making the new board. Or a raspberry and white chocolate muffin. Decisions, decisions.

This is how we do it

MMC (9) acorn atom (7) zx81 (7) arduino (5) Atari 800 (3) c128 (3) sd card (3) sd2iec (3) sio2sd (3) tatung einstein (3) 6502 (2) Chuckie egg (2) M5 (2) Max6956 (2) QL (2) RCM (2) Sord (2) assembler (2) avr (2) c64 (2) cadsoft eagle (2) eeprom (2) einSDein (2) mmbeeb (2) multi-cart (2) spi (2) system 80 (2) ufat2 (2) vic20 (2) video genie (2) 6502 second processor (1) 6522 (1) 8255 (1) Acorn BBC Micro (1) Apple 2e (1) Apple ][ 2 two (1) BBC 6502 second processor (1) BBC micro (1) DevicePrint (1) Double Choc Chip Muffins (1) FAT (1) IO (1) Jupiter Ace (1) LED (1) Master 128 (1) PCB (1) PIC (1) POV (1) PROGMEM (1) ST (1) Spectrum 128 (1) antex (1) arcade spinner (1) arduino shield (1) atari (1) atmel (1) bakewell tart (1) beer (1) bird's nest (1) bitbucket (1) brokenated XC special (1) cake (1) cassette (1) cassette interface (1) compact flash (1) convert (1) dac (1) de-yellowing (1) eaca (1) efficient (1) einsdein. z80 (1) eye strain (1) failosophy (1) filesystem (1) finally (1) fram (1) french polishing (1) fuse (1) fuses (1) gaming (1) github (1) glue (1) google chrome (1) heroic failure (1) high voltage programming (1) hot irons (1) if (1) jiffydos (1) joey beltram (1) lego robot (1) library (1) lying (1) machine code (1) matron (1) microcode (1) mmc interface (1) mmc2iec (1) mmm (1) mouse guts (1) multicart (1) oscilloscopes (1) pcm (1) pic32mx (1) porn (1) proto shield (1) purple (1) repo (1) retro computer museum (1) retro hard-on (1) rom box (1) sd (1) sd2mmc (1) seadragon (1) silliness (1) small (1) software master (1) soldering (1) sord m5 (1) spi software master (1) stray capacitance (1) string (1) techadventure (1) test equipment porn (1) ts1000 (1) turtle cheesecake (1) tweaking (1) vc20 (1) video head (1) video ram replacement (1) weewee (1) wingasm (1) wire library (1) wodges of IO (1) xilinx cpld (1) yellowing (1) zx spectrum (1) zxpander (1)

About Sir Morris

My photo

Loves: Old computers, Old Techno, Old ladies. Cake.
Hates: New computers.

Unless otherwise stated all of the original work presented here is:

Creative Commons License
Licensed under a Creative Commons Attribution-Noncommercial 2.5 Generic License.

The work of others where referenced will be attributed appropriately. If I've failed to do this please let me know.