Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 07:05 23 May 2022 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 : About time the ArmmiteH7 got some TLC: V5.07.01 betas

     Page 1 of 2    
Author Message
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 6129
Posted: 05:18pm 10 Jan 2022
Copy link to clipboard 
Print this post

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: Australia
Posts: 21
Posted: 10:49pm 10 Jan 2022
Copy link to clipboard 
Print this post

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 States
Posts: 155
Posted: 10:49pm 10 Jan 2022
Copy link to clipboard 
Print this post

  matherp said  I've brought the ArmmiteH7 up-to-date with all the latest goodies


ArmmiteH7V5.07.01b0.zip


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 Kingdom
Posts: 6129
Posted: 08:24am 11 Jan 2022
Copy link to clipboard 
Print this post

  Quote  Does this have SETTICK PAUSE/RESUME?


Will include

  Quote  xAlso, can the Armmite F4 get some love too? (as time permits)


No RAM and FLASH full
 
Tinine
Guru

Joined: 30/03/2016
Location: United Kingdom
Posts: 1055
Posted: 09:30am 11 Jan 2022
Copy link to clipboard 
Print this post

@matherp

Much appreciated, Pete. H7 ROCKS!!!  
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 6129
Posted: 10:30am 11 Jan 2022
Copy link to clipboard 
Print this post

  Quote  Much appreciated, Pete. H7 ROCKS!!!  


Thanks - and agree - just a pity you can't buy the bloody thing
 
circuit
Senior Member

Joined: 10/01/2016
Location: United Kingdom
Posts: 116
Posted: 12:52pm 11 Jan 2022
Copy link to clipboard 
Print this post

  matherp said  
Thanks - and agree - just a pity you can't buy the bloody thing


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 Kingdom
Posts: 1055
Posted: 01:10pm 11 Jan 2022
Copy link to clipboard 
Print this post

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
Regular Member

Joined: 15/07/2016
Location: United States
Posts: 67
Posted: 11:07pm 12 Jan 2022
Copy link to clipboard 
Print this post

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: Australia
Posts: 63
Posted: 11:41am 13 Jan 2022
Copy link to clipboard 
Print this post

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 Kingdom
Posts: 2766
Posted: 11:54am 13 Jan 2022
Copy link to clipboard 
Print this post

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: Australia
Posts: 63
Posted: 12:04pm 13 Jan 2022
Copy link to clipboard 
Print this post

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: Australia
Posts: 63
Posted: 12:35pm 13 Jan 2022
Copy link to clipboard 
Print this post

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 Kingdom
Posts: 2766
Posted: 12:40pm 13 Jan 2022
Copy link to clipboard 
Print this post

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 Kingdom
Posts: 6129
Posted: 01:06pm 13 Jan 2022
Copy link to clipboard 
Print this post

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: Australia
Posts: 63
Posted: 12:49am 15 Jan 2022
Copy link to clipboard 
Print this post

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: Australia
Posts: 63
Posted: 06:22am 15 Jan 2022
Copy link to clipboard 
Print this post

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 Kingdom
Posts: 6129
Posted: 09:06am 15 Jan 2022
Copy link to clipboard 
Print this post

  Quote  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.


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: Australia
Posts: 63
Posted: 05:59am 22 Jan 2022
Copy link to clipboard 
Print this post

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 Kingdom
Posts: 6129
Posted: 08:27am 22 Jan 2022
Copy link to clipboard 
Print this post

  Quote  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.


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 2    
Print this page
© JAQ Software 2022