Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 16:02 07 Jul 2025 Privacy Policy
Jump to

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 MZ final v5.03.02

Author Message
kiiid

Guru

Joined: 11/05/2013
Location: United Kingdom
Posts: 671
Posted: 11:47pm 16 Feb 2017
Copy link to clipboard 
Print this post

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: Australia
Posts: 1114
Posted: 01:15pm 17 Feb 2017
Copy link to clipboard 
Print this post

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: Australia
Posts: 689
Posted: 01:51pm 17 Feb 2017
Copy link to clipboard 
Print this post

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 Kingdom
Posts: 671
Posted: 10:10pm 17 Feb 2017
Copy link to clipboard 
Print this post

@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

Edited by kiiid 2017-02-19
http://rittle.org

--------------
 
panky

Guru

Joined: 02/10/2012
Location: Australia
Posts: 1114
Posted: 12:28pm 18 Feb 2017
Copy link to clipboard 
Print this post

@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!
 
Print this page


To reply to this topic, you need to log in.

The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025