Amiga.org
Amiga computer related discussion => Amiga Hardware Issues and discussion => Topic started by: Simon82 on March 12, 2008, 07:44:10 AM
-
Hello,
I'm really interested in Minimig future and I'd like to know what do you think about the development that people are going to make on it regarding differents cores for example. Are we going to see lot of differents system emulated on it or it would made the end of the C-One?
What could suggest me to buy it compared to a classic A600?
Bye
-
Minimig is Amiga specific. I don't think any other system could be emulated on it (with the exception of Atari, maybe) and I honestly think it's not necessary anyway, because it's already a successful product. Comparison with A600,
1 - Onboard scandoubler on Minimig
2 - No moving parts, no floppy hassle, breeze to download adfs from internet and play them.
3 - PC keyboard/mice compatibility
4 - small and consumes low power
and most important of all, when you're buying an A600, you're buying a 15 year old product which is near the end of her life. A simple cap leak can waste your money. MiniMig is new hardware and will serve you much longer than an A600.
-
As soon as my MiniMig arrives (end of April) I've agreed (in return for getting my board) to try to port the open source Spectrum, C64, Atari ST and Amstrad CPC cores to MiniMig.
The bummer is that you'll all have to reprogram / replace your PIC.
Simon82 wrote:
What could suggest me to buy it compared to a classic A600?
Nothing. With a CF flash as an internal hard drive and a CF flash as a PCMCIA removable disk the A600 beats it (as an Amiga) pants down.
-
Actually the only Amiga specific thing on the MiniMig appears to be the crystals for PAL display timing! You can flash whatever you like into the FPGA. Ok it'll only have 16bit wide access to 2MB of sram but that should be fine for emulating other 68k based 16bit-era consoles.
An Atari should be fairly easy, but Neo-Geo and Megadrive should also be possible because they both used 68000 cpus and long as room can be found in the fpga for their other custom processors then there's no reason for them not to work.
I started to have a look into what else would be required but my knowledge of Verilog/VHDL is totally insufficient for working out the *how* to do it at the moment.
Andy
-
alexh wrote:
As soon as my MiniMig arrives (end of April) I've agreed (in return for getting my board) to try to port the open source Spectrum, C64, Atari ST and Amstrad CPC cores to MiniMig.
The bummer is that you'll all have to reprogram / replace your PIC.
Alex that's awesome news!
-
The other Amiga specific bit is the PIC.
I wouldnt hold your breath, I dont have my MiniMig yet.
The current list of open source cores are:
Atari ST (http://www.experiment-s.de/index.php?id=78&L=1)
C64 (http://www.syntiac.com/fpga64.html)
Amstrad CPC (http://www.symbos.de/trex.htm)
Zx Spectrum (http://zxgate.sourceforge.net/index.html)
MSX (http://www5d.biglobe.ne.jp/~hra/note/onechipmsx/index.htm)
Vic20
Numerous Arcade Machines (http://home.freeuk.com/fpgaarcade/platforms.htm)
Each will need the MiniMig PCB wrapper porting to it (Sound and VGA output, joystick inputs etc.) and almost certainly some PIC changes (hopefully not too much that you have to swap PIC's between platforms) to get the data in off the MMC card.
-
An Atari should be fairly easy, but Neo-Geo and Megadrive should also be possible because they both used 68000 cpus and long as room can be found in the fpga for their other custom processors then there's no reason for them not to work
Megadrive and neogeo also have a Z80 processor
-
Fransexy_ wrote:
Megadrive and neogeo also have a Z80 processor
I know, but the Z80 has fpga implementations already :-D like I said I did look into it ;) and the Z80 was primarily used for audio and peripherals in both of them thus whatever other logic would be required for emulating other platforms would be subsumed by the Z80 for those two.
Andy
EDIT for clarity.
-
alexh wrote:
The other Amiga specific bit is the PIC.
I wouldnt hold your breath, I dont have my MiniMig yet.
The current list of open source cores are:
Atari ST (http://www.experiment-s.de/index.php?id=78&L=1)
C64 (http://www.syntiac.com/fpga64.html)
Amstrad CPC (http://www.symbos.de/trex.htm)
Zx Spectrum (http://zxgate.sourceforge.net/index.html)
MSX (http://www5d.biglobe.ne.jp/~hra/note/onechipmsx/index.htm)
Vic20
Numerous Arcade Machines (http://home.freeuk.com/fpgaarcade/platforms.htm)
Each will need the MiniMig PCB wrapper porting to it (Sound and VGA output, joystick inputs etc.) and almost certainly some PIC changes (hopefully not too much that you have to swap PIC's between platforms) to get the data in off the MMC card.
Forgot the Atari jaguar there Alex.
-
It's been mentioned before: (http://www.amiga.org/forums/showthread.php?t=32527)
"It's likely possible without any hardware modifications to run Atari ST, Macintosh 68k, Sega, Early x86, Proberbly most 8-bits. With some fpga tricks even early Sun, SGI, NexT aswell.
Then there's the possibility to do demos coded directly in HDL (like vhdl) and really exploit the fpga power. Or even use the fpga capability to interface with other electronics as logic analyzer etc.."
So there IS candidates besides Amiga. And it should be possible. And any 8-bit should be definitly be doable.
Any Z80 as a auxillary cpu is no big deal either. Unless it have a complexity on par of m68k..
-
I was talking about the Acube production run. Now if any of you are dreaming to interface a Z80 to that I say you're just dreaming. I say get a Spartan3 kit and start from scratch, it will be less painful. That of course has nothing to do with minimig, but a different project.
-
alexh wrote:
As soon as my MiniMig arrives (end of April) I've agreed (in return for getting my board) to try to port the open source Spectrum, C64, Atari ST and Amstrad CPC cores to MiniMig.
The bummer is that you'll all have to reprogram / replace your PIC.
Which is why you put a copy of Tinybootloader on the pic first so you can flash pic firmware at will.
-
I meant a HDL-Z80 ofcourse. No reason to buy a physical one in this case.
-
downix wrote:
Forgot the Atari jaguar there Alex.
There is an open source FPGA Atari Jaguar? What's the link?
-
countzero wrote:
I was talking about the Acube production run. Now if any of you are dreaming to interface a Z80 to that I say you're just dreaming.
I think you'll find the Z80 will fit inside the FPGA on the production run ACube and leave enough space for an 8-bit computer or console too.
freqmax wrote:
I meant a HDL-Z80 ofcourse. No reason to buy a physical one in this case.
Deffo.
-
whiteb wrote:
Which is why you put a copy of Tinybootloader on the pic first so you can flash pic firmware at will.
http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm
Ah, it looks like Tinybootloader *might* be compatible with the MiniMig's 18F252 PIC although the exact part number confuses me.
I was under the impression that PIC's required extra programming voltages!?
Edit:
AFAIK the PIC serial port pins are not wired up to anything on the MiniMig v1.1 PCB board this makes TinyBootloader not much use as it is :-(
It would have to be modified to take it's files from the SD card. And then how do you tell the PIC you want to upgrade?
It is a shame that the serial pins were not wired to the FPGA then with a special FPGA image they could have been routed to the serial port. It still might be possible with a hot-mod to the "spare I/O" pins.
-
alexh wrote:
downix wrote:
Forgot the Atari jaguar there Alex.
There is an open source FPGA Atari Jaguar? What's the link?
No way would the Jaguar custom chips would fit on a minimig FPGA...
-
bloodline wrote:
No way would the Jaguar custom chips would fit on a minimig FPGA...
I'd still like the link to the open source Jaguar code though ;-)
-
alexh wrote:
...
I'd still like the link to the open source Jaguar code though ;-)
click (http://www.atarimuseum.com/videogames/consoles/jaguar/jagmenu/jagfiles.htm)
Didn't check on the content though but it looks like the stuff.
-
alexh wrote:
Ah, it looks like Tinybootloader *might* be compatible with the MiniMig's 18F252 PIC although the exact part number confuses me.
I was under the impression that PIC's required extra programming voltages!?
Edit:
AFAIK the PIC serial port pins are not wired up to anything on the MiniMig v1.1 PCB board this makes TinyBootloader not much use as it is :-(
How do you mean, useless ? Tinybootloader (or any boot loader for that fact) sits on the Pic, and when you first power up the device, listens for Serial port activity for approximately 1 second before booting the main firmware.
[edit] That bootloader you linked, *IS* the bootloader I am using in my minimig 1.1
Its during this 1 second window, you can send a new firmware to the Pic. The Pic used in the minimig 1.1, has "Self Programming" capability, from the serial port.
Remember, the Pic's Serial port *IS* used (shared) with the minimig Serial via a Jumper.
It would have to be modified to take it's files from the SD card. And then how do you tell the PIC you want to upgrade?
The Pic's boot window. If it detects serial activity during the "Window" it loads the Tiny loader, receives the new firmware, Pic flashes itself, and reboots.
It is a shame that the serial pins were not wired to the FPGA then with a special FPGA image they could have been routed to the serial port. It still might be possible with a hot-mod to the "spare I/O" pins.
Well, you cannot wire it to the FPGA, *AND* the serial port at the same time. One or the other. at least with Dennis's design.
http://ww1.microchip.com/downloads/en/DeviceDoc/39564c.pdf
Go have a read, especially the section titled "Special features: Self programming via software control", Section 19.8: Low Voltage In circuit Serial programming (ICSP).
Then go check out the Schematics of minimig 1.1, and look at the PIC signal names (Pins 17 and 18) which are the pic's Serial TX/RX. You will find that they are connected to the Jumper, which selects either PIC or FPGA to gain access to the serial controller (Max232).
Trust me, it works. I has someone with a Pic burner who put the boot loader on to the pic (Which is the ONLY time yo uneed the Programmer), then I put the pic into the minimig and downloaded the firmware via serial.
-
That is the netlists (post synthesis) for 1 chip from the unreleased Jaguar 2. Totally useless.
-
whiteb wrote:
alexh wrote:
AFAIK the PIC serial port pins are not wired up to anything on the MiniMig v1.1 PCB board this makes TinyBootloader not much use as it is
How do you mean, useless ? [snip] Remember, the Pic's Serial port *IS* used (shared) with the minimig Serial via a Jumper.
Ah, you see I didn't know that (as you can see from my post). I guess it is no big deal then.
whiteb wrote:
I put the boot loader on to the pic, (which is the ONLY time you need the Programmer) then I put the pic into the minimig and downloaded the firmware via serial.
Ah, so Minimig's firmware also contains TinyBootloader (or an equivalent) so you can update it?
-
alexh wrote:
I put the boot loader on to the pic, (which is the ONLY time you need the Programmer) then I put the pic into the minimig and downloaded the firmware via serial.
Ah, so Minimig's firmware also contains TinyBootloader (or an equivalent) so you can update it?[/quote]
You can do it that way, but Dennis never supplied an all in one Bootloader/Firmware image for the pic for minimig.
What you do, is download the Bootloader, which is part of the Tinybootloader package from that website, and burn it to the pic using a programmer. Once the Bootloader is on the chip, then you can reprogram to your hearts content using serial. Thats why I got someone else to do the initial flash for me, he had a programmer, I didnt. He sent them back, and I put the pics into minimig, Booted up in Pic - Serial mode and uploaded the Firmware.
One second window is *NOT* a lot of time, Its best that you connect minimig up, load software on PC, set the software to scan for the pic, *THEN* power the board, that way you will catch the "Listen" window. The software has a higher time out than the pic.
The other way, is to have the minimig powered up, already connected, load the software, hit "Upload", and then immediately hit the "Reset" button on minimig to catch the window.
-
I'm holding off because I want to hear some basic reviews. I want to see more specs on the unit. I'm assuming it can't handle an external Amiga compatible disk drive. Why can't it have a multi-card reader or USB instead of us being stuck with only one format: Compact Flash? Why only one memory card port and why be stuck with one or two gigs when you can now buy cards up to 16 gigs? I wish you could put an ATA hard drive on the thing and I wouldn't complain. What kind of external keyboard does it accept?
I read on Wikipedia there is a problem with Sprites but I haven't heard more about this.
I want it to have an HDMI port or cable for modern televisions because I don't want to buy a modern $600 LCD or an old Amiga monitor that is stuck in the past. I want it to work with a modern tv.
A reference manual and expansion port would be great. And a case would be great.
I have an A-Maxx (Mac Emulator) and wonder if it would run on the MiniMig.
-
ChuckT wrote:
I'm assuming it can't handle an external Amiga compatible disk drive.
No.
ChuckT wrote:
Why can't it have a multi-card reader
Expense, practicality. They chose the cheapest easiest format.
ChuckT wrote:
Why only one memory card port
Not enough pins on the FPGA for more than one AND you don't need more than one!
ChuckT wrote:
why be stuck with one or two gigs when you can now buy cards up to 16 gigs?
I've seen MMC cards upto 8GB and they make SD cards upto 32Gbytes but I'm not too sure they work with MiniMig.
ChuckT wrote:
What kind of external keyboard does it accept?
Any keyboard with PS/2 or USB that supports PS/2 legacy mode via adapter.
ChuckT wrote:
I read on Wikipedia there is a problem with Sprites but I haven't heard more about this.
It's true, the current core has several bugs not in Amiga chipse.
ChuckT wrote:
I want it to have an HDMI port or cable for modern televisions
Why HDMI? Modern budget TV's dont have HDMI. They do however have component or VGA.
MiniMig as it shipped has two output modes, 31KHz VGA and 15KHz RGB (SCART). Add to that I am 80% sure I could change MiniMig's core to support component too.
That covers vast majority (all?) modern TV's!
-
Good luck porting the CPC core to it! Hope you get the CPC Plus functionality working :)
Oh, yeah, guess it would be nice to get Speccie and C64 and whatnot working too ...
I guess you could have a modified pic firmware that looked in the root folder on the SD card and listed all files that ended with ".cor" like "CPC6128p.cor" or something to select which computer you want to boot. Then each computer could have a folder on the SD card that all its files were in, maybe. That would require adding folder support to the firmware too ...
-
alexh wrote:
That is the netlists (post synthesis) for 1 chip from the unreleased Jaguar 2. Totally useless.
Not entirely when you look through it. There's a "netlist to verilog" program source code in there that's pretty complete. The netlist for the Tom and Jerry is also out there, altho the original site that hosted them went down awhile ago.
In addition, there is an "oberon.v" file in there that actually is complete, if you can adapt it to use a more industry standard component list rather than the OrCAD specific one it uses as/is.
Yes, spent some time cleaning that code up. I almost have the GPU core ready to put into an FPGA.
-
downix wrote:
There's a "netlist to verilog" program source code in there that's pretty complete.
Netlists are verilog. Without the technology files they are useless. Have you even been able to work out what all the cell's originally did?
Plus they are for a console that was never released and no software existed. That's pretty much the definition of useless to me.
downix wrote:
The netlist for the Tom and Jerry is also out there, altho the original site that hosted them went down a while ago.
While "less useless" it still borders on unusable.
downix wrote:
In addition, there is an "oberon.v" file in there that actually is complete
And even if you had the technology cell files, I am sure you've worked out what all the I/O are? And what the timing relationship was between signals?
downix wrote:
Yes, spent some time cleaning that code up. I almost have the GPU core ready to put into an FPGA.
£50 says you never get it to do anything (worth while).
-
If my Amiga was working, I would consider getting a Minimig as a backup but without me being able to get files over to the Minimig, getting one doesn't help me port the files over.
-
alexh wrote:
downix wrote:
There's a "netlist to verilog" program source code in there that's pretty complete.
Netlists are verilog. Without the technology files they are useless. Have you even been able to work out what all the cell's originally did?
Yes, actually. Within the old Tom and Jerry netlists they included the original technology files
Plus they are for a console that was never released and no software existed. That's pretty much the definition of useless to me.
But which does run the legacy Jaguar software (seen it done on one of the prototypes)
downix wrote:
The netlist for the Tom and Jerry is also out there, altho the original site that hosted them went down a while ago.
While "less useless" it still borders on unusable.
downix wrote:
In addition, there is an "oberon.v" file in there that actually is complete
And even if you had the technology cell files, I am sure you've worked out what all the I/O are? And what the timing relationship was between signals?
On the embedded processor I have, it's been most of my focus to-date
downix wrote:
Yes, spent some time cleaning that code up. I almost have the GPU core ready to put into an FPGA.
£50 says you never get it to do anything (worth while).
It's running in simulation (using WebISE) so we shall see how it does in the real world soon enough.
The actual processor core was very narrow-focused, couldn't even directly address more than 64kb of RAM, using DMA and the MMU to expand that in much the same way that the VAX and Alpha did.
-
alexh wrote:
ChuckT wrote:
why be stuck with one or two gigs when you can now buy cards up to 16 gigs?
I've seen MMC cards upto 8GB and they make SD cards upto 32Gbytes but I'm not too sure they work with MiniMig.
Creating SDHC (http://en.wikipedia.org/wiki/Secure_Digital_card#SDHC) support should be easy.
Doesn't require any hardware modifications asfaik. So an MCU software update should be able to do it.
And you can use (non-SDHC) 4GB cards right now in minimig asfaik.
Even FAT16 (http://en.wikipedia.org/wiki/FAT16) manages 4 GB. (anyway 4GB is the limit of FFS anyway asfair).
ChuckT wrote:
I want it to have an HDMI port or cable for modern televisions
Why HDMI? Modern budget TV's dont have HDMI. They do however have component or VGA.
MiniMig as it shipped has two output modes, 31KHz VGA and 15KHz RGB (SCART). Add to that I am 80% sure I could change MiniMig's core to support component too.
That covers vast majority (all?) modern TV's![/quote]
Even budget TVs now get DVI or HDMI. In Europe component is not as common as SCART. The Xilinx Spartan-3x series can produce dvi/hdmi out of the box asfaik. Provided proper LVDS termination & impedance is used (yes I have investigated the matter in depth).
ChuckT wrote:
If my Amiga was working, I would consider getting a Minimig as a backup but without me being able to get files over to the Minimig, getting one doesn't help me port the files over.
You could use the 4x spare minimig IOs and a MCU (like PIC) to fairly easy create something along the lines of CatWeasel.
Other than that there's the Amiga (http://www.opencircuits.com/Amiga_floppy_project) floppy reader project. Or get an Amiga and use rs232, or use Amiga with an HDD, then connect the HDD to the PC (so I did).
-
freqmax wrote:
The Xilinx Spartan-3x series can produce dvi/hdmi out of the box afaik. Provided proper LVDS termination & impedance is used (yes I have investigated the matter in depth).
You sure? I am not as certain. Both DVI and HDMI uses TMDS not LVDS.
-
You sure? I am not as certain. Both DVI and HDMI uses TMDS not LVDS.
DVI/HDMI uses TMDS as you state.
I just had a quick look again at the specs for LVDS and TMDS and I can not see a reason why you can't drive a TMDS receiver with LVDS transmitter.
-
nBit7 wrote:
I can not see a reason why you can't drive a TMDS receiver with LVDS transmitter.
I am not an analog expert but looking at the specs I'd say you were wrong.
Shame MiniMig doesn't use a Spartan 3A cos in addition to LVDS it has TMDS I/O :cry:
http://www.xilinx.com/support/documentation/data_sheets/ds529.pdf
Take a look at Page 20
-
nBit7 wrote:
You sure? I am not as certain. Both DVI and HDMI uses TMDS not LVDS.
DVI/HDMI uses TMDS as you state.
I just had a quick look again at the specs for LVDS and TMDS and I can not see a reason why you can't drive a TMDS receiver with LVDS transmitter.
Physically they do seem to be quite similar, but TMDS uses a more complex encoding scheme... For longer transmissions? Maybe you can fake that with LVDS?
-
This might be of interest
http://www.onsemi.com/pub_link/Collateral/NB4N316M-D.PDF
-
I am taking about the electrical LVDS standard not the protocol called 'LVDS Display Interface (LDI)'.
I think the big issue with using LVDS drivers is the Termination method used for TMDS. Otherwise the voltage differential swings are compatible (haven't looked at timing). Remember that absolute voltages don't really matter so long as they are in the common mode input voltage range.
-
nBit7 wrote:
I am taking about the electrical LVDS standard not the protocol called 'LVDS Display Interface (LDI)'.
As am I. {Edit: Oops I see you were replying to Bloodline's post}
-
When I looked at the TMDS spec (from the DVI spec). I found it 's essentially the same electrically wise. What TMDS does is to send 8-bits and then add 2-bits that relate to coding. One bit indicate if the other bits are inverted in order to balance DC. So it should be doable.
Faster memory might be needed.
Btw,, Anyone knows a surface mount switched regulator that use a small amount of external components and with builtin switch transistor that:
Vin = +5V or +12V
Vout = 1.2V - 3.3V (will use 1.2V 1.8V 2.5V 3.3V)
Iout >= 2.3A
-
freqmax wrote:
When I looked at the TMDS spec (from the DVI spec). I found it 's essentially the same electrically wise. [as LVDS]
Ah, you see I didn't. I think I need to go on a course in Analog electronics.
-
http://en.wikipedia.org/wiki/TMDS
"In the first stage each bit is either XOR or XNOR transformed against the previous bit, whilst the first bit is not transformed at all. The encoder chooses between XOR and XNOR by determining which will result in the fewest transitions; the ninth bit is added to show which was used. In the second stage, the first eight bits are optionally inverted to even out the balance of ones and zeros and therefore the sustained average DC level. The tenth bit is added to indicate whether this inversion took place."
bit0-7: Data
bit8: XOR or XNOR
bit9: Invert ..or not
I think bit8 might be a challenge to accomplish in a fast logic.
"The physical layer for TMDS is Current Mode Logic (CML), DC coupled and terminated to 3.3 Volts."
Essentially LVDS asfair. I think the docs said +/-100mV. So wikipedia is proberbly wrong at the volts level.
Xilinx Spartan-3/3E i/o mode LVDS25 should do it.
-
(http://www.national.com/nationaledge/may03/images/Table1.jpg)(http://www.national.com/nationaledge/may03/images/fig5.jpg)
LVDS and CML 3.3v (DVI/HDMI) at the physical level don't look the same to me. But I stress I am not an analog person.
-
First one to try will find out :-D
Spartan-3A (http://www.xilinx.com/publications/prod_mktg/pn002010.pdf) TMDS out-of-the-box is only available in non-handsoldering BGA packages.
-
Actually there is one TQFP part, but it's only 144 I/O (which is less than the current MiniMig) and not suitable.
Any future MiniMig board will have to use BGA chips.
I've got a BGA rework workstation and a flow solder oven ;-)
-
LVDS and CML 3.3v (DVI/HDMI) at the physical level don't look the same to me.
As I said before the physical voltage levels are not that important. Its the difference in voltage between the complementary pair that decides if it is a logic 1 or 0.
However the voltages must remain in the common mode window of the receiver. LVDS normally terminated by 100 ohms generates at least 200mV differential at the receiver which is more than the 150mV receive window shown in the DVI spec.
-
@nBit7:
You think it should work?, if not what would be needed to make it work do you think?
-
freqmax wrote:
@nBit7:
You think it should work?, if not what would be needed to make it work do you think?
I think that LVDS (current mode) drivers terminated to Vcc by 50 Ohms is a problem. If you have access to the termination then you should be able to get it working. Otherwise it may be possible to have a passive network that would allow it to work but it would likely have a drastic affect on max cable lengths. You would probably also need to have a floating (offset) GND reference on the LVDS side. I would have to do a more complete analysis of the LVDS drive circuitry to say anything with any level of assurance.
-
This App note suggests that it is possible (LVDS to CML) by using AC coupling. The protocol of DVI/HDMI should make AC coupling possible.
http://pdfserv.maxim-ic.com/en/an/hfan10v2.pdf
-
nBit7 wrote:
This App note suggests that it is possible (LVDS to CML) by using AC coupling.
If I actually knew what that was I might be able to comment, I need to learn Analog. It's all "magic" AFAIC