(NEW) The Minimig-ITX
Date 16-Oct-2007 22:40:29
Topic: Hardware News
|Reported by Iowa Surfer.. Dead Moines, Iowa|
(( Lets Support him) & Minimig!
A engineer in Sweden has been taking the minmig and going to phase ][ with it
Original engineers website in Sweden..
Disclaimer: This project is based on Dennis van Weeren Minimig. The original design and the firmware for PIC and FPGA is his work. The Minimig is released under the GPL License and so are also my modifications.
The orignal Minimig is found at this web page: http://home.hetnet.nl/~weeren001/. At this page, you can find all the sources for the Minimig (I will only provide complied binaries that have been verified with my board).l
To use the Minimig (both my and Dennis version) requires a Amiga Kickstart ROM-file. This file is still a copyrighted piece of software, so I can't provide You with it. You need a actual Amiga to download it from (tools for it are avaiable in the WinUAE project) and put it on the MMC/SD-card.
With that said and done, time to get into the build itself. First of all, to understand the function of the Minimig itself, go to Dennis homepage and read through the description. My design uses the same core as the original Minimig, but I did change or add to the periferial parts. What I have done are as follows: Changed the board size to follow Mini-ITX standards, regarding both dimension (170 x 170 mm) and mounting hole positions. This was done to make the board usable in standard computer cases. Also, I got some more space for the rest I wanted to add.
Changed the power supply. The original Minimig relies on a external, well regulated 5 V source. That was the first that had to be integrated in the design. An internal, switched regulator allows the Minimig to run at almost any kind of PSU that could be found (from 8 to 40 V). A simple diode protection was also added to prevent damage due to wrong connected PSU plugs.
S-Video and Composite video outputs. This is almost mandatory to a system like this. By adding these two outputs, more kinds of TV's could be used with the Minimig. As a bonus, I also added buffers to the VGA output. Now, the FPGA doesn't have to drive the VGA-cable directly.
Buffered Audio. Basically to off-load the FPGA outputs when using long cables. The 3.5 mm headphone plug is also replaced by RCA-connectors (no odd cables needed when hooking up the Minimig to a HiFi-system or a TV-set).
A larger PIC to make the board funnier. This addition was not really needed, but I wanted to have the option to add an LCD. To simplify things, I just changed the PIC18LF252 to a PIC18LF452. By donig this, I could still use the original code by keeping the original pin assigment. I also added ICSP, but that ended up little bit odd in the first version. As an AVR-guy, I didn't realise that erasing a PIC requires 5 V... The solution will be a bootloader that allows programming of the firmware via the serial port.
Pinheaders for the serial port, the joysticks and the MMC-connector. By adding these, you will have a free option to place these ports in any position via simple cables. The design of chassies will become much easier in that way. The MMC will require a separate board that I have to design first (it will be done if this project ends up well and the demand for it shows up). The push buttons and LED's could also be mounted at the case via a header (like a PC monterboard).
This project is ongoing and far from finished. There are several problems that have to be solved before the board plays any games. My first issue was the PIC-programming at 3.3 V supply. Some dirty tricks and a bootloader will save this first run, but it needs to be improved for an updated version (either by allowing the PIC to run at 5 V or by swapping it out for an ATmega instead). A part of this is of course to get the firmware to run at a different PIC. The PIC18LF252 and PIC18L452 are partly identical, so it should not be a big issue, if I only can program it...
The next thing is to figure out how to create a proper core-file for the FPGA. The actual syntesising-procedure isn't a problem, but to find out what PROM-format to use is. There are some to choose from.
2007-10-08: Completed the Parallel Cable III and was able to contact the FPGA with the iMPACT software. At least, I know that the FPGA is alive and seems to work (all voltages are at correct places). Program download will be tested when the PIC-section is up and running. A proper compiled bin-file for the FPGA is avaiable at Dennis homepage (useful for any Minimig-builder out there).
2007-10-12: Finally got the bootloader to work. A grounding error at the PCB caused a few days of fault locating USART-code for PIC as the bootloader was not working. Also, the PCB symbols for the DSUB-9 connectors from Protel are mirrored, so these has to be changed before making a new board layout.
2007-10-13: More progress - this time the OSD-menu showed up. Still no sign of an Amiga boot yet, so there are some debugging to do. At least I know that the video converter is working (I got both composite and S-video out) and the keyboard is usable. Also, the PIC reads the SD-card (a 512 MB Sandisk).
2007-10-14: Finally, the board is working! The problem with the non-booting Amiga was when I found it, simple. It seems like the Minimig requires 512 kb Kick-ROM. A 256 kb Kick did not work (even if it works in WinUAE). When a proper ROM was loaded on the card, it just started up and showed me the classical 1.3 floppy hand.
What next?The board is now working and I can both play games and amaze the world. But it will not end here. First, I have to finish off the boards that I have in store. A friend of mine will almost die for one... But the development will not stop. I have to correct the errors that I found in the PCB layout. Then, I will replace the VGA with component outputs. The reason for this is simple: 50Hz (PAL) VGA does not work on most of the PC flatscreens. But component port may take it and the board could be switched over to 15kHz RGB that really works on any modern TV-set. The composite and S-video ports will be kept as they just works fine. I will also modify the PIC-section to work better with ICSP. As it is now, thers is a single chance to get a correct bootloader in. If it fails, Your board are screwed. But with some minor additional logic, this could be solved. Regarding the switchregulators, I maybe will swap them out for low-drop linear ones, just to eliminate the risk of interference from the switching frequency.
At the software side, there will be more possibilities. But to explore them, I need to learn more about PIC-processorns and FPGA programming in Verilog.
And there are the mechanical pieces too - it needs a nice case of course. So, this project is far from completed. It has just started something new, thanks to the amazing work from Dennis (keep it up) and some really busy weeks for me.
Project Files: Early schematics, not the final one! (and with some errors in it)
Tiny PIC Boot firmware for 18(L)F452 (verified OK)
Direct link to Dennis download page (FPGA & PIC binaries are there)
Web-links related to this project: The original Minimig Homepage by Dennis Weeren
Amiga.org - the Amiga forum where the Minimig was first presented
Xilinx, the manufaturer of the Spartan 3 FPGA
Microchip, the creator of the PIC-series MCU's
The Tiny PIC Bootloader
HI-Tech Software - they make the PICC-18 compiler
PCBCart - good PCB's for a good price
Xilinx Parallel Cable III Schematics
Svenska Elektronikforumet (only in swedish)
The 0-series bare PCB, made by PCBCart in China.
Very good quality for decent prices.
An almost complete board.
Finally, it booted up! The classical 1.3 floppy hand screen...
AmigaDOS 1.3, just before some game started
Turrican, a real classic...
In-game shot. Yes, it works nice and plays like the real thing
Giana Sisters - a good test for emulators (it often fails of some reason)
In-game here too. Same feeling as it was my old A500...
The workplace where things are born...
Close-up of the setting. Luckilly, I have saved my old Red-Ball joystick...