RPi Pico - Do Creators/Users/Reviewers know about the Propeller 2?
Jeff Martin
Posts: 758
in Propeller 2
RPi Pico has a patent-pending programmable I/O controller. Not sure how closely it resembles our Smart Pins.
https://www.allaboutcircuits.com/news/desginers-take-raspberry-pi-first-microcontroller/
Comments
When I showed this to Chip, he said:
Well, no, they or some of them seemingly don't know P2.
Elektor is saying, P2 would have 16 cores:
https://www.elektormagazine.de/news/amd-schlagt-zuruck-die-zukunft-von-silizium
The PIOs will be little processors that can bit-bash the pins. Can only focus on one control pin at a time. They'll be more comparable to cogs, but obviously hugely nerf'd in comparison, than smartpins.
EDIT: I guess the smartpins are also little processors as well. But they're mode specific hardware state machines, without loadable code.
EDIT2: Chip, at one stage, entertained making the smartpins like small FPGAs. Where they contained a small group of configurable logic and flops that needed a complex configuration to form any particular mode. Chip dropped it, I think, because the number of synthesised gates required to support this was far greater than just having a selection of fixed modes.
Incorporating such features is exactly why Intel and AMD have bought out the two biggest FPGA producers.
Well, i can vouch that Damien sure knows about P2, and about Pico's PIOs,
Somewhere around 35~40mins in he shows how the WS2812 PIO code compiles to just a handful of 32 bit longs, combined with some timing metadata.
Got a link?
Did Damien say he had been working on this Pico project for the last 8 months?
Yes, something like 8 months, I thought it was longer. Its in the video, somewhere.
I don't think this Pico stuff is a threat to the P2, and in fact will help sell/justify the multi core + pin peripheral approach, bitbanged DVI, multicore MicroPython... it will float both boats.
Also, P2 is a natural destination for people that have outgrown 32 instruction PIOs
The idea for smart pins (satellite peripheral controllers) is as old as dirt. Back in the day (ca. 1975) they were called "channels" and were microprogrammed. There's so much prior art on the subject, I can't imagine how a new patent stands a chance.
-Phil
At some stage the patent application will be be published, lets wait and see. It only takes that one, well-argued inventive step beyond prior art to get a patent.
I was talking to the local supplier of those Pico's today, they are sold out for a month or so.
Hmm, I don't see any video. Another forum issue I guess. Which post has it?
This is the link
www.youtube.com/watch?v=MQTZFrBrwac
Thanks
One thing they did get bang on was the launch of the Pico.
Projects using the Pico from day one guaranteed a lot of exposure, that coupled with the RPi Foundation's marketing team ;-)
We just need to demonstrate that P2 is more powerful especially with the Micropython port to P2 (thanks to team Oz!) and get the word out....
At 37:30, 8 to 10 months.
Ouch! Damien said 32 instruction words per block. Two blocks, four PIOs per block.
Ah, okay, the idea is each block has up to four state machines to manage an interface. And the IN and OUT instructions are arbitrary width, up to 32 bit wide, and arbitrary recurring cycles. IN/OUT is the real feature - They're running in their own state machines themselves. Everything else is just support.
So, in some respects one block is like one smartpin. On the other hand, that block can manage wide buses which a smartpin by itself never can. A cog + smartpin + streamer comes to bear for this. But a cog can struggle on the timing requirements for some interfaces.
I can see the attraction here. Effectively only two of them though.
Oh, neat, I think ... each PIO program can be extended indefinitely via streaming into OUTs ... maybe.
The quick zoom clip was interesting
Interesting. RP2040 has 8 state machines and each one can control up to one pin, for a whopping total of 8 pins.
You cannot do every frequency as the main clock only has some? divisors.
Each state machine can generate an interrupt on a pin change, but not a group change/mask.
There is a tiny fifo on each state machine. It can shift in or out a group of bits ie like the serial shifter in the smart pins.
Cluso,
The PIOs are way better than what Damien describes there. You'll notice he isn't confident to answer with anything more than that demo program for the PIO. Hardware workings clearly isn't his deep knowledge. I'm guessing he's been given assistance just to write that example. Totally different level of confidence when he answers questions on micro-python.
PS: I've started reading the datasheet that Damien referred to a few times - https://datasheets.raspberrypi.org/rp2040/rp2040-datasheet.pdf
They started to look at reïmplementing the RP2040's PIOs but probbbly I'm not completely uptodate.
From my notes:
(github) An attempt to recreate the RP2040 PIO in an FPGA
(MyStorm) RP2040 PIO FPGA implementation
(YT/Folknology) RP2040 and PIO model
(YT/Folknology) RP2040 PIO Deep Dive with deconstruction for FPGA and learning
(YT/Folknology) RP2040 PIO deconstruction part 3
(YT/Folknology) RP2040 PIO deconstruction part 4
(YT/Folknology) PIO part 5 implementing a Stepper motor driver