Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 19:52 12 Nov 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 : Armmite L4: 5.05.09 with DOCUMENTATION!

     Page 1 of 2    
Author Message
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10572
Posted: 01:05pm 20 Mar 2019
Copy link to clipboard 
Print this post

Please find attached version 5.05.09

2019-03-20_225106_ArmmiteL4.zip

2019-03-20_235914_Armmite_L4_Manual.pdf

All reports of bugs and/or errors/omissions in the documentation are appreciated. If you are interested in the Armmite L4 do please have a look at all the differences compared to the Micromite that are documented in the manual. There is a lot that has been spread out over various threads that finally I have brought together.

New things in this release:

Support for STM32L496RGT6 64-pin chip 308K free flash memory and 256K RAM

POLYGON command: see this thread for an example program

DIFF function:
DIFF(adcpin1, adcpin2)
Returns the differential voltage between two pins set up as analogue inputs. The voltage will be in the range -VCC to VCC.
In the chip pinout listing in the manual ADC channels are identified with a channel number e.g. ANALOG_IN_1. The pin pairs must start with an odd number channel and then the next pin must be the even numbered channel one greater. As an example for the 64-pin chip:

[code]SETPIN 8,AIN
SETPIN 9,AIN
PRINT DIFF(8,9)[/code]

Both voltages on the pins must be in the absolute range 0 to VCC as with any normal analogue input
Edited by matherp 2019-03-21
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3470
Posted: 03:05pm 20 Mar 2019
Copy link to clipboard 
Print this post

Thanks very much for all of your work on this chip set. This makes for a very full range of chips and pinouts for mmbasic, with special features and inexpensive pre-built boards in the STM Nucleo set.

I see that the documentation says "The firmware should also run on the following processors ... STM32L476RGT6 ... But limited/no testing has been carried out."

Does this mean that the NUCLEO-64 STM32L476RG should work? Nucleo-L64

If so, wow--$15USD for 64 pins.

Also, what 8" LCD works with this?Edited by lizby 2019-03-22
PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10572
Posted: 03:16pm 20 Mar 2019
Copy link to clipboard 
Print this post

  Quote  Does this mean that the NUCLEO-64 STM32L476RG should work?


Yes it does but I'm not very confident in all aspects of peripheral support - needs more testing. I've swapped the processor out on my Nucleo-L476RG for a STM32L496RGT6 which has much more RAM (256KB available to Basic)


  Quote  Also, what 8" LCD works with this?


None, Use an Armmite H7 (NUcleo-L743ZI) if you want the bigger displays. The biggest display supported is the ILI9481 at 4"

Edited by matherp 2019-03-22
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3470
Posted: 05:32pm 20 Mar 2019
Copy link to clipboard 
Print this post

(Note the footer on each page of the manual says "Micromite eXtreme Manual".)
PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
sagt3k

Guru

Joined: 01/02/2015
Location: Italy
Posts: 313
Posted: 08:47pm 20 Mar 2019
Copy link to clipboard 
Print this post

Hi matherp
You're doing an exemplary job, the manual is wonderful.
Concerning LittleFS, is possibile to implement diskfree function or something similar that indicates how much free space or blocks remain free?
Thanks
Antonio
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3470
Posted: 01:16am 21 Mar 2019
Copy link to clipboard 
Print this post

On the 64-pinner, what is IC pin 2, C13, connector 5, pin 23?
PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
panky

Guru

Joined: 02/10/2012
Location: Australia
Posts: 1116
Posted: 01:23am 21 Mar 2019
Copy link to clipboard 
Print this post

Great work Peter, many thanks.

Re the 476 (and I guess the 496), does the firmware above work on these 2 or should we use the 476 special firmware you recently published in this thread?

panky

PS. Is there any specific areas of the 476 you would like tested?Edited by panky 2019-03-22
... almost all of the Maximites, the MicromMites, the MM Extremes, the ArmMites, the PicoMite and loving it!
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10572
Posted: 09:12am 21 Mar 2019
Copy link to clipboard 
Print this post

Thanks for the feedback. Minor update to the code relating to flash memory and manual fixes.

