![]() |
Forum Index : Microcontroller and PC projects : About time the ArmmiteH7 got some TLC: V5.07.01 betas
Page 1 of 4 ![]() ![]() |
|||||
Author | Message | ||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10064 |
I've brought the ArmmiteH7 up-to-date with all the latest goodies ArmmiteH7V5.07.01b0.zip More speed improvements plus Now includes the following new commands and sub-commands INV CALL MID$ SORT CSUB END CSUB CAT BITBANG MEMORY SET MEMORY COPY LOAD JPG The following functions BOUND CHOICE CALL JSON$ KEYDOWN FORMAT$ BASE$ and one more operator INV You can check the Picomite and/or CMM2 manuals for details. I will do a H7 manual update eventually. I've tested with a reasonable range of programs on both the older Nucleo-H743ZI and the new Nucleo-H743-ZI2 but of course this is a beta so I await bug reports. Performance is now just below CMM2 which has some additional tweaks which can't work on the normal H7. CSUBs have been tested at a simplistic level. Here is the relevant header file ARMH7CFunctions.zip See this thread for how to create them. Here is a simple one to get you going a=10 b=20 swap a,b Print a,b c$="0123456789" d$="" strrev c$,d$ Print d$ End CSub swap 00000000 E9D1B430 E9D02300 E9C04500 E9C12300 BC304500 BF004770 End CSub ' CSub strrev 00000000 700B7803 4403B133 2901F813 2F01F801 D1F94283 BF004770 End CSub #define MMFLOAT double void swap(long long int *a,long long int *b){ long long int c; c=*a; *a=*b; *b=c; } void strrev(unsigned char in[], unsigned char out[]) { unsigned int i; unsigned int len; //MMBasic stores the length of the string in the //first,0th,byte len=in[0]; //Set the length of the output string out[0]=len; //Do the reverse copy for(i=1;i<(len+1);i++){ out[i]=in[len-i+1]; } //and return the length of the string } NB: As with the last release there is something odd about programming the H7 using drag and drop and Cube programmer If you have issues program this version first ArmmiteH7.zip Then full chip erase, then program the new version, then click reset. I know this makes no sense but it works ![]() Current out-of-date manual Armmite H7 Manual.pdf Edited 2022-01-11 03:53 by matherp |
||||
GerryL Newbie ![]() Joined: 24/01/2019 Location: AustraliaPosts: 36 |
Thanks for this Peter, greatly appreciate the ability to now do CSUB's on the H7. Gerry |
||||
flasherror Senior Member ![]() Joined: 07/01/2019 Location: United StatesPosts: 159 |
Does this have SETTICK PAUSE/RESUME? Also, can the Armmite F4 get some love too? (as time permits) Edited 2022-01-11 08:50 by flasherror |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10064 |
Will include No RAM and FLASH full |
||||
Tinine Guru ![]() Joined: 30/03/2016 Location: United KingdomPosts: 1646 |
@matherp Much appreciated, Pete. H7 ROCKS!!! ![]() |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10064 |
Thanks - and agree - just a pity you can't buy the bloody thing ![]() |
||||
circuit Senior Member ![]() Joined: 10/01/2016 Location: United KingdomPosts: 268 |
A pity indeed! I bought one, found it to be excellent and most useful, went to buy another and met with utter disappointment! It seems that this was a rather short-lived product. Anyway, as one of the relatively few owners of this excellent board, thank you for spending time on this much appreciated update. |
||||
Tinine Guru ![]() Joined: 30/03/2016 Location: United KingdomPosts: 1646 |
They are available on Aliexpress at inflated prices like 50 quid. One supplier claims almost 10,000 in stock. I checked all the UK vendors yesterday and one of them is showing April 2022. I wonder if it would work out to have, maybe a stripped-down version made by JLCPCB? The Chinese appear to have the chips. |
||||
gadgetjack Senior Member ![]() Joined: 15/07/2016 Location: United StatesPosts: 169 |
I dug out the H7 board and re-loaded with the new release. It works fine. I was wondering if there are any games that will run on this board. I have tried several of the CMM2 games and get way too many errors for my old mind to correct. |
||||
HardingJohn![]() Regular Member ![]() Joined: 28/07/2017 Location: AustraliaPosts: 78 |
Thanks Peter. I am lucky in that I had purchased a few STM32H743VIT6U chips. These are the newer ver V 480Mhz. I just could not get the 5.07b0016 to run on it. I think it was because I was using Stlink V2. I will change to using the USB port on the chip to load your latest H7 version and see if that works. The WeAct board I asked about uses this same chip and they appear to have stock. It would be quite a useful little board. Would need some pin assignment to suit the 0.96 inch display and camera port. Would you be able to have a quick look and see if it would take a lot of work or not. Thanks again. Just know enough to get me in trouble, but not quite enough to get me out. |
||||
JohnS Guru ![]() Joined: 18/11/2011 Location: United KingdomPosts: 3998 |
The code expects a STM32H743IIT6 IIRC, with extra RAM etc. This shortage of CPU chips is a pain!! Let's hope the VIT is very like the IIT. John Edited 2022-01-13 21:59 by JohnS |
||||
HardingJohn![]() Regular Member ![]() Joined: 28/07/2017 Location: AustraliaPosts: 78 |
No ArmmiteH7 is for the 144 pin STM32H743VI chip. Ver Y was 400Mhz in Nucleo STM32H743VI board with Stlink V2 and ver V 480Mhz was used in the Nucleo STM32H743VI2 board along with StlinkV3. Just know enough to get me in trouble, but not quite enough to get me out. |
||||
HardingJohn![]() Regular Member ![]() Joined: 28/07/2017 Location: AustraliaPosts: 78 |
My apologies, got my V and Z mixed up. The chip is the STM32H743ZIT6 144 pin ver V 480Mhz that I am working with Sorry Just know enough to get me in trouble, but not quite enough to get me out. |
||||
JohnS Guru ![]() Joined: 18/11/2011 Location: United KingdomPosts: 3998 |
I thought the STM32H743ZIT6 was already supported if you load the right firmware (Armmite H7). Maybe use a different tool (OpenOCD/texane/...). The weact uses the VIT chip I gather. John Edited 2022-01-13 22:52 by JohnS |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10064 |
The We-Act board uses a 100-pin chip vs 144 for the Nucleo. In addition by having lots of onboard components it compromises pin usage selection. I did a detailed post here as to how to add a different chip to a port. As I've said before I am not going to support this board but will share the Armmite H7 source if anyone wants to take it on |
||||
HardingJohn![]() Regular Member ![]() Joined: 28/07/2017 Location: AustraliaPosts: 78 |
Thanks Peter, I wouldn't mind having a go at porting the 100 pin vi chip. I also have support from a senior C code developer at work as my C code skills are not great. I have successfully written, compiled and added c-subs, so am excited now that I can implement them with the 144 pin STM32H743ZI chip. Can you send me the source code and any suggestions on adding the driver for the 0.96 inch display and the two 8 mb flash chips. Thanks again. John.microsolar@gmail.com Just know enough to get me in trouble, but not quite enough to get me out. |
||||
HardingJohn![]() Regular Member ![]() Joined: 28/07/2017 Location: AustraliaPosts: 78 |
Definitely come to the conclusion that the only way I might be able to program the STM32H743ZI ver V 480Mhz with the new faster version 5.07.01b0 and get it run is to use the STlink V3 programmer. Nothing else has worked. Tried the ArmmiteH7 first, powered down and then the 5.07.01b0 and this did not work either. Everything loads fine, just won't run. What is interesting is that I have no trouble getting the STM32H743ZI ver V 480Mhz to run using the slower 5.05.11 firmware. I can of course get the 5.07.01b0 firmware to run on the older ver Y 400Mhz chip. It does not appear to be possible to use the USB port of the STM32H743ZI ver V to load the firmware in the same manner as can be done with the STM32H743II 176pin chip. Is there something going on with the new faster firmware that prevents an STlink V2 from programming the new ver V 480Mhz chip? Hoping for some help? Should I order a STlink V3 programmer? Just know enough to get me in trouble, but not quite enough to get me out. |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10064 |
I've set up a dropbox share with the source. You can look at the PicoMite source for ideas on 0.96" display. Note Gerry (disco4now) also has asked for access so the two of you should liaise to avoid duplicate work. |
||||
HardingJohn![]() Regular Member ![]() Joined: 28/07/2017 Location: AustraliaPosts: 78 |
Peter, I have started on the port to the WeAct STM32H743VI board. Luckily the WeAct boards SPI 0.96" (160 x 80) display has a ST7735 chip, so hopefully changing the Hres & Vres in main.c should get it going. I also had to initialise SPI4 for it and direct it to this new spi port. The camera is the same OV7670 so should be fine with the new IO pin assignments. DAC1 had to be changed and initialised to DAC2 and nearly all the GPIO port/pin assignments had to be changed, so it has been a lot of work. I had to make it a unique port for a WeAct board as with only 100 pins and many already hardware assigned, it was too messy to combine the porting with a 100 pin chip only option. Back to my other problem: I think I know why the STM32H743ZI ver V chip wont run the new fast armmiteH7 ver 5.07, yet the old 5.05 runs fine. My board uses a 25Mhz crystal while the Nucleo ZI2 board with the same Ver V chip uses an 8Mhz clock from the STlink V3 programmer. There should be a define to change this to suit whether a 25Mhz crystal for Ver Y chips in Nucleo ZI board or the 8Mhz clock is used for the Nucleo ZI2 board with the Ver V chip. In STM32H7xx_HAL_H the Ver V chip is defined as REV_ID_V, but I can't see where the HSE_VALUE is changed to suit the board. I decided to just change it in STM32H7xx_HAL_CONF_H to ((uint32_t)25000000) instead 8000000. Does this make sense or am I looking up the wrong tree? I still need to work out using the QSPI flash chip and the SPI Flash chip. I am guessing I need to load and initialise the drivers from the STM32H7XX_HAL in STMCubeIDE. If you can give me access to examples on how this was done in the CMM2 would be a big help. Next I need to setup the toolchain to compile the new WeAct port. Some help with how to do this would be great. Would it be possible for you to add the 25Mhz crystal HSE_VALUE option for the 5.07.01b0 version if you think this is why it won't run on my board? Thanks again for everything. Just know enough to get me in trouble, but not quite enough to get me out. |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10064 |
The 25MHz crystal is for the network I/F chip. The processor xtal isn't supplied on the Nucleo (labelled X3). Both versions are clocked from their respective ST-links @ 8MHz IMHO a dedicated port for this one board is a mistake and a waste of effort. By tying everything to one H/W layout it becomes unusable as a general 100-pin version and it will then be entirely up to you to support it and you will need Geoff's agreement to distribute the firmware. This was my argument against this board in the first place. Too many onboard peripherals that aren't generally very useful (e.g. toy display). There is no support for QSPI on the CMM2 - you are on your own with this. Edited 2022-01-22 18:42 by matherp |
||||
Page 1 of 4 ![]() ![]() |
![]() |
![]() |
The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |