A | B | C | D | E | |
---|---|---|---|---|---|
1 | Smoothie v2 chip comparison | ||||
2 | |||||
3 | ✓ | Feature | LPC4330 | STM32H7 | Comment |
4 | Multiple cores | Yes | Yes | It is possible the Semaphore on STM would help with implementing on-second-core step generation | |
5 | Main core type | M4 | M7 | https://en.wikipedia.org/wiki/ARM_Cortex-M#Cortex-M7. | |
6 | Main core clock (Mhz) | 204 | 400 | STM Has a CPU instruction cache of 16+16kB | |
7 | Second core type | M0 | M4 | https://en.wikipedia.org/wiki/ARM_Cortex-M#Cortex-M4 | |
8 | Second core clock (Mhz) | 204 | 200 | ||
9 | Floating Point Unit | 32 bit (single precision) | 64 bit (double precision ) | See this link | |
10 | RAM (kiloBytes) | 164 | 1024 | Note the extra RAM can also be used to run code the same way as Flash. STM even has Tightly Coupled Memory, special RAM for time-critical code, perfect for step generation code to run super-extra fast. | |
11 | In-chip flash (kiloBytes) | 2048 | |||
12 | On-board flash (kiloBytes) | 8000 | 8000 QSPI | LPC with external flash: slower code access, extra cost/complexity/pin usage compared to STM. Still way faster than Smoothie v1. | |
13 | GPIO pins | 164 | 168 | ||
14 | Interrupt-capable GPIO | 8 | 16 | STM: Any GPIO can be an interrupt but only 16 interrupts are available | |
15 | Open-Drain-capable GPIO | Possibly with a trick | Yes | https://en.wikipedia.org/wiki/Open_collector | |
16 | Ethernet | Yes, 10/100 | Yes, 10/100 | ||
17 | USB HS OTG (Host+Client) | 1 | 1 ( with additional PHY ) | USB2 / High Speed, 480Mb/s | |
18 | USB FS OTG (Host+Client) | 1 | 1 | USB1 / Full Speed, 12Mb/s | |
19 | ADC peripherals | 2x 10bit | 3x 16bit | ||
20 | ADC Channels per peripheral | 8 | 12 | ||
21 | Total ADC pins | 16 | 36 | Used for example to read thermistors. On v2, also monitor input voltages. | |
22 | ADC data rate | 400k/s | 3600k/s | ||
23 | DACs | 1x 10bit | 2x 12bit | Outputs a voltage between 0 and 5v. Used for example to control laser power supplies as an alternative to PWM signals | |
24 | UART peripherals | 1 | 4 | Serial ports, used for example on v1 as the "Serial" debugging port | |
25 | USART peripherals | 3 | 4 | USART is a Synchronous UART | |
26 | Modbus functions | 1 | 8 | How many of the UART/USARTs above also have Modbus capabilities | |
27 | CAN peripherals | 2 | 2 | ||
28 | SPI peripherals | 3 | 6 | LPC does up to 16 bit frames, STM up to 32 bits on 3 SPI ports, 16 on the others | |
29 | I2C peripherals | 2 | 4 | Fast (1Mhz): LPC 1 / STM 4 | |
30 | I2S peripherals | 2 | 4 | I2S is for sound | |
31 | Single Wire peripheral SWPMI | 1 | wikipedia.org/Single_Wire_Protocol not wikipedia.org/1-Wire | ||
32 | SD Card Interface | SDIO | 2x SDIO | Much faster than the SPI interface used to talk to the SD card on Smoothieboard v1 (50KB/s). In early testing on v2-prime-beta2, SD card speeds over 1MB/s were measured | |
33 | SD Card Speed | 52 Mhz | 208Mhz | STM describes up to 208MB/s for the 8-bit mode, in theory. In practice, we have seen faster speeds on STM32H7 than LPC4330, but the difference is not clearly measured yet. | |
34 | DMA Controllers | 1 | 2 | DMA transfers data from one place in RAM/peripherals to another without keeping the cores busy | |
35 | DMA Streams per Controller | 8 | 8 | ||
36 | DMA Channels per Stream | 16 | 115 | ||
37 | MDMA Controllers (High Speed DMA) | 1 | |||
38 | Chip dimensions (BGA), millimeters | 16x16 | 13x13 | ||
39 | Hardware semaphores (bits) | 32 | |||
40 | 32 bit timers | 2 State Configurable | 1 High Resolution, 2 General Purpose | STM: 4 outputs per General Purpose | |
41 | 16 bit timers | 4 General Purpose, 1 SysTick | 2 Advanced Control, 10 General Purpose, 1 SysTick | STM: Timers can be synchronized, their large number opens the possibility of trying to use one timer per axis. | |
42 | Independent PWM outputs | 4 | 20 | ||
43 | Quadrature-encoder-reading-capable timers | 1 | 4 | ||
44 | Watchdogs | 1 | 2 | ||
45 | |||||
46 | |||||
47 | |||||
48 | |||||
49 | |||||
50 | |||||
51 | |||||
52 |