2019-03-22_060002_ArmmiteL4.zip

2019-03-21_190244_Armmite_L4_Manual.pdf

Changes:

New function to report free space on a flash memory chip

PRINT MM.FREE


Change to FORMAT command. You can now format a flash memory chip that isn't configured with OPTION FLASH
Syntax is:

FORMAT CSpinno


This solves a problem if the flash gets corrupted and stops the processor booting. The main firmware should be re-flashed and then the flash memory chip reformatted BEFORE configuring it.


  Quote  (Note the footer on each page of the manual says "Micromite eXtreme Manual".)


Fixed

  Quote  Concerning LittleFS, is possibile to implement diskfree function or something similar that indicates how much free space or blocks remain free?


Done

  Quote  On the 64-pinner, what is IC pin 2, C13, connector 5, pin 23?


Fixed in manual


  Quote  Re the 476 (and I guess the 496), does the firmware above work on these 2 or should we use the 476 special firmware you recently published in this thread?


Please use this firmware. Things to test are special peripheral functions like I2C, SPI, PWM, analogue, DAC. But beware of wiring on the Nucleo e.g. Pin A5 is connected to the green LED by default so the DAC2 won't work properly unless SB21 is removed.Edited by matherp 2019-03-23
 
lew247

Guru

Joined: 23/12/2015
Location: United Kingdom
Posts: 1702
Posted: 07:09am 22 Mar 2019
Copy link to clipboard 
Print this post

Thanks Peter, another outstanding job
The only request I'd like but I guess it's not essential would be a Typical Circuit like you did for the MM showing the pins that need to be connected to make it work and the external components that are essential
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10572
Posted: 08:18am 22 Mar 2019
Copy link to clipboard 
Print this post

  Quote  The only request I'd like but I guess it's not essential would be a Typical Circuit like you did for the MM showing the pins that need to be connected to make it work and the external components that are essential


This is given in the manual in the section on minimum circuits - just not as a drawing. One of the great things about the STM32L4 series is that it is so easy to wire - no VCAP to worry about. Just wire the power and GND pins, decouple each pair with 0.1uF, clock crystal with usual caps, pull BOOT0 pin low, pull RESET pin (NRST) high. That's it!
 
sagt3k

Guru

Joined: 01/02/2015
Location: Italy
Posts: 313
Posted: 08:55am 22 Mar 2019
Copy link to clipboard 
Print this post

Hi matherp
In future, is it possible to think (apart winbond flash) external uSD on STM32 with more flash as L452/L496?
It would be nice to be able assign a letter to every CS, A: as
Option flash Cs, A:
Option SDcard Cs, B:

Thanks
Antonio
 
circuit
Senior Member

Joined: 10/01/2016
Location: United Kingdom
Posts: 290
Posted: 12:53pm 22 Mar 2019
Copy link to clipboard 
Print this post

Congratulations, Peter, on an excellent package of firmware and documentation. This is very much appreciated. This really establishes the Micromite technology for these PICs in a very effective manner.
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10572
Posted: 10:16am 24 Mar 2019
Copy link to clipboard 
Print this post

Trivial fix for a bug that stopped I2C CLOSE working properly

2019-03-24_201532_ArmmiteL4.zip

Manual update giving additional information on the use of monochrome displays

2019-03-25_054342_Armmite_L4_Manual.pdf Edited by matherp 2019-03-26
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3470
Posted: 12:48am 25 Mar 2019
Copy link to clipboard 
Print this post

Can you provide a link for a 4" LCD per the manual: ILI9481 controller 480x320 pixel TFT, 3.5”, 4” with SPI I/F, RGB565?

PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3470
Posted: 01:17am 25 Mar 2019
Copy link to clipboard 
Print this post

In the manual: "REFESH When using buffered TFT drivers (all monochrome displays) this
command forces a screen update"

Should it be REFRESH?

In the text command, perhaps the manual should note that with a monochrome display, if "c" is 0 and "bc" is 1, the text will be inverted (e.g., white on black).

PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10572
Posted: 08:07am 25 Mar 2019
Copy link to clipboard 
Print this post

Please find attached manual update

