Conversation
|
@benpicco I've tried this PR on the board, |
9146024 to
83f27ca
Compare
|
Copy & paste error… |
|
Now USB is also working! |
|
There is a strange persistence issue though. There are two explanations that come to mind
I somehow suspect the latter because even when I add void pre_startup(void)
{
gpio_init(LED0_PIN, GPIO_OUT);
LED0_ON;
}(and disble |
|
Turns out the bootloader doesn't require any ROM offset. With |
ed83874 to
c1c80c8
Compare
|
Looks like the |
9504dbc to
ddcdc16
Compare
ddcdc16 to
0e02dff
Compare
|
Btw: I think I have one of these as well as the F401 variant. Feel free to ping me, if testing/reviewing is needed. However, I got rid of the bootloader as I just used the matching nucleo-f* board to flash RIOT on it. But now that |
|
@maribu This should already be in a good state, the only thing I need to figure out is how to get rid of those USB ID warnings when using USB for stdio by default. |
663f9d0 to
a17caa4
Compare
maribu
left a comment
There was a problem hiding this comment.
For consistency, please rename the board to all lowercase (weact-f411ce).
I tested the following:
- Flashing via dfu-util
- stdio via USB
- LED / button definitions
- RTC conf
- ADC conf
- i2c conf
- PWM (Tested only PA15 using
tests/periph_pwm. It seems the duty cycle is inverted - SPI config (not tested yet)
- UART config (not tested yet)
|
Btw: Care to add an MTD conf for the SPI Flash on the un-populated U3 footprint on the back? (The modules should still be pulled in manually, as the user would have to solder in the flash. But having the config in place would be a super nice addition.) |
b8ccf05 to
96c8cc4
Compare
Added them. Unfortunately RIOT doesn't detect the chip size automatically yet based on the JDEC ID, but that shouldn't be too hard to fix. I took the timing of the AT25SF041 which was in stock at Segor, but since those are lower bounds, any flash should work. (IMHO we should just use sensible defaults if entries in |
96c8cc4 to
5110d83
Compare
I think that's more a problem with the STM32 PWM driver than with the board config |
3f50ddf to
1bdf72e
Compare
|
Rebased to the stm32 merge. |
b3b6a12 to
4399ba0
Compare
|
As for SPI, I used this to test the #define NRF24L01P_NG_PARAM_SPI SPI_DEV(1)
#define NRF24L01P_NG_PARAM_CS GPIO_PIN(PORT_B, 12)
#define NRF24L01P_NG_PARAM_CE GPIO_PIN(PORT_A, 8)
#define NRF24L01P_NG_PARAM_IRQ GPIO_PIN(PORT_A, 9) |
boards/weact-f411ce/doc.txt
Outdated
| | Frequency | up to 100MHz | | ||
| | FPU | yes | | ||
| | Timers | 8 (2x watchdog, 1 SysTick, 6x 16-bit) | | ||
| | ADCs | 1x 12-bit | | ||
| | UARTs | 3 | | ||
| | SPIs | 5 | | ||
| | I2Cs | 3 | | ||
| | RTC | 1 | | ||
| | Vcc | 2.0V - 3.6V | | ||
| | Datasheet | [Datasheet](https://www.st.com/resource/en/datasheet/stm32f411ce.pdf) | | ||
| | Reference Manual | [Reference Manual](https://www.st.com/content/ccc/resource/technical/document/reference_manual/9b/53/39/1c/f7/01/4a/79/DM00119316.pdf/files/DM00119316.pdf/jcr:content/translations/en.DM00119316.pdf) | |
There was a problem hiding this comment.
Mind to align the left column of the table? (The links in the right column are too long to allow for consistent alignment there.)
|
Updated testing state:
If you want this in swiftly, you could drop the UART 2 config. (Can still be added and fixed later on.) |
|
UART is strange, I just copied that from |
maribu
left a comment
There was a problem hiding this comment.
ACK. Thanks for adding this :-)
The WeAct-F411CE is a blackpill-like board with a STM32F411CE. It can be flashed using the vendor-provided bootloader.
df232c3 to
b20ec93
Compare
I sadly have none of these to check there as well. I can run a second round of testing for it later on the WeAct to rule out a flanky test setup and human error. But let's get this is first; this will make my life easier when testing the |
|
@maribu I have a branch for the F401 board too, but it sounds like you've also already flashed RIOT onto it. Mine will get stuck if I enable the 25 MHz HSE oscillator and I can't get into the DFU bootloader - maybe this is related and it's just a case of broken hardware. CDC ACM works fine using the HSI oscillator, so I'm not so sure - why would the bootloader rely on HSE then? |
|
I was able to run make BOARD=weact-f401cc -C examples/default flash
make BOARD=weact-f401cc -C examples/default termSome preliminary testing was successful. Note: A button is exposed with SAUL, but it is not present on the WeAct V1.2; there is only the NRST button and the BOOT0 button. It seemingly was only added to the WeAct V1.3.
That is typical behavior if the crystal is not properly connected. RIOT loops until the clock becomes stable, which never happens in case of hardware issues. Here is the schematic of the board. You should check the solder connects of pin 5 and 6 of the STM32F401, the crystal (it is labeled 25.000 MHz, so it is easy to find) and the capacitors C3 and C4 (those should be the two left of the crystal). I guess if you just shortly reheat the solder there with a thin solder tip, the board will start to boot :-) |
With this configuration it also works for me, but that is not using the 25 MHz oscillator. diff --git a/boards/weact-f401cc/include/periph_conf.h b/boards/weact-f401cc/include/periph_conf.h
index 867c737937..81a72fe0c7 100644
--- a/boards/weact-f401cc/include/periph_conf.h
+++ b/boards/weact-f401cc/include/periph_conf.h
@@ -23,8 +23,8 @@
#define PERIPH_CONF_H
#include "periph_cpu.h"
-#include "f4/cfg_clock_84_0_1.h"
-// #include "f4/cfg_clock_84_25_1.h"
+//#include "f4/cfg_clock_84_0_1.h"
+#include "f4/cfg_clock_84_25_1.h"
#include "cfg_i2c1_pb8_pb9.h"
#include "cfg_timer_tim5.h"
#include "cfg_usb_otg_fs.h"
Yea I just copied the f411ce board, mine doesn't have a button either.
No luck so far, but I'll keep trying :) |
yep :-) I guess you just have bad luck. |
Contribution description
The WeAct-F411CE is a blackpill-like board with an STM32F411CEU6 and USB-C.
It comes with 128k RAM and 512k ROM and is available on sites like AliExpress for less than 4€.
For convenience It can be flashed using the vendor-provided bootloader.
The convenience will be complete when #12556 is merged and stdio is provided via USB CDC ACM, so no extra hardware (except for the USB-C cable) is needed.
The name is a bit odd, some call it
blackpill-f411ce, butWeActis printed on the silk screen and the vendor provided demo firmware prints the nameWeAct-F411CE, so I decided to go with that.There is also a WeFun-F401CE that comes with an STM32F401CCU6 instead.
Testing procedure
Issues/PRs references
Needs
#13652#13865 to use it's own VID:PID.