From 91201a00fa6030bf4ae793b90f91af6febaefd15 Mon Sep 17 00:00:00 2001
From: Jake <jake.read@cba.mit.edu>
Date: Thu, 4 Jan 2024 11:37:53 -0500
Subject: [PATCH] notes on spi rates

---
 README.md                                     |  27 +++++++++++-
 rpi_spi/2023-12-29_pi-spi-rates.md            |  40 +++++++++---------
 rpi_spi/code/spi_peripheral_bare/spipi.cpp    |   6 +--
 rpi_spi/images/2024-01-04_spi-traces-10Mb.png | Bin 0 -> 23648 bytes
 rpi_spi/images/2024-01-04_spi-traces-1Mb.png  | Bin 0 -> 20247 bytes
 5 files changed, 50 insertions(+), 23 deletions(-)
 create mode 100644 rpi_spi/images/2024-01-04_spi-traces-10Mb.png
 create mode 100644 rpi_spi/images/2024-01-04_spi-traces-1Mb.png

diff --git a/README.md b/README.md
index d17620c..bca73d0 100644
--- a/README.md
+++ b/README.md
@@ -4,4 +4,29 @@
   - see even i.e. transfer of some tens-of-megabytes onto an SD card (copying a gcode file) - we observe only ~ 20mb/sec of advertized 80mb/sec or so 
 - otherwise, you have notes on what-the-point is in your `scratch` 
 - and consider linking to the ring-test page 