2019-03-25_180609_Armmite_L4_Manual.pdf

Missing command added:
I2C CHECK addr

Runs a probe on address “addr”. MM.I2C is set to 0 if the
address responds and 1 if it doen’t

  Quote  In the manual: "REFESH When using buffered TFT drivers (all monochrome displays) this
command forces a screen update"


Thanks: corrected above

  Quote  In the text command, perhaps the manual should note that with a monochrome display, if "c" is 0 and "bc" is 1, the text will be inverted (e.g., white on black).


Added to the Display Support section


  Quote  Can you provide a link for a 4" LCD per the manual: ILI9481 controller 480x320 pixel TFT, 3.5”, 4” with SPI I/F, RGB565?


4" Edited by matherp 2019-03-26
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3470
Posted: 01:52pm 25 Mar 2019
Copy link to clipboard 
Print this post

>4"

Ah, ok--it's got pi headers. I was hoping for the 14-pin variety.

PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
sagt3k

Guru

Joined: 01/02/2015
Location: Italy
Posts: 313
Posted: 09:55am 26 Mar 2019
Copy link to clipboard 
Print this post

Hi matherp
I'm trying to understand more on litteFs on L4xx.
Can I use uSD also?
Are there spaces limitation to respect?
I have seen that is possible to mount litteFs partion on linux.
Thanks
Antonuo
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10572
Posted: 10:07am 26 Mar 2019
Copy link to clipboard 
Print this post

  Quote  I'm trying to understand more on litteFs on L4xx.
Can I use uSD also?
Are there spaces limitation to respect?


No the Armmite L4 only supports one of the three listed Winbond flash memory chips, 4Mb, 8Mb, or 16Mb

  Quote  I have seen that is possible to mount litteFs partion on linux.


I assume this is if littleFS is used on an SD card but is not relevant hereEdited by matherp 2019-03-27
 
vincenthimpe
Regular Member

Joined: 14/10/2018
Location: United States
Posts: 86
Posted: 03:16pm 27 Mar 2019
Copy link to clipboard 
Print this post

How is the timed sleep implemented ? are you using the RTC wakeup timer ?
Which clock domain : RTCclock with post divider or CLK_SPRE

The reason i'm asking : i want to use PC13 to control the power system under control of the wakeup mechanism.

basically :
in RTC_CR
set OSEL to 11 (wakeup output enabled)
set POL to 1 ( active high)
set RTC_OUT_RMP to 0 ( brings RTC_ALARM to PC13 )


the idea is the following:

when invoking SLEEP 10 :
PC13 goes low and the cpu goes to sleep for 10 seconds.
after the time has elapsed PC13 goes high and the cpu wakes up.
PC13 is controlled by the vbat power domain so it can toggle even if the main
power of the cpu is off.

The main regulators on the board ( VCC_digital and VCC_analog ) will be under
control of PC13. That way the processor can cut its own power supply ( and power
to all other stuff on the board ). As long as VBAT is present the system can restart itself : when an alarm comes PC13 goes high : the regulators spin up and the cpu comes out of sleep.

Are there commmands to manipulate the registers directly ( like peek and poke ). i want to try to implement this from the basic domain without having to dig into the C code and recompiling everytime.

If this can't be done i will resort to an external RTC chip to provide the periodic wakeup, but it would be nice to have the processor do this as it is capable to do it (provded registers are set up properly.

this could be an idea for future improvement.

SLEEP 10 : sleep 10 seconds . pc13 remains simple GPIO
SLEEP 10, LOW : sleep to seconds then make PC13 low (PC13 now under control or RTC)
SLEEP 10, HIGH : sleep 10 seconds then set PC13 high (PC13 now under control fo RTC)
SLEEP TILL <time> ,PC13
SLEEP TILL <time>,<date> , PC13

where time is format hh:mm:ss and date is format dd:mm

for example
SLEEP TILL 22:14:00
SLEEP TILL 10:00:00, 23:04

SLEEP TILL 22:14:00 , LOW
SLEEP TILL 10:00:00, 23:04 , HIGH


Edited by vincenthimpe 2019-03-29
 
     Page 1 of 2    
Print this page
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025