Compare commits
2 Commits
9369da37a7
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| a0f6e875be | |||
| 0ce983b5ed |
@@ -16,3 +16,37 @@ CONFIG_LOG_MAX_LEVEL=1
|
|||||||
CONFIG_LOG_BACKEND_UART=n
|
CONFIG_LOG_BACKEND_UART=n
|
||||||
CONFIG_LOG_BACKEND_SPINEL=y
|
CONFIG_LOG_BACKEND_SPINEL=y
|
||||||
CONFIG_LOG_PROCESS_THREAD_STACK_SIZE=2048
|
CONFIG_LOG_PROCESS_THREAD_STACK_SIZE=2048
|
||||||
|
|
||||||
|
# Transmit at the nRF54L15's full +8 dBm.
|
||||||
|
#
|
||||||
|
# Zephyr's default is 0 dBm and the coprocessor sample never overrides it, while
|
||||||
|
# Nordic's Matter samples set 8 -- so an RCP built from this repo was running 8 dB
|
||||||
|
# weaker than the Matter devices talking to it. That asymmetry hurts the
|
||||||
|
# border-router-to-device direction specifically, which is the one that matters
|
||||||
|
# for beacon responses during a joiner's active scan.
|
||||||
|
CONFIG_OPENTHREAD_DEFAULT_TX_POWER=8
|
||||||
|
|
||||||
|
# The XIAO needs GPIO, unlike the DKs this sample targets.
|
||||||
|
#
|
||||||
|
# The upstream coprocessor prj.conf sets CONFIG_GPIO=n ("Disable GPIO"), which
|
||||||
|
# is fine on a DK whose RCP has no GPIO-controlled RF hardware. This board
|
||||||
|
# selects its antenna path with one: P2.03 powers the RF switch and P2.05
|
||||||
|
# selects ceramic vs external, both declared as regulator-fixed nodes with
|
||||||
|
# regulator-boot-on in the board DTS.
|
||||||
|
#
|
||||||
|
# With GPIO off, REGULATOR_FIXED cannot build (it depends on GPIO), so those
|
||||||
|
# nodes get no driver and neither pin is ever driven -- the RF switch stays
|
||||||
|
# unpowered and the border router runs with a crippled antenna path. Measured
|
||||||
|
# -93 dBm at close range before this was found, against a -101 dBm sensitivity
|
||||||
|
# floor.
|
||||||
|
CONFIG_GPIO=y
|
||||||
|
CONFIG_REGULATOR=y
|
||||||
|
CONFIG_REGULATOR_FIXED=y
|
||||||
|
|
||||||
|
# Give the spinel link a deeper receive queue.
|
||||||
|
#
|
||||||
|
# The default 2048 bytes is sized for a link with RTS/CTS, where the host stops
|
||||||
|
# sending once the buffer fills. This one has no flow control, so anything that
|
||||||
|
# does not fit is simply lost. 8192 covers a burst of full-size frames arriving
|
||||||
|
# while the OpenThread thread is busy.
|
||||||
|
CONFIG_OPENTHREAD_COPROCESSOR_UART_RING_BUFFER_SIZE=8192
|
||||||
|
|||||||
@@ -14,7 +14,26 @@
|
|||||||
*
|
*
|
||||||
* Unlike Nordic's nrf54l15dk overlay, hw-flow-control is NOT set: the XIAO's
|
* Unlike Nordic's nrf54l15dk overlay, hw-flow-control is NOT set: the XIAO's
|
||||||
* pinctrl only defines TX and RX for uart20, and the CMSIS-DAP bridge does not
|
* pinctrl only defines TX and RX for uart20, and the CMSIS-DAP bridge does not
|
||||||
* carry RTS/CTS. See docs/ for the baud rate this was validated at.
|
* carry RTS/CTS.
|
||||||
|
*
|
||||||
|
* That missing back-pressure is why the spinel link runs at 460800 rather than
|
||||||
|
* the 1000000 Nordic uses. Bandwidth was never the constraint -- 802.15.4 tops
|
||||||
|
* out around 250 kbps -- but without RTS/CTS a single late RX interrupt loses a
|
||||||
|
* byte outright, and a lost byte corrupts the HDLC frame around it. At 1 Mbaud
|
||||||
|
* the driver has 10 us to service each byte; the radio ISR can hold it off
|
||||||
|
* longer than that during a burst. 460800 widens the window to 21.7 us while
|
||||||
|
* still leaving roughly 4x headroom over peak Thread throughput.
|
||||||
|
*
|
||||||
|
* The symptom this fixes: otbr-agent runs for hours, then a traffic burst
|
||||||
|
* desynchronises the stream, the next transmit gets no response, and
|
||||||
|
* HandleRcpTimeout aborts the agent with exit code 6.
|
||||||
|
*
|
||||||
|
* [W] P-RadioSpinel-: radio tx timeout
|
||||||
|
* [C] P-RadioSpinel-: Failed to communicate with RCP - no response from RCP
|
||||||
|
*
|
||||||
|
* The host must agree on the rate. In the RadioURL on the border router host:
|
||||||
|
*
|
||||||
|
* spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=460800
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
@@ -27,7 +46,7 @@
|
|||||||
|
|
||||||
&uart20 {
|
&uart20 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
current-speed = <1000000>;
|
current-speed = <460800>;
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart21 {
|
&uart21 {
|
||||||
|
|||||||
Reference in New Issue
Block a user