-- and discuss that at the embedded limit, we often run into interrupt-request-handling-time troubles before anything else... 
\ No newline at end of file
+- and discuss that at the embedded limit, we often run into interrupt-request-handling-time troubles before anything else... 
+
+## TODO
+
+- test the D51 for device-to-device uart 
+- likewise for RPI (five?) to device SPI link 
+
+---
+
+## Next
+
+- the SPI can work, I suspect
+    - probably needs that sweet sweet 250MHz-es 
+    - can crank up to 16-bit words in the FIFO, for 2x less starvation 
+        - can PIO do 32-bit words, perchance ? 
+    - fire the interrupt on transmit buffer not-full, rather than half-full ?
+        - actually no interrupt exists for this 
+    - can we do a proper echo test, then check for drops, etc, for max speed ? 
+- do the RP2040-to-RP2040 UART PIO test 
+- finish the thought, blog it up (1 day, max) 
+- take i.e. [notes](https://abyz.me.uk/rpi/pigpio/pigs.html), right ? 
+    - incl. the maybe-likely-change to use PIO spi-slave, not this bs 
+- i.e. go-notes/ref/rp2040 ? 
+    - https://cec-code-lab.aps.edu/robotics/resources/pico-c-api/index.html 
+    - https://github.com/raspberrypi/pico-examples/tree/master 
+    - https://www.circuitstate.com/tutorials/making-two-raspberry-pi-pico-boards-communicate-through-spi-using-c-cpp-sdk/ 
\ No newline at end of file
diff --git a/rpi_spi/2023-12-29_pi-spi-rates.md b/rpi_spi/2023-12-29_pi-spi-rates.md
index 78300c7..a2757d3 100644
--- a/rpi_spi/2023-12-29_pi-spi-rates.md
+++ b/rpi_spi/2023-12-29_pi-spi-rates.md
@@ -87,22 +87,24 @@ I'm going a bit mad with this; I can get GPIO interrupts to fire *just on a fall
 
 There's another oddity in here... the RP2040 only uses SPI framing where the CS line is pulsed per frame (7-16 bits), so we need to handle it in software, though IDK exactly how to do this as a peripheral, though apparently [this lad](https://github.com/raspberrypi/pico-sdk/issues/88#issuecomment-1402204730) found [a workaround?](https://github.com/uwopus/pico-code/blob/3594e67c1ac34e5454eb4db8362b673bcc7c8862/opus_comms/opus_comms.c#L44-L46) which references 4.4.3.13 
 
----
-
-## Next
-
-- the SPI can work, I suspect
-    - probably needs that sweet sweet 250MHz-es 
-    - can crank up to 16-bit words in the FIFO, for 2x less starvation 
-        - can PIO do 32-bit words, perchance ? 
-    - fire the interrupt on transmit buffer not-full, rather than half-full ?
-        - actually no interrupt exists for this 
-    - can we do a proper echo test, then check for drops, etc, for max speed ? 
-- do the RP2040-to-RP2040 UART PIO test 
-- finish the thought, blog it up (1 day, max) 
-- take i.e. [notes](https://abyz.me.uk/rpi/pigpio/pigs.html), right ? 
-    - incl. the maybe-likely-change to use PIO spi-slave, not this bs 
-- i.e. go-notes/ref/rp2040 ? 
-    - https://cec-code-lab.aps.edu/robotics/resources/pico-c-api/index.html 
-    - https://github.com/raspberrypi/pico-examples/tree/master 
-    - https://www.circuitstate.com/tutorials/making-two-raspberry-pi-pico-boards-communicate-through-spi-using-c-cpp-sdk/ 
\ No newline at end of file
+## 2024 01 04
+
+Well, I got this recording histograms today, here's 1, 10, 11 and 15 MBit/s
+
+| Mbit/s | Histogram |
+| --- | --- | 
+| 1 | ![1mb](images/2024-01-04_spi-histo-1Mb.png) |
+| 10 | ![10mb](images/2024-01-04_spi-histo-10Mb.png) |
+| 11 | ![11mb](images/2024-01-04_spi-histo-11Mb.png) |
+| 15 | ![15mb](images/2024-01-04_spi-histo-15Mb.png) |
+
+They are nicely packed / consistent, and we can basically get up to 5Mbit/sec when we use 10Mbit underlying rate - which is rad, but... not the whole 10Mbit, is it?
+
+This is because of - once again - that inter-packet time, which we can see in 1 and 10Mbit traces here, where CH1 is chip select and CH2 is DO.
+
+![1m](images/2024-01-04_spi-traces-1Mb.png)
+![10m](images/2024-01-04_spi-traces-10Mb.png)
+
+We can see that the actual packet transmission (the solid blue chunk) is taking place ~ just over half of the time at 10Mbit, and we are otherwise in deadzone: CS hi, or CS lo but no transmission happening. I didn't observe this deadzone ever being any smaller than 10us, and it would sometimes grow to 40 or 50us, which would impose a real-bandwidth cap even as we increase underlying bitrates. This is why, in our 1Mbit histogram, our real rate is somewhere around 0.7Mbit, whereas even when we crank the bitrate to 10Mbit, our real rate only climbs to 5Mbit. This also means that this link (like many others) is going to reward large packets / frames. 
+
+There's also a significant dropoff in quality just above 10Mbit, we jump from three zeroes to one, and then up to 15Mbit only we are hitting full missus. I suspect that this is a hard interrupt handling time limit. 
\ No newline at end of file
diff --git a/rpi_spi/code/spi_peripheral_bare/spipi.cpp b/rpi_spi/code/spi_peripheral_bare/spipi.cpp
index 163758d..3d56b44 100644
--- a/rpi_spi/code/spi_peripheral_bare/spipi.cpp
+++ b/rpi_spi/code/spi_peripheral_bare/spipi.cpp
@@ -25,7 +25,7 @@
 #define PIN_RX    12 
 #define PIN_TX    11 
 
-#define BITRATE   10000000
+#define BITRATE   11000000
 
 #define SPI_INST  spi1 
 #define SPI_HW spi_get_hw(SPI_INST)
@@ -48,7 +48,7 @@ volatile uint8_t txPtr = 0;
 volatile uint8_t txLen = 64;
 
 // we catch rising edges to delineate packet-end
-void spipi_gpio_irq_handler(uint gpio, uint32_t events){
+void __not_in_flash_func(spipi_gpio_irq_handler)(uint gpio, uint32_t events){
   if(gpio_get(PIN_CS)){
     txPtr = 0;
     rxPtr = 0;
@@ -56,7 +56,7 @@ void spipi_gpio_irq_handler(uint gpio, uint32_t events){
   }
 }
 
-void spipi_irq_handler(void){
+void __not_in_flash_func(spipi_irq_handler)(void){
   // gpio_put(PIN_DEBUG, !gpio_get_out_level(PIN_DEBUG));
   // both have up to 8 bytes to read / write per interrupt ? 
   // write bytes while writable 
diff --git a/rpi_spi/images/2024-01-04_spi-traces-10Mb.png b/rpi_spi/images/2024-01-04_spi-traces-10Mb.png
new file mode 100644
index 0000000000000000000000000000000000000000..de8a8bf4641b79364bd51775dc27e77c5ab25e09
GIT binary patch
literal 23648
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

literal 0
HcmV?d00001

diff --git a/rpi_spi/images/2024-01-04_spi-traces-1Mb.png b/rpi_spi/images/2024-01-04_spi-traces-1Mb.png
new file mode 100644
index 0000000000000000000000000000000000000000..6d0a549942975cc57e22210dbd8ea872bdc1ac44
GIT binary patch
literal 20247
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

literal 0
HcmV?d00001

-- 
GitLab