You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Add STM32F030 support.
This means we can't use 32-bit TIM2 (F030 doesn't have it), so we use
systick-monotonic to build a monotonic timer out of the SysTick instead.
Also bumps up to defmt 0.3.
Note that in the above table, the UART signals are wired as _Data Terminal Equipment (DTE)_ (i.e. like a PC, not like a Modem). Connect the NMBC *UART Transmit Output* pin to the *Input* pin of something like an FTDI TTL-232R-3V3 cable.
63
-
64
-
This design should also be pin-compatible with the following SoCs (although this firmware may need changes):
65
-
66
-
* STM32F042K4Tx
67
-
* STM32F042K6Tx
68
-
* STM32L071KBTx
69
-
* STM32L071KZTx
70
-
* STM32L072KZTx
71
-
* STM32L081KZTx
72
-
* STM32L082KZTx
73
-
74
-
Note that not all STM32 pins are 5V-tolerant, and the PS/2 protocol is a 5V open-collector system, so ensure that whichever part you pick has 5V-tolerant pins (marked `FT` or `FTt` in the datasheet) for the PS/2 signals. All of the parts above _should_ be OK, but they haven't been tested. Let us know if you try one!
25
+
The NBMC firmware is designed to run on an ST Micro STM32F0 (STM32F031K6T6) microcontroller, as fitted to a [Neotron Pico](https://github.com/neotron-compute/neotron-pico).
26
+
27
+
See the [board-specific README](./neotron-bmc-pico/README.md)
75
28
76
29
### Nucleo-F401
77
30
78
-
The NBMC also supports running on an ST Nucleo-F401RE, for development and debugging purposes. The STM32F401RET6U MCU has:
79
-
80
-
* 32-bit Arm Cortex-M4 Core
81
-
* 3.3V I/O (5V tolerant)
82
-
* 512 KiB Flash
83
-
* 96 KiB SRAM
84
-
* LQFP64 package (10 * 10 mm)
85
-
86
-
| CPU Pin | Nucleo-64 Pin | Name | Signal | Function |
Note that in the above table, the UART signals are wired as _Data Terminal Equipment (DTE)_ (i.e. like a PC, not like a Modem). Connect the NMBC *UART Transmit Output* pin to the *Input* pin of something like an FTDI TTL-232R-3V3 cable.
47
+
48
+
This hardware design should also be pin-compatible with the following SoCs (although this firmware may need changes):
49
+
50
+
* STM32F042K4Tx
51
+
* STM32F042K6Tx
52
+
* STM32L071KBTx
53
+
* STM32L071KZTx
54
+
* STM32L072KZTx
55
+
* STM32L081KZTx
56
+
* STM32L082KZTx
57
+
58
+
Note that not all STM32 pins are 5V-tolerant, and the PS/2 protocol is a 5V open-collector system, so ensure that whichever part you pick has 5V-tolerant pins (marked `FT` or `FTt` in the datasheet) for the PS/2 signals. All of the parts above _should_ be OK, but they haven't been tested. Let us know if you try one!
9
59
10
60
## Build Requirements
11
61
@@ -14,12 +64,24 @@ TODO: copy here from main Readme?
14
64
2. The `thumbv6m-none-eabi` target
15
65
- run `rustup target add thumbv6m-none-eabi`
16
66
3.`probe-run`
17
-
- run `cargo install probe-run` from your `$HOME` dir (not this folder!)
67
+
- run `cargo install probe-run`
18
68
4.`flip-link`
19
-
- run `cargo install flip-link` from your `$HOME` dir (not this folder!)
69
+
- run `cargo install flip-link`
20
70
21
-
Then to build and flash, connect a probe supported by probe-rs (such as a SEGGER J-Link, or an ST-Link) and run:
71
+
Then to build and flash for an STM32F031K6T6, connect a probe supported by probe-rs (such as a SEGGER J-Link, or an ST-Link) and run:
22
72
23
73
```
24
-
$ cargo run --release
25
-
```
74
+
$ cargo run --release --features stm32f031
75
+
```
76
+
77
+
For an STM32F030K6T6, run:
78
+
79
+
80
+
```
81
+
$ cargo run --release --features stm32f030x6
82
+
```
83
+
84
+
## Licence
85
+
86
+
This source code as a whole is licensed under the GPL v3. Third-party crates are covered by their respective licences.
0 commit comments