![]() |
Forum Index : Microcontroller and PC projects : Micromite MZ final v5.03.02
Author | Message | ||||
kiiid Guru ![]() Joined: 11/05/2013 Location: United KingdomPosts: 671 |
Again with Geoff's approval presenting the final universal release of Micromite MZ v5.03.02 for PIC32MZEF. This also insludes the same version for MX470. 64-pin and 100-pin chips are supported, and my vision is to keep as close as possible compatibility with Geoff's original pinout. The emphasis has been put on performance: MX470 @ 120MHz - 2205 grains MZEF @ 198MHz - 4386 grains MZEF @ 252MHz - 5474 grains MZEF @ 258MHz - 5599 grains (yes, this version allows stable overclocking :) ) 2017-02-17_094613_MM5.3E.zip The CPU command on MZEF is FULLY functional with a number of frequency settings, and working SLEEP mode. Bootloader, 8-bit ASCII support, internal drive A:, up to five drives (four SD cards), automating detection of the input frequency, new functions... the list goes on. Here is a summary of the new functionality. The pinouts for MX470 are omitted as they are exact copy of Geoff's. In-shell firmware update and a new MMBasic command FWUPDATE Added bootloader code to allow self-updating MMBasic - The bootloader is invoked by execution of MMBasic command "FWUPDATE" 5 seconds after its execution the CPU will restart and will enter in bootloader mode The firmware update is performed through the USB port via standard HID interface - The needed PC software "HIDBootLoader.exe" is also included Handling of 8-bit extended ASCII symbols Allows support of full 8-bit ASCII character set - A string which starts with an extended ASCII code must be enclosed in double quotes - ""µmite"" - a built-in full 224-character 10x20 font #97 is also supplied. It is also the new default font when LCD panel is used as console. Additions to include support for Winstar LCD panels with built-in SSD1963 controller Support for panels WF57Q, WF70Q, WF80Q, and WF102Q. This option works also with other 800x480 panels where 24-bit colour depth support is required. - added new display type SSD1963_7W as valid parameter for OPTION LCDPANEL Additions in the SDCARD functionality Support for up to 4 SD cards. - new command DRIVE syntax: DRIVE drive$ where drive$ can be "A" (currently reserved for future internal drive), "B", "C", "D", "E" default startup drive is B - new read-only varialble MM.DRIVE syntax: returns the current drive index: 0 for drive A, 1 for drive B, etc. - The command OPTION SDCARD has an extended format: Option SDCARDx CS-pin [, CD-pin [,WP pin]] where "x" can be 1, 2, 3, 4 In order to maintain backward compatibility, "OPTION SDCARD" is equivalent to "OPTION SDCARD1" Additional SDCARD functionality for multiplexed control: Support up to 4 external SD cards via a bi-directional 2:4 multiplexer such as 4052. Example of such configuration can be seen in the schematics of the ELLO 2M and ELLO 2M2 systems. - further extended syntax for the OPTION command OPTION SDCARDx [MUXn, drv0-pin, drv1-pin,] CS-pin [, CD-pin [,WP pin]] where "x" is a SD card number (1..4) "n" is the multiplexer output number (0..3) "drv0" and "drv1" are the two pins to drive the multiplexer - The way a multiplexer is supported is universal and can be applied in a number of different configurations A single example of the mentioned ELLO 2M system uses the following configuration for its multiplexer: OPTION SDCARD1 MUX0, 51, 46, 12, 33 OPTION SDCARD2 MUX1, 51, 46, 12, 33 OPTION SDCARD3 MUX2, 51, 46, 12, 33 OPTION SDCARD4 MUX3, 51, 46, 12, 33 - The configuration for use of multiplexer are optional and depend on the presence of MUX in the OPTION parameters (Micromite MZ only) Automatic detection of input frequency 12MHz or 24MHz This functionality allows proper timings and operation in different hardware configurations. Some boards use 12MHz oscillator, while others use 24MHz one. The bootloader will automatically detect the input frequency, and will adjust the needed hardware registers so MMBasic can operate properly further on. This test is performed by the bootloader only at its own first run. After that the selected frequency remains locked and can only be changed if the bootloader itself is updated by programming the chip with an external programmer. (Micromite MZ only) Full support of the CPU command with updated parameters for clock frequency CPU SLEEP [seconds] and CPU RESTART commands operational in the same way as in the MX470 version CPU takes the following list of clock frequencies for PIC32MZEF: 60, 99, 120, 156, 198, 204, 228, 252, 258 MHz Note: PIC32MZEF comes in 200MHz and 252MHz variants. It is completely user's responsibility if a damage to the chip has occured due to the selection of a frequency which the chip has not been rated to perform at. The options 204 and 258 allow slight overclocking of the 200MHz and 252MHz variants respectively. They have been tested and found stable for inclusion in the list of supported frequencies, however they can be used at own risk only. (Micromite MZ only) Internal flash drive A: for data and program storage. The contents of drive A: are preserved during firmware upgrades through the bootloader. Drive A: can store only a small number of files in a flat model - only root, no subdirectories, and has about 840K capacity. (Micromite MZ only) New command "ImageA" to create or load full images ofr drive A: Create an image: ImageA CREATE "filename" to create a full image of drive A and store it in a file. Load an image: ImageA LOAD "filename" to load previously created image. All current data in A is overwriten New function "SIM$ str1$, str2$" to return the level of similarity between two strings as number between 0 and 1. (Micromite MZ only) New command "INIT drive$" to format specified drive (except A:) (Micromite MZ only) New command "HELP" reading from data file MMZHELP.TXT located in A: Number of other small updates and improvements throughout the code. (Micromite MX270D) Pinout for 44-pin: 1 : 5V | DIGITAL | COUNT | I2C DATA 2 : 5V | DIGITAL | PWM 2B 3 : 5V | DIGITAL | INT4 4 : 5V | DIGITAL 5 : 5V | DIGITAL 6 : GND 7 : CAP 8 : USB D+ 9 : USB D- 10: Vusb 11: DIGITAL | ANALOG | COM2-RX 12: 5V | DIGITAL | COM2-TX 13: 5V | DIGITAL 14: DIGITAL | ANALOG | SPI CLOCK 15: DIGITAL | ANALOG | PWM 2A 16: GND (AVss) 17: 3.3V (AVdd) 18: RESET 19: DIGITAL | ANALOG 20: DIGITAL | ANALOG | SPI OUT (MOSI) 21: DIGITAL | ANALOG | PWM 1A 22: DIGITAL | ANALOG | PWM 1B 23: DIGITAL | ANALOG | COM4-RX (shared with the console) 24: DIGITAL | ANALOG | COM4-TX (shared with the console) 25: DIGITAL | ANALOG 26: DIGITAL | ANALOG | PWM 1C 27: DIGITAL | ANALOG | COM1-TX 28: 3.3V 29: GND 30: OSC1 8MHz 31: OSC2 8MHz 32: 5V | DIGITAL | COM1-RX 33: CONSOLE Tx (DATA OUT) 34: CONSOLE Rx (DATA IN) 35: 5V | DIGITAL | INT3 36: DIGITAL | ANALOG | INT2 37: 5V | DIGITAL | INT1 38: 5V | DIGITAL | COM1: ENABLE 39: GND 40: 3.3V 41: 5V | DIGITAL | SPI IN (MISO) 42: 5V | Vbus 43: 5V | DIGITAL | COUNT | WAKEUP | IR 44: 5V | DIGITAL | COUNT | I2C CLOCK (Micromite MZ) Pinout for 64-pin: 1 : Analog / Digital / SSD1963-D5 2 : Analog / Digital / SSD1963-D6 3 : Analog / Digital / SSD1963-D7 4 : Analog / Digital / SPI2-CLK 5 : Analog / Digital / SPI2-OUT 6 : Console-RX / COM4-RX 7 : GND 8 : 3.3V 9 : MCLR / 5V 10: Analog / Digital / PWM-2A 11: Analog / Digital / COM2-TX 12: Analog / Digital 13: Analog / Digital / COM2-RX 14: Analog / Digital / COM1-EN 15: Analog / Digital / COM1-TX 16: Analog / Digital / COM3-TX 17: Analog / Digital / COM3-RX 18: Analog / Digital 19: 3.3V (AVdd) 20: GND (AVss) 21: Analog / Digital 22: Analog / Digital / PWM-2B 23: Analog / Digital / INT3 / COUNT 24: Analog / Digital / SSD1963-WR 25: GND 26: 3.3V 27: Analog / Digital / SSD1963-RS 28: Analog / Digital / SSD1963-RESET 29: Analog / Digital / PWM-1B 30: Analog / Digital / PWM-1C 31: Oscillator 12MHz or 24MHz 32: Digital 33: USB Vbus 34: 3.3V 35: GND 36: USB D- 37: USB D+ 38: USBID 39: 3.3V 40: GND 41: Digital / 5V / KBD-CLK 42: Digital / 5V / KBD-DAT 43: Digital / 5V / I2C-SDA 44: Digital / 5V / I2C-SCK 45: Digital / 5V / SPI1-OUT 46: Digital / 5V / INT1 / COUNT 47: Digital / SPI2-IN 48: Digital / PWM-1A 49: Digital / 5V / SPI1-CLK 50: Digital / 5V / SPI1-IN 51: Digital / 5V / INT4 / COUNT 52: Digital / 5V / INT2 / COUNT 53: Digital / 5V 54: 3.3V 55: GND 56: 5V / Console-TX / COM4-TX 57: Digital / 5V / COM1-RX 58: Digital / 5V / SSD1963-D0 59: GND 60: 3.3V 61: Digital / 5V / SSD1963-D1 62: Digital / 5V / SSD1963-D2 63: Digital / 5V / SSD1963-D3 64: Digital / 5V / SSD1963-D4 (Micromite MZ) Pinout for 100-pin: 1 : Analog / Digital 2 : Analog / Digital 3 : Analog / Digital / SSD1963-D5 4 : Analog / Digital / SSD1963-D6 5 : Analog / Digital / SSD1963-D7 6 : Analog / Digital 7 : Analog / Digital 8 : Analog / Digital 9 : Analog / Digital 10: Analog / Digital / SPI2-CLK 11: Analog / Digital / SPI2-OUT 12: Analog / Digital 13: GND 14: 3.3V 15: MCLR 16: Analog / Digital / PWM-2A 17: Analog / Digital 18: Analog / Digital / SSD1963-RS 19: Analog / Digital / SSD1963-WR 20: Analog / Digital / COM2-TX 21: Analog / Digital 22: Analog / Digital / COM2-RX 23: Analog / Digital / COM1-EN 24: Analog / Digital / COM1-TX 25: Analog / Digital / COM3-TX 26: Analog / Digital / COM3-RX 27: Analog / Digital 28: Analog / Digital 29: Analog / Digital 30: 3.3V (AVdd) 31: GND (AVss) 32: Analog / Digital 33: Analog / Digital / PWM-2B 34: Analog / Digital / INT3 35: Analog / Digital 36: GND 37: 3.3V 38: Analog / Digital 39: Analog / Digital 40: Analog / Digital 41: Analog / Digital 42: Analog / Digital / SSD1963-RESET 43: Analog / Digital / PWM-1B 44: Analog / Digital / PWM-1C 45: GND 46: 3.3V 47: Analog / Digital 48: Analog / Digital 49: Oscillator 12MHz or 24MHz 50: Digital 51: USB Vbus 52: 3.3V 53: GND 54: USB D- 55: USB D+ 56: USBID 57: Digital 58: Digital 59: Digital 60: Digital 61: Digital 62: 3.3V 63: GND 64: Digital / 5V / KBD-CLK 65: Digital / 5V / KBD-DAT 66: Digital / 5V / I2C-SCK 67: Digital / 5V / I2C-SDA 68: Digital 69: Digital 70: Digital / 5V / SPI1-OUT 71: Digital / 5V / INT1 72: Digital / SPI2-IN 73: Digital / PWM-1A 74: 3.3V 75: GND 76: Digital / 5V / SPI1-CLK 77: Digital / 5V / SPI1-IN 78: Digital / 5V / INT4 79: Digital 80: Digital 81: Digital / 5V / INT2 82: Digital 83: 3.3V 84: GND 85: 5V / Console-TX / COM4-TX 86: Console-RX / COM4-RX 87: Digital / 5V / COM1-RX 88: Digital 89: Digital 90: Digital 91: Digital / 5V / SSD1963-D0 92: GND 93: 3.3V 94: Digital / 5V / SSD1963-D1 95: Digital 96: Digital 97: Digital 98: Digital / 5V / SSD1963-D2 99: Digital / 5V / SSD1963-D3 100: Analog / Digital / 5V / SSD1963-D4 http://rittle.org -------------- |
||||
panky![]() Guru ![]() Joined: 02/10/2012 Location: AustraliaPosts: 1114 |
Kon, Very well done and thanks. I particularly like the bootloader - back to the old Maximite days. Could you advise on the crossover between your 5.3 MZ software and Peter M's 5.3 software please? Specifically, which version of the MZ chip (the full Microchip P/N if you could) does your software run on? Have you and Peter discussed a "Universal" MZ software build that includes all the features that you have both created and very generously made available to all BackShedders? For Peter M - can you tell me if Kon's software would run on your 144 pin MZ board that WW is building? Thanks again to both of you for the great contributions, Doug. ... almost all of the Maximites, the MicromMites, the MM Extremes, the ArmMites, the PicoMite and loving it! |
||||
isochronic Guru ![]() Joined: 21/01/2012 Location: AustraliaPosts: 689 |
I can see at least some difference, in that (100 pin) pins 57/58 used to be COM3, which has moved to 25/26 ? I thought the "original pinout" for the 100 pin MZ was listed as the Extreme posts by matherp etc. |
||||
kiiid Guru ![]() Joined: 11/05/2013 Location: United KingdomPosts: 671 |
@panky, there was initial collaboration between myself and matherp to come up with a single pinout. I even suggested that we all work on a single version to implement all functions into one universal hex. That was refused. Currently there is no collaboration and no compatibility between the versions. Unfortunately. I am tying to stick to Geoff's original MX470 pinout to the maximum possible extent that the MZ chip allows. I have also supplied Geoff with the full project sources and he will be able to include whatever he finds useful to more people into his future official releases. My view is on simplicity and to keep away from including shiny but essentially useless functionality. That's why I have no interest in the 144-pin chip as I see it less user-friendly than the 64 and 100-pin packages. Hence I have never tested the MMZ software on such device and will be curious to find out what would happen if someone gives me such feedback. The chips required for MMZ is the same - PIC32MZ2048EFH064-250I/PT and PIC32MZ2048EFH100-250I/PF More generally speaking any chip PIC32MZ2048EFxnnn, where 'x' is whatever letter, and 'nnn' is '064' or '100'. Then the second part after the dash might not have '250' (which means 200MHz chip), and followed by I (industrial temperature range) or E (extended temperature range). The last two letters are the package: MR= 0.5mm pitch, 64-pin QFN PT= 0.5mm pitch 64-pin TQFP or 0.4mm pitch 100-pin TQFP PF= 0.5mm pitch 100-pin TQFP PH= 0.4mm pitch 144-pin TQFP PL= 0.5mm pitch 144-pin LQFP http://rittle.org -------------- |
||||
panky![]() Guru ![]() Joined: 02/10/2012 Location: AustraliaPosts: 1114 |
@kiiid Kon, Thanks very much for the detailed reply. I have a 144 pin MZ on order so will try it with your software and see what happens. I also intend to get a 100 pin MZ when it becomes available so I can run your software. Again thanks - there are a number of very usefull features you have developed that look interesting. Regards, Doug. ... almost all of the Maximites, the MicromMites, the MM Extremes, the ArmMites, the PicoMite and loving it! |
||||
![]() |
![]() |
The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |