ARMMite H7 Pin Aliases

Modified on 2019/02/20 20:19 by lizby — Categorized as: ARMMite, Debug, Electronics, Environment, Hardware, Program Flow, Program Management

The ARMMite H7 is a new MicroMite running MMBasic on the powerful STM32H743ZI and STM32H753ZI MicroController. You can grab the complete firmware and join the discussion here: backshed forums. The previous discussion is 18 pages(!) but worth reading to get the full story, but bear in mind it has been superseded by the former and is no longer updated:old thread

It seems a popular way of utilizing this processor for small production/hobbyist is ST's Nucleo evaluation board. There are several suppliers but Farnell/Element14 seem to be well priced with good availability. Using the board is simplicity itself and the familiar environment of MMBasic is a joy, clocked at 400MHz it is very quick and with a half a megabyte each of Flash and RAM it is unlikely to place many constraints on your project.

The development board mentioned above comes with two sets of header pins, the outer set (CN11 & CN12) break-out all the microcontroller pins and the inner set (CN7, CN8, CN9 & CN10) is specifically arranged to take Arduino shield boards (love 'em or hate 'em, they are ubiquitous and can provide a quick route to a working project). These Arduino pins are referred to by both the standard Arduino Notation (D3, A0 etc...) and the Connector_pin e.g. CN10_12, CN9_1 - Note, not all pins have an Arduino counterpart, e.g. PF5 does, PF6 does not. The code below is boiled out of TassyJim's excellent spreadsheet here and you should reference that to find any special functions associated with a given pin.

MMBasic uses the physical pin number of the processor to interact with the outside world but these are not referenced on the above board. The below include file maps the processor pin names (e.g.PA0) and the outer connector name (e.g. CN11_28) so you can use ST terminology or the connector pin as names in your code. The mapping ensures MMBasic talks to the correct pin.

Example:

SetPin PA0,DIN,PULLUP
x=Pin(PA0)

is equivalent to

SetPin 34,DIN,PULLUP
x=Pin(34)

but much easier to understand. Simply cut and paste the below code somewhere near the top of your program.

	Const PE2=1,D56=1,CN9_14=1,CN11_46=1
	Const PE3=2,D60=2,CN9_22=2,CN11_47=2
	Const PE4=3,D57=3,CN9_16=3,CN11_48=3
	Const PE5=4,D58=4,CN9_18=4,CN11_50=4
	Const PE6=5,D59=5,CN9_20=5,CN11_62=5
	Const PC13=7,CN11_23=7
	Const PC14=8,CN11_25=8
	Const PC15=9,CN11_27=9
	Const PF0=10,D68=10,CN9_21=10,CN11_53=10
	Const PF1=11,D69=11,CN9_19=11,CN11_51=11
	Const PF2=12,D70=12,CN9_17=12,CN11_52=12
	Const PF3=13,A3=13,CN9_7=13,CN12_58=13
	Const PF4=14,A8=14,CN10_11=14,CN12_38=14
	Const PF5=15,A4=15,CN9_9=15,CN12_36=15
	Const PF6=18,CN11_9=18
	Const PF7=19,D62=19,CN9_26=19,CN11_11=19
	Const PF8=20,CN11_54=20
	Const PF9=21,D63=21,CN9_28=21,CN11_56=21
	Const PF10=22,A5=22,CN9_11=22,CN12_42=22
	Const PH0=23,CN11_29=23
	Const PH1=24,CN11_31=24
	Const PC0=26,A1=26,CN9_3=26,CN11_38=26
	Const PC1=27,CN11_36=27
	Const PC2=28,A7=28,CN10_9=28,CN11_35=28
	Const PC3=29,A2=29,CN9_5=29,CN11_37=29
	Const PA0=34,D32=34,CN10_29=34,CN11_28=34
	Const PA1=35,CN11_30=35
	Const PA2=36,CN12_35=36
	Const PA3=37,A0=37,CN9_1=37,CN12_37=37
	Const PA4=40,D24=40,CN7_17=40,CN11_32=40
	Const PA5=41,D13=41,CN7_10=41,CN12_11=41
	Const PA6=42,D12=42,CN7_12=42,CN12_13=42
	Const PA7=43,D11=43,CN7_14=43,CN12_15=43
	Const PC4=44,CN12_34=44
	Const PC5=45,CN12_6=45
	Const PB0=46,D33=46,CN10_31=46,CN11_34=46
	Const PB1=47,A6=47,CN10_7=47,CN12_24=47
	Const PB2=48,D27=48,CN10_15=48,CN12_22=48
	Const PF11=49,CN12_62=49
	Const PF12=50,D8=50,CN7_20=50,CN12_59=50
	Const PF13=53,D7=53,CN10_2=53,CN12_57=53
	Const PF14=54,D4=54,CN10_8=54,CN12_50=54
	Const PF15=55,CN12_60=55
	Const PG0=56,CN11_59=56
	Const PG1=57,D64=57,CN9_30=57,CN11_58=57
	Const PE7=58,D41=58,CN10_20=58,CN12_44=58
	Const PE8=59,D42=59,CN10_18=59,CN12_40=59
	Const PE9=60,D6=60,CN10_4=60,CN12_52=60
	Const PE10=63,D40=63,CN10_24=63,CN12_47=63
	Const PE11=64,D5=64,CN10_6=64,CN12_56=64
	Const PE12=65,D39=65,CN10_26=65,CN12_49=65
	Const PE13=66,D3=66,CN10_12=66,CN12_55=66
	Const PE14=67,D38=67,CN10_28=67,CN12_51=67
	Const PE15=68,CN12_53=68
	Const PB10=69,D36=69,CN10_32=69,CN12_25=69
	Const PB11=70,D35=70,CN10_34=70,CN12_18=70
	Const PB12=73,D19=73,CN7_7=73,CN12_16=73
	Const PB13=74,D18=74,CN7_5=74,CN12_30=74
	Const PB14=75,CN12_28=75
	Const PB15=76,D17=76,CN7_3=76,CN12_26=76
	Const PD8=77,CN12_10=77
	Const PD9=78,CN11_69=78
	Const PD10=79,CN12_65=79
	Const PD11=80,D30=80,CN10_23=80,CN12_45=80
	Const PD12=81,D29=81,CN10_21=81,CN12_43=81
	Const PD13=82,D28=82,CN10_19=82,CN12_41=82
	Const PD14=85,D10=85,CN7_16=85,CN12_46=85
	Const PD15=86,D9=86,CN7_18=86,CN12_48=86
	Const PG2=87,D49=87,CN8_14=87,CN11_42=87
	Const PG3=88,D50=88,CN8_16=88,CN11_44=88
	Const PG4=89,CN12_69=89
	Const PG5=90,CN12_68=90
	Const PG6=91,CN12_70=91
	Const PG7=92,CN12_67=92
	Const PG8=93,CN12_66=93
	Const PC6=96,D16=96,CN7_1=96,CN12_4=96
	Const PC7=97,D21=97,CN7_11=97,CN12_19=97
	Const PC8=98,D43=98,CN8_2=98,CN12_2=98
	Const PC9=99,D44=99,CN8_4=99,CN12_1=99
	Const PA8=100,CN12_23=100
	Const PA9=101,CN12_21=101
	Const PA10=102,CN12_33=102
	Const PA11=103,CN12_14=103
	Const PA12=104,CN12_12=104
	Const PA13=105,CN11_13=105
	Const PA14=109,CN11_15=109
	Const PA15=110,D20=110,CN7_9=110,CN11_17=110
	Const PC10=111,D45=111,CN8_6=111,CN11_1=111
	Const PC11=112,D46=112,CN8_8=112,CN11_2=112
	Const PC12=113,D47=113,CN8_10=113,CN11_3=113
	Const PD0=114,D67=114,CN9_25=114,CN11_57=114
	Const PD1=115,D66=115,CN9_27=115,CN11_55=115
	Const PD2=116,D48=116,CN8_12=116,CN11_4=116
	Const PD3=117,D55=117,CN9_10=117,CN11_40=117
	Const PD4=118,D54=118,CN9_8=118,CN11_39=118
	Const PD5=119,D53=119,CN9_6=119,CN11_41=119
	Const PD6=122,D52=122,CN9_4=122,CN11_43=122
	Const PD7=123,D51=123,CN9_2=123,CN11_45=123
	Const PG9=124,D0=124,CN10_16=124,CN11_63=124
	Const PG10=125,CN11_66=125
	Const PG11=126,CN11_70=126
	Const PG12=127,CN11_65=127
	Const PG13=128,CN11_68=128
	Const PG14=129,D1=129,CN10_14=129,CN12_61=129
	Const PG15=132,CN11_64=132
	Const PB3=133,D23=133,CN7_15=133,CN12_31=133
	Const PB4=134,D25=134,CN7_19=134,CN12_27=134
	Const PB5=135,D22=135,CN7_13=135,CN12_29=135
	Const PB6=136,D26=136,CN10_13=136,CN12_17=136
	Const PB7=137,CN11_21=137
	Const PB8=139,D15=139,CN7_2=139,CN12_3=139
	Const PB9=140,D14=140,CN7_4=140,CN12_5=140
	Const PE0=141,D34=141,CN10_33=141,CN12_64=141
	Const PE1=142,CN11_61=142

There is a backpack for various displays and other devices--see this thread: H7 Backpack

MMBasic source is available to be downloaded (after you have completed the signin process): MMBasic Source

There are at least three ways to flash mmbasic onto the Nucleo board. The easiest seems to be to copy the H7 mmbasic.bin file to the drive which is configured on your PC when the board is plugged in via USB/serial cable (copy and paste). Then if you connect to the serial port with TeraTerm or puTTY or MMEdit, you should get the ">" prompt.