5 ms·
Whilst there are certainly other boards with more features/higher specs at similar prices I think the pico has a few things going for it 1. It's at cheap ebay/
by gchadwick 6y ago
Whilst there are certainly other boards with more features/higher specs at similar prices I think the pico has a few things going for it
1. It's at cheap ebay/aliexpress prices but is a first party board supported by the chip manufacturer, not a third party clone.
2. The full raspberry pi ecosystem has a good range of hardware and software, the pico will hopefully see the same.
3. The internal architecture has some fun features. The DMA engine supports chaining DMA channels and one set of DMA operations can program and trigger another channel. Plus you can trigger transactions on when they're needed by the endpoint or on a timer. You can program in complex behaviours with this and just set it off and go without needing further CPU control.
More unique than the DMA is the PIO, 8 programmable state machines that have FIFOs and port access. This allows you to add support for protocols you don't have hardware for. This avoids bit banging and gives precise real-time control. You can do things like drive VGA and there's even an HDMI demo (possibly a bit too hacky to be used in production though).
I've just had one arrive today, going to spend the weekend seeing what I can do with just DMA and PIO whilst the CPU sits idle, maybe dealing with the occasional interrupt.
- vorpalhex 6y agoIs there a good guide that you recommend on the PIO or DMA features?
- gchadwick 6y agoI've just been reading the datasheet here: https://datasheets.raspberrypi.org/rp2040/rp2040_datasheet.pdf https://datasheets.raspberrypi.org/rp2040/rp2040_datasheet.p... It does have some examples and the Pico SDK has various PIO programs you can look at for inspiration. The getting started page links to a few projects including the HDMI/DVI: https://www.raspberrypi.org/documentation/pico/getting-started/ https://www.raspberrypi.org/documentation/pico/getting-start...
- tyingq 6y agoNote that the HDMI/DVI code overclocks the Cortex M0 from its normal 133Mhz to 252Mhz. So it's a cool hack, but I think it would have wonky behavior. https://github.com/Wren6991/picodvi/blob/34bc82555860de4b35ed87e9383536660f91fcef/software/apps/terminal/main.c#L37 https://github.com/Wren6991/picodvi/blob/34bc82555860de4b35e...
- trebligdivad 6y agoIt's obvious whoever designed that, did it so that they could do fun things with it; very flexible PIO and DMA with lots of neat corners; and mention of fun things like 8080 bus interfacing and the like.
- jarmitage 6y agoThanks for this summary. I am excited about the DMA and PIOs having used BeagleBoard PRUs, but what about the quality of the ADCs/DACs? Isn't all the talk of hard real-time applications and so on somewhat moot if those aren't high quality enough? (afraid I haven't had time to read the datasheet yet!)
- akiselev 6y agoFrom the devboard datasheet: > The RP2040 ADC does not have an on-board reference and therefore uses its own power supply as a reference. On Pico the ADC_AVDD pin (the ADC supply) is generated from the SMPS 3.3V by using an R-C filter (201 ohms into 2.2μF) Which doesn't sound promising and I don't see a DAC in the RP2040 datasheet.
- jarmitage 6y agoRight. I wonder if the Arduino version will be better for this, or whether we might need to wait for future boards from RPi.
- mlyle 6y agoIt's good and bad. Nice that they've filtered AVCC pretty heavily-- 360Hz corner frequency-- lots of microcontroller boards don't. Less nice that the ADC scale will be affected by power supply offset, though that all depends upon how "good" the board 3V3 is. The bandgap and error amplifier on the DC-DC converter IC is good at least-- max +/- 1%.
- Abishek_Muthian 6y ago4. It's available ~'everywhere'. RPi foundation has done a great job at making it's product available to buy at the time of announcement in over 50 countries and I think that's underrated. It shows 5 different websites for me to buy in India, which is not usually the case here for new hardware except few exceptions like Nvidia Jetson; if at all they ever make it to the country. Also RPi foundation/partners seems to be actively working with the Govt. to keep the prices competitive. To give you a comparison, PinePhone costs >$200 (+tax) to get it here that is if at all it doesn't get blocked at the customs due to licensing requirements for telecommunication hardware, taxes for CBU(Completely Built Unit) smart phones, blockade on shipments from the country to the North. That's a tragedy considering huge number of Linux enthusiasts in the country and that alternate smartphone OS can indeed help Govt.'s self reliance goals. P.S. That was not to diss on Pine64's efforts, but to show the state of enthusiast hardware availability in India.
- captn3m0 6y ago+1. It is amazing seeing how well they’ve managed this. There were educational launch videos out from the authorised Indian resellers on the day of launch, even.
- deleted 6y ago[deleted]
- worik 6y ago"...doesn't get blocked at the customs due to licensing requirements for telecommunication hardware, taxes for CBU(Completely Built Unit) smart phones, blockade on shipments from the country to the North...." OMG. I had forgotten. What a mess. Politics is a drag
- intricatedetail 6y agoMostly corruption. Big companies pay politicians to introduce more barriers to enter the market so that there is less competition.
- SV_BubbleTime 6y ago> [PIO] allows you to add support for protocols you don't have hardware for. PHY level support, yes. But nothing higher than that. You would still need to implement the protocol in software for the most part. So at 133Mhz, it’s probably fast enough to toggle a CAN transceiver correctly, but would have very little comprehension of bus arbitration or CRC or what makes a message valid (RTR, IDE, DLC, etc). It’s very cool, but the example they used of making a simple waveform for the serial driven LEDs is more what they were going for. That example is pretty much already taken care of with an SPI or PWM that runs off DMA though. You can easily make a waveform for those LEDs. I’ve never understood why the enthusiasts use bit banging and special hardware.
- jmiskovic 6y agoDidn't study Pico but I don't think PIO can interface CAN bus. The physical layer uses differential wired-AND scheme where any device can pull it into dominant state but recessive state is possible only if no device is driving the bus. In most cases CAN requires a dedicated HW transceiver, I would be pleasantly surprised if Pico can pull it off without external components.
- deleted 6y ago[deleted]
- sokoloff 6y agoAnd a 120 ohm termination at the end of the bus.
- SV_BubbleTime 6y agoThis is not a required item. It is suggested that the termination is 120ohms, but depends entirely on the length of the bus and number of modules. You can have short runs of can with no transceiver and no termination.
- zootboy 6y agoCAN uses a dominant/recessive transmission method, similar to I2C. The termination resistors are absolutely required, as they are what drive the bus back to the recessive state. Perhaps you were thinking of RS-485, which actively drives both bus states and therefore can get away with unterminated buses at low bitrates / short runs.
- Unklejoe 6y ago> one set of DMA operations can program and trigger another channel. I once worked around a very unfortunate hardware shortcoming in a DMA engine by doing exactly this. Each channel supported a list of descriptors, so I used the last descriptor to actually perform DMA operations on the configuration registers of the other channel. The possibilities are endless with this kinda stuff
- stinos 6y agoThe possibilities are endless So is the time wasted when there are bugs in the docs :P Don't remember the exact chip, but it was on the first job I had and it took me weeks to find out why the thing didn't want to do what I told it to. Turned out some names of registers were swapped in the docs. But indeed, once I figured that out, it was really nice to work with and things like interleaving data from multiple ADCs just worked with basically no CPU interaction.
- m463 6y ago> Whilst there are certainly other boards with... This IS the other boards! I think if you look here: https://www.raspberrypi.org/blog/raspberry-pi-silicon-pico-now-on-sale/ https://www.raspberrypi.org/blog/raspberry-pi-silicon-pico-n... Scroll down and you'll see the RP2040 has been released on many boards simultaneously. - Adafruit Feather RP 2040 - Adafruit ItsyBitsy RP 2040 - Arduino Nano RP2040 Connect - Pimoroni PicoSystem - Pimoroni Pico Explorer Base - SparkFun Thing Plus – RP2040 - SparkFun MicroMod RP2040 Processor - SparkFun Pro Micro – RP2040
- comboy 6y agoWhat could be the reason to use DMA on a hobby micro-controller board? Honest question, I'm just curious. I can imagine some high reliability production systems that may prefer micro vs CPU, but why would you bother doing any more advanced graphics or anything like that on a microcontroller? I mean I played with VGA on arduino but that was because there were no cheap SBCc back then.
- blippage 6y ago4. Excellent documentation which will only likely get better. SDK in C/C++, and MicroPython. You can even learn concepts like PIO and DMA in MicroPython. Adafruit expressed confidence in their MicroPython libraries working out of the box, too. The form-factor on the Pico is also a little nicer than and ESP32. Pin duplicators are also available. This idea has a lot of potential, as it allows one to break out modules. It's much better than the Arduino shield for two reasons: 1. shields have quirky pin alignments, making it hard to create your own boards. 2. shields stack on top of the other, obscuring the layer below. The Pico will be another stellar success from the Pi Foundation. I have no doubt.