New Raspberry Pi Zero 2W
-
@zapta That's really good news about the PIOs. I hope we can gain enough interest and gather some SW-experts to make the best possible gadget.
I still hope it's not all CAN related, for the sake of Duet2 owners...BTW: Berrybase.de still has almost 20.000 of them in stock.
-
I played a bit with the Z2W and compared it with a RPi3b. They have the same cpu, but the Z2W constantly uses the swap-file in GUI mode.
I even had to increase the swap-size (default only 100MB)
The eMMC-uSD card I also bought, has no significant speed gain over class 10 SD card. (RPi4 benchmarks are much better)My first impression: if you already have a RPi3 or better, and @PCR 's CAN-FD Hat will fit there too, there's no reason to spend extra money for a Z2W.
The Pico is still interesting as a low level CoPro. Time will tell... -
@t3p3tony said in New Raspberry Pi Zero 2W:
@PCR using that CAN-FD bus IC & transceiver with a Pi (either directly on a Pi 2/3/4, or using a 2040 + USB to a PC) could certainly allow for bus monitoring and protocol diagnosis, independent of using an oscilloscope so that could be interesting.
I read more about Pico's PIO state machines and there is a sample code about a logic analyzer (16 channel IIRC). Just thought it was worth mentioning it in this context.
-
While the PIO state machines look very useful, the amount of instruction memory (32 instructions) and scratchpad memory (2x 32 bits) are nothing like enough to implement a protocol with the complexity of CAN-FD.
-
@dc42 I felt the same, when I studied the CanHack.py program. So we'd need both Can chips to make it work.
-
@dc42 said in New Raspberry Pi Zero 2W:
While the PIO state machines look very useful, the amount of instruction memory (32 instructions) and scratchpad memory (2x 32 bits) are nothing like enough to implement a protocol with the complexity of CAN-FD.
@dc42, I am not familiar with CAN bus. What does the PIO need to do other than serializing bits in/out or detect collisions? Those PIO instructions are very capable (they have multiple fields and can do a few things in one instructions) and work well with the the hardware FIFOs, DMAs, and MCU interrupts.
-
@zapta The CanHack program lists many subroutines for testing and demonstration purposes and some real life routines. They are usually only a few lines of code. In C++ they might even be more compact.
But for compatibility reasons beween Pico(with state machines) and Z2W(no state machines), the Can-Hat should have both Can chips anyway... -
@o_lampe, I see here two pdf schemas, one with a can controller and one with just the transceiver. What's the difference between them? Can the one without the MCP2518FD still support CAN functionality? Why two versions?
-
@zapta I'm no CAN expert either, but it seems it has some FiFo buffers, filters and CRC check of the SPI bus. The 40MHz crystal is another feature for better CAN-performance and reliability.
-
-
@ALL
there's a dual CAN-FD Hat for RPi from Seeedstudio
Does anyone see a reason, why this wouldn't work for SBC-purposes? (pins or I/O channels already in use)@PCR
would it still make sense to design our own version? -
@o_lampe the raspberry pi shield might be a way to add CAN-FD in setups where it's not natively available, such as duet 2 + SBC and the STM/LPC port
-
@jay_s_uk Yep problem is that the Shield is using SPI i think?
-
@jay_s_uk said in New Raspberry Pi Zero 2W:
the STM/LPC port
The super8 has a Can-Port, but it's not (yet) supported? OTOH, I wouldn't know how to link a RPi?
-
@o_lampe it does but it's only CAN over serial for the klipper guys
-
@pcr said in New Raspberry Pi Zero 2W:
@jay_s_uk Yep problem is that the Shield is using SPI i think?
There are two different versions. As it seems they both use SPI.
Which I/O protokol would be best? UART, I2C, SPI? -
@jay_s_uk said in New Raspberry Pi Zero 2W:
the raspberry pi shield might be a way to add CAN-FD in setups where it's not natively available, such as duet 2 + SBC
That's the idea, although I don't think we'll see a Duet2 with a Duet3-toolboard. There's latency between Duet <=> RPi and RPi <=> toolboard
-
@zapta said in New Raspberry Pi Zero 2W:
@dc42 said in New Raspberry Pi Zero 2W:
While the PIO state machines look very useful, the amount of instruction memory (32 instructions) and scratchpad memory (2x 32 bits) are nothing like enough to implement a protocol with the complexity of CAN-FD.
@dc42, I am not familiar with CAN bus. What does the PIO need to do other than serializing bits in/out or detect collisions? Those PIO instructions are very capable (they have multiple fields and can do a few things in one instructions) and work well with the the hardware FIFOs, DMAs, and MCU interrupts.
Lots of things. When receiving it has to generate a local clock that can handle variation and jitter in the received clock. It has to decode the initial ID byte format to determine whether it uses an 11-bit or 29-bit address, whether the node is interested in that ID, whether it is a CAN-FD or plain CAN packet, and whether bit rate switching is enabled (I guess you could avoid some of that by restricting the types of packet supported). It has to handle bit stuffing, and it has to calculate the CRC of the received message in real time so that it knows whether to assert the ACK bit at the end of the message.
-
@dc42, yes, it sounds a lot of things. As you say, some could be addressed by focusing on message types that exist in a duet system but I am not sure about the CRC, how complex it is or what is the time to respond. On the other hand, the PIO provide room for creative solutions and possibly may be able to use a few state machines in parallel to divide the work, and there is also the second MCU core that is sitting idle and can be dedicated for the CAN decoding, and then there is an official API to overclock everything ...
-
-
@o_lampe said in New Raspberry Pi Zero 2W:
@zapta @dc42
It would be interesting to know: are all of these functions hardwired in a Sammy-C21?Yes.