Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.
|
Forum Index : Microcontroller and PC projects : Micromite Extreme VGA teaser
Page 1 of 2 | |||||
Author | Message | ||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 8592 |
Using an unpowered Maximite to provide the VGA physical connection and diode clamping. Picture is stable and clear full 640x480 resolution (8-colour) Lot of work still to integrate and still a few funnies (green line at top left of image) |
||||
kiiid Guru Joined: 11/05/2013 Location: United KingdomPosts: 671 |
Very cool Peter I thought about the same some time ago and eventually dismissed it as a waste of time since almost nobody uses VGA monitors anymore. But admittedly it does look pretty good and someone might find eventually some use for it. http://rittle.org -------------- |
||||
Grogster Admin Group Joined: 31/12/2012 Location: New ZealandPosts: 9066 |
Are you using software SPI ports for that, or have you come up with some other way to drive the VGA signals? Very impressive - will be watching this one. Smoke makes things work. When the smoke gets out, it stops! |
||||
WhiteWizzard Guru Joined: 05/04/2013 Location: United KingdomPosts: 2794 |
For everything Micromite visit micromite.org Direct Email: whitewizzard@micromite.o |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 8592 |
It uses 3 SPI ports (out of 6 on the 100-pin MZ) and 3 DMA channels (out of 7, 1 is also used by USB). In addition it uses 1 timer (out of 9) and 1 output compare channel (these are used for PWM, out of 9). The working code is about 15 lines in the timer interrupt routine which is called every line (31.775 KHz) everything else after set up is done by DMA independent of the processor. The code is a variant of that used by Geoff in the Maximite. There seem to be some significant differences between the way the MZ works and the old MX795 so it took me a day of playing to get it all working. The next step is to integrate VGA as a driver into the firmware OPTION LCDPANEL VGA after that it will be able to be used transparently in exactly the same way as a SSD1963 or ILI9341 display so all the graphics commands should work. The only difference is that VGA is only 8-colour. The code uses a frame buffer in the MZ memory but that only reduces the user available RAM by about 100K (from 470K). When the VGA driver isn't loaded then there will be no impact on memory or available pins. The wiring and number of pins needed will be exactly the same as the Colour Maximite except that I don't intend to implement composite video so that saves a pin. I will probably reduce the number of user SPI channels from 4 to 3 and there will be some pinout changes to accommodate the new functionality but otherwise there will be no impact on the previously published EXTREME code. VGA will only be available on the 100-pin MZ and not the 64-pin variant |
||||
MicroBlocks Guru Joined: 12/05/2012 Location: ThailandPosts: 2209 |
If it would be possible to adjust the resolution then connecting a whole range of LCD's would also be possible. Most bigger LCD's are 800x480. Smaller LCD's are often 320x200. Using a framebuffer would allow for very fast updates and maybe even a port of the sprite capabilities from the color maximite. Microblocks. Build with logic. |
||||
2001cpx Regular Member Joined: 03/10/2013 Location: CanadaPosts: 59 |
Good news! yes, lcd monitor like a 19 inch cost no more than 20$. (Used) Thanks "Color Maximite,(Duinomite-Mega,Mini),CGmmStick,GCmicroboard2b,Micromite + explore 64,100,LCD backpack,Lcd Backpack V2,TFT Backpack,Micromite Extreme,Armmite L,F,H,CMM2" |
||||
Geoffg Guru Joined: 06/06/2011 Location: AustraliaPosts: 3165 |
I regard the implementation of Sprites on the Colour Maximite as a low point on my Maximite/Micromite adventures. I was never happy about how thy worked and the syntax used. Only one person used them (although Nick did a brilliant job). Geoff Geoff Graham - http://geoffg.net |
||||
robert.rozee Guru Joined: 31/12/2012 Location: New ZealandPosts: 2290 |
complicated graphics behaviour such as sprites might well be better achieved with custom functions that are tailored to the exact requirements of the application. peter - the vga output is a very cool addition perhaps the vga-capable version should be called the "colour MICROmite", a worthy successor to the original colour maximite. how practical would it be to have a 1024x768 monochrome mode? this would be ideal for use when editing programs. cheers, rob :-) |
||||
Geoffg Guru Joined: 06/06/2011 Location: AustraliaPosts: 3165 |
Peter will be able to answer this when he has the lower resolution working properly but the limitation will be the speed at which the MZ can toggle its I/O pins - which I seem to remember was less than 25MHz (1024x768 would require >60MHz). Geoff Geoff Graham - http://geoffg.net |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 8592 |
Re bigger displays: The only vague possibility is 800x600 at 72MHz. This has a pixel rate of 50MHz. Using the MZ chip at 200MHz the SPI data rates available are 25MHz (or slower) or a maximum of 50Mhz (100 mHz divided by 2,4,6,8...) standard 640x480 requires a pixel clock of 25.175MHz - so close enough. 800x60 at 72MHz requires a pixel clock of 50MHz running the SPI port at full speed. Whether DMA could keep up with this I don't know. Anything more than 50MHz is impossible. |
||||
MicroBlocks Guru Joined: 12/05/2012 Location: ThailandPosts: 2209 |
What about the pixel rates for 320x200 and 800x480? Microblocks. Build with logic. |
||||
WhiteWizzard Guru Joined: 05/04/2013 Location: United KingdomPosts: 2794 |
Picking up on Jean's comment - 800 x 480 would allow for easy 'transition' of programs originally written for a SSD TFT. It would also be a nice resolution for the editor. Be interested to hear feedback as to the possibility of these 'existing' resolutions on the VGA. (Any more teaser photos yet Peter?) For everything Micromite visit micromite.org Direct Email: whitewizzard@micromite.o |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 8592 |
WVGA seems to need a 40MHz pixel clock although information is scarce as it is not a recognized VESA standard The only way to do this would be to slow the main processor clock to 160MHz (from 200). I can't do any more on this until after the weekend. If 800x600 works then 800x480 may be a possibility but I'm not very hopeful. I don't have a 800x480 compatible monitor to test on. |
||||
MicroBlocks Guru Joined: 12/05/2012 Location: ThailandPosts: 2209 |
This document might have some useful info for 800x480 resolution: http://www.nxp.com/assets/documents/data/en/application-notes/AN3977.pdf Microblocks. Build with logic. |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 8592 |
Just for the avoidance of doubt, the code will never support direct connection of a raw LCD panel - that is the job of dedicated display controllers. It may (very big question mark) be able to support the cheap LCD displays that have a VGA connection e.g. possibly this but it would still only be 8-colours |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 8592 |
Demo video |
||||
WhiteWizzard Guru Joined: 05/04/2013 Location: United KingdomPosts: 2794 |
WOW - that is FAST! Is that a 'hacked' GUI TEST, or have you got several/all the general graphics interface working with the MM firmware? For everything Micromite visit micromite.org Direct Email: whitewizzard@micromite.o |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 8592 |
Yes - everything working except the console - that is next on the to-do list. |
||||
WhiteWizzard Guru Joined: 05/04/2013 Location: United KingdomPosts: 2794 |
FANTASTIC IF Load Image is also working- ow does it deal with converting RGB to the limited number of colours? Or put another way, will it still load a .bmp if you create the .bmp file in the 8 'correct' colours? I assume this is still 640x480? What size characters are you thinking of using for the editor? i.e. how many columns & rows do you think is achievable to make a nice readable Editor display? And finally, will this ever be 'ported' to the 64pinner, or is there just not the hardware capability/pins on the 64pin MZ? WW For everything Micromite visit micromite.org Direct Email: whitewizzard@micromite.o |
||||
Page 1 of 2 |
Print this page |