Raspberry Pi is now a microcontroller

Go To Last Post
159 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

 

The Rapsberry Pi Blog wrote:
Today, we're launching our first microcontroller-class product: Raspberry Pi Pico.

Priced at just $4, it is built on RP2040, a brand-new chip developed right here at Raspberry Pi.

 

 

https://www.raspberrypi.org/blog/raspberry-pi-silicon-pico-now-on-sale/

 

  • Dual-core Arm Cortex-M0+ @ 133MHz
  • 264KB  on-chip RAM
  • Support for up to 16MB of off-chip Flash memory via dedicated QSPI bus
  • DMA controller
  • Interpolator and integer divider peripherals
  • 30 GPIO pins, 4 of which can be used as analogue inputs
  • 2 × UARTs, 2 × SPI controllers, and 2 × I2C controllers
  • 16 × PWM channels
  • 1 × USB 1.1 controller and PHY, with host and device support
  • 8 × Raspberry Pi Programmable I/O (PIO) state machines
  • USB mass-storage boot mode with UF2 support, for drag-and-drop programming

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
Last Edited: Thu. Jan 21, 2021 - 10:19 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Does it have Arduino support? (rhetorical question)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

i'm a bit confused it state :

  • 30 GPIO pins, 4 of which can be used as analogue inputs

But the text say :

Raspberry Pi on its own does not support analogue input  

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

your first quote is for the new RPi microcontroller; the second quote refers to the original RPi - it is given as one of its limitations, and justification for the new chip.

 

EDIT

 

Maybe this goes to show that calling it "Rasperry Pi" was a poor choice - it's such a different beast that it really should have a distinct name ?

 

frown

 

Maybe we should call it the "Raspberry pip" ... ?

 

wink

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
Last Edited: Thu. Jan 21, 2021 - 11:41 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

No internal flash, it seems.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Indeed.

 

Presumably, some of that "264KB  on-chip RAM" gets used for code execution?

 

I wonder if it's 8K for execution, and then the other 256K for "data"?

 

Or vice-versa? surprise

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Kartman wrote:

Does it have Arduino support? (rhetorical question)

 

There is an official Nano-sized wireless board available soon, so presumably yes: : https://blog.arduino.cc/2021/01/...

 

I'm more interested to see whether it has FreeRTOS support, to manage the two cores.

 

I'm a little disappointed with the selection of peripherals. Actually, what I mean is, it doesn't have a CAN bus controller. And no on-chip flash, so an external chip is mandatory.

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

or 8 K USB buffer RAM, and the rest is normal 256k RAM (both code and data).

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Nice performance per watt, which is likely due to the 40nm process.  Dormant (the lowest power mode) consumption is rather high at ~200uW.  The datasheet doesn't state how much lower that goes with MEMPOWERDOWN, so there may yet be hope for low-power battery operation.  I'm a bit surprised the chip only has USB full-speed (12Mbps) support, when high-speed would only take a tiny bit more die area.  With the PIO units and the relatively large 256kB SRAM, I could see it being used for a nice little logic analyzer.

 

I have no special talents.  I am only passionately curious. - Albert Einstein

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

awneil wrote:

Indeed.

 

Presumably, some of that "264KB  on-chip RAM" gets used for code execution?

 

I wonder if it's 8K for execution, and then the other 256K for "data"?

 

Or vice-versa? surprise

 

 

The 8kB is on a different internal bus, and is recommended for the processor stack.

For code, it has an XIP cache: "External Flash is accessed via the QSPI interface using the execute-in-place (XIP) hardware" (datasheet s. 2.6.3)

"The cache is 16 kB, two way set-associative, 1 cycle hit. It is internal to the XIP subsystem, and only affects accesses to
XIP flash, so software does not have to consider cache coherence, unless performing flash programming operations. It
caches reads from a 24-bit flash address space, which is mirrored multiple times in the RP2040 address space, each alias
having different caching behaviour. The eight MSBs of the system address are used for segment decode, leaving 24 bits
for flash addressing, so the maximum supported flash size (for XIP operation) is 16MB."

 

I have no special talents.  I am only passionately curious. - Albert Einstein

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Here's the SRAM details:

"There is a total of 264kB of on-chip SRAM. Physically this is partitioned into six banks, as this vastly improves memory
bandwidth for multiple masters, but software may treat it as a single 264kB memory region. There are no restrictions on
what is stored in each bank: processor code, data buffers, or a mixture. There are four 16k x 32-bit banks (64kB each) and
two 1k x 32-bit banks (4kB each)."

 

I have no special talents.  I am only passionately curious. - Albert Einstein

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Does it have a Basic compiler smiley

 

JC

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0


DocJC wrote:
Does it have a Basic compiler
The usual trend these days (when not doing C/C++) actually seems to be to provide micros with some form of Python (which is a bit like "BASIC on steroids"  anyway! ;-)

 

EDIT: didn't take long to find... https://magpi.raspberrypi.org/ar...

 

Last Edited: Thu. Jan 21, 2021 - 04:49 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ralphd wrote:
The 8kB is on a different internal bus, and is recommended for the processor stack.

 

That's interesting, having the stack in a dedicated memory bus. I wonder how much the average performance gain is? Maybe the bus is wider/faster?

Last Edited: Thu. Jan 21, 2021 - 05:01 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

El Tangas wrote:

ralphd wrote:
The 8kB is on a different internal bus, and is recommended for the processor stack.

 

That's interesting, having the stack in a dedicated memory bus. I wonder how much the average performance gain is? Maybe the bus is wider/faster?

 

The datasheet has a pretty good description of the architecture.  It also reads like something written by an anglophone, which I find quite nice.

 

"There are four 16k x 32-bit banks (64kB each) and two 1k x 32-bit banks (4kB each)."

"The next two 4kB regions (starting at 0x20040000 and 0x20041000 ) are mapped directly to the smaller, 4kB memory banks.
Software may choose to use these for per-core purposes, e.g. stack and frequently-executed code, guaranteeing that the
processors never stall on these accesses."

 

I have no special talents.  I am only passionately curious. - Albert Einstein

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

That is all sorts of interesting :-)

 

update: add a link

 

https://hackaday.com/2021/01/20/raspberry-pi-enters-microcontroller-game-with-4-pico/

Last Edited: Thu. Jan 21, 2021 - 08:28 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

though a ROM

RP2040 Datasheet

[page 144]

2.6.1. ROM

[summary]

  • first level boot
  • second level boot (external flash)
  • write external flash
  • USB MSC
  • utilities (floating point, etc)

[/summary]

Arm with ROM is somewhat common; one way to implement secure boot.

Arm without flash :

  • Ambiq Apollo4 (very low current, MRAM)
  • VORAGO (up to 200C, radiation resistant)

Flash is temperature sensitive and fails due to some excessive radiation (solar flares, GCR, Van Allen belt high energy electrons, Fukushima Daiichi robots, Mars ...)

 


User Interface? | Page 2 | AVR Freaks

The challenges and evolution of CubeSat electronics - Embedded.com

Microcontrollers | VORAGO Products — VORAGO Technologies

RIP Opportunity | The Embedded Muse 368

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ralphd wrote:
The datasheet has a pretty good description of the architecture.  It also reads like something written by an anglophone, which I find quite nice.

gchapman wrote:
RP2040 Datasheet

 

I'll be sure to read it. First impressions: it has (a lot) fewer than 1000 pages = good smiley

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Regarding Python:

 

So over my break between Christmas and New Years I had a few days off, and purchased two Python books. 

There still sitting on my desk next to me.

 

Python, the Complete Manual, hasn’t been to helpful yet.

Python Programming for Dummies, however, got me started, at least up through several chapters before I had to re-focus on work.

 

From my (very limited) introduction, it struck me as very similar to Basic.

 

Except it needs a lot more colons to end commands, which the Basic compiler doesn’t need.

 

And I’m used to reading code with If, Elseif, End If sections since the days of the Basic Stamp.

Of course Python eliminated the End If, using the un-indented code section to signify the End If.

My old brain still looks for the End If to signify closure of that section.

 

VB and Visual Studio both include a PC GUI.

For Python I had to go find an add on to provide the GUI for my simple PC test programs.

 

When I close a VB/VS program it just goes away.

Gone.

Disappears.

 

When I try, using multiple different constructs, to Close / End my GUI based Python program I still end up with one or two boxes on the screen that the User still has to close out manually… 

Several hours trying to figure out how to simply terminate a Python GUI program on the PC, without the remaining trash, left me frustrated.

 

Such is life.

 

If I want to play with the new Pi I guess I had best get over it and get on with the tutorial!

 

JC

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I like that the datasheet has a 'Programmer's Model' section for each peripheral with sample code and links to Github. Not just a list of registers and an uncertain wait for appnotes.

 

My sense is it's a better 'core' product technically than say ESP32 but lacking in peripherals, onboard flash and wireless. I guess they know their target market. Scope for v2 maybe.

 

You have to admire the 'splash' they've made with this though.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

DocJC wrote:
it struck me as very similar to Basic.

Really?!

 

What brand of "BASIC" are you thinking of?  

There are many things that call themselves "BASIC" yet bear precious little resemblance to the original language - or even to other things calling themselves "BASIC".

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Visual Basic / Visual Studio on the PC.

 

Bascom on the AVR.

Occassionally ZBasic on the AVR, but truth be told I usually use Bascom.

 

And, before you ask: No, I haven't used a Line Number or a Goto for the past 20 years... !

 

JC

 

Edit: Typo

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

awneil wrote:
What brand of "BASIC" are you thinking of?  

 

Classification of imperative languages cheeky:

Has curly brackets -> similar to C

No curly brackets -> similar to BASIC

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Interesting that the standard peripherals (PIO, UART, I2C, SPI, I2S, etc) are software defined using generic IO hardware.

 

Datasheet p.323:

PIO is programmable in the same sense as a processor. There are two PIO blocks with four state machines each, that can independently execute sequential programs to manipulate GPIOs and transfer data. Unlike a general purpose processor, PIO state machines are highly specialised for IO, with a focus on determinism, precise timing, and close integration with fixed-function hardware.

...

Each state machine, along with its supporting hardware, occupies approximately the same silicon area as a standard serial interface block, such as an SPI or I2C controller. However, PIO state machines can be configured and reconfigured dynamically to implement numerous different interfaces.

...

The four state machines execute from a shared instruction memory. System software loads programs into this memory, configures the state machines and IO mapping, and then sets the state machines running. PIO programs come from various sources: assembled directly by the user, drawn from the PIO library, or generated programmatically by user software.

From this point on, state machines are generally autonomous, and system software interacts through DMA, interrupts and control registers, as with other peripherals on RP2040. For more complex interfaces, PIO provides a small but flexible set of primitives which allow system software to be more hands-on with state machine control flow.

Maybe there'll be a CAN controller implementation eventually :)

Last Edited: Fri. Jan 22, 2021 - 01:00 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks for the link, looks like an interesting device.

 

Ordered a couple to see what I could do with them.

Happy Trails,

Mike

JaxCoder.com => PartsBin - An Electronics Component Organizer

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

obdevel wrote:

Interesting that the standard peripherals (PIO, UART, I2C, SPI, I2S, etc) are software defined using generic IO hardware.

The 2 programmable IO blocks are in addition to the standard peripherals.  The standard peripherals are implemented in silicon and can't be re-programmed for other use.

S. 4.2 UART:

"RP2040 has 2 identical instances of a UART peripheral, based on the ARM Primecell UART (PL011) (Revision r1p5)."

 

I have no special talents.  I am only passionately curious. - Albert Einstein

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

What is the benefit of this over other arm cortex or esp? The pi zero has wifi and runs linux, which is a clear benefit, those zeros are fantastic little devices.

Last Edited: Fri. Jan 22, 2021 - 02:52 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

12oclocker wrote:
What is the benefit of this over other arm cortex or esp? The pi zero has wifi and runs linux, which is a clear benefit, those zeros are fantastic little devices.

 

The only thing special I see is the programmable IO device.  Although there is a lot of documentation and examples, it still is lacking important details.  For instance the OUT instruction says:

"Shift Bit count bits out of the Output Shift Register (OSR), and write those bits to Destination."  and "Bit count: how many bits to shift out of the OSR. 1…32 bits, 32 is encoded as 00000."

 

So if it can shift out 32 bits with one instruction, presumably it has a 32x PLL clocking the shift register.  And I think the bit timing is based on 32/bitcount, so shifting out 2 bits would be 16 shift register clocks per bit.  I'm not sure what would happen if you shifted 3 or 5 bits.  After digging through several of the examples I found this comment that bitcnt must be a factor of 32:

https://github.com/raspberrypi/p...

 

One thing it doesn't seem to support is starting the shift register, and having it continue to shift out bits while subsequent PIO instructions continue to execute.

 

I have no special talents.  I am only passionately curious. - Albert Einstein

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ralphd wrote:

The 2 programmable IO blocks are in addition to the standard peripherals.  The standard peripherals are implemented in silicon and can't be re-programmed for other use.

S. 4.2 UART:

"RP2040 has 2 identical instances of a UART peripheral, based on the ARM Primecell UART (PL011) (Revision r1p5)."

 

Data headers say a quite modest UART max of 921600 baud, but the formula suggests  125/16 = 7.8125MBd is supported and 12MBd would be possible with overclock of 192MHz 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

DocJC wrote:

Except it needs a lot more colons to end commands, which the Basic compiler doesn’t need.

 

Diversion to Python rant: I know people love it, but to me a language that relies on white space for formatting is broken by design. I hate that...

 

And now, I return to our normal programming: regarding the QSPI flash: does the clock have spread spectrum options? Because without that, it's going to have some difficulty meeting EMI regulations if you use this in a production part. Ask me how I know...

 

Neil

 

Neil

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

12oclocker wrote:
What is the benefit of this over other arm cortex

Note that it is a dual-core Cortex-M0+ - I don't think there's many others?

 

Also, executing from external flash is unusual for a Cortex-M0+

 

There are rumours abroad that ARM must have sunk some serious  cash into this - as a "fight-back" against the growth of RISC-V ...

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0


DocJC wrote:
My old brain still looks for the End If to signify closure of that section.
I remember when I first started doing things in Python this threw me completely too. However, after a while you learn to like this and I love the rigour it imposes on program structure. You simply don't get people posting Python code with stupid indentation all over the place making it virtually impossible to follow - all Python is laid out the same because it has to be and so it's much easier to read other people's Python programs as they all look similar (in C/C++ there's an attempt at this when "coding standards" are imposed but sadly not everyone adheres to the coding standard. In Python you simply don't get a choice). In fact Python has all kinds of other rules about structure and a good IDE will tell you about these as you go along. Talking of which:

DocJC wrote:
For Python I had to go find an add on to provide the GUI for my simple PC test programs
I hope it was "Pycharm" from Jetbrains you stumbled upon. I came across this early and it REALLY helped me. As I say there are various style guidelines for Python and PyCharm will advise you about these. There is a "Community" version for personal use:

 

awneil wrote:
Really?!

Why shocked? I've always thought that things like Microsoft Visual Basic was very similar to Python (or vicky-verky if you want to look at it that way).

 

The one thing in Python I have a bit of trouble with is how "self" is always out in the open whereas in C++ "this" is usually hidden. That can take a bit of getting used to. (though I know some people add "this" prefixes in C++ to make it clear what belongs to the class (I just prefer an 'm' prefix myself)).

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
I've always thought that things like Microsoft Visual Basic was very similar to Python

That's why I asked what particular variant (or "deviant"?) of BASIC.

 

Visual BASIC bears very little resemblance to "traditional" BASIC.

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

DocJC wrote:
Regarding Python:

To be fair, most of your troubles there seem to be with the environment - rather than Python itself.

 

I think it's true for any language that a good or bad environment can greatly help or hinder your progress with the language itself ...

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Also, executing from external flash is unusual for a Cortex-M0+

It don't run code from external flash, the external flash is like a disk, the code gets loaded to RAM.

 

The chip is cheaper to produce if it don't have flash on board (I bet that the boot code is placed in a metal mask same way as an org. 8051).

 

 

I remember about 15 years back when NXP LPC2138 was new, the code ran about 20% faster from RAM than flash.(and you could cycle count) 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

awneil wrote:

There are rumours abroad that ARM must have sunk some serious  cash into this - as a "fight-back" against the growth of RISC-V ...

The UART and SPI peripherals are ARM IP, so they may have supported the development by offering them license-free.  The Synopsys IP may have been free as well given ARM's relationship with Synopsys.

https://news.synopsys.com/2020-0...

 

I have no special talents.  I am only passionately curious. - Albert Einstein

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

But one thing could be if it's legal in US, if it don't have a unique serial number in the chip. 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

It don't run code from external flash, the external flash is like a disk, the code gets loaded to RAM.

Not entirely true - you choose whether you want to chew up your precious ram by loading code into it. The benefit is it will run very fast, or you use XIP (execute in place) and lean on the 16k cache to eek out some performance. If my experiences with the NXP IMXRT1062 are anything to go by, using XIP nobbles a 600MHz Cortex M7 to something like 70MHz. The effect probably wont be as bad with the 133MHz Cortex M0, but you have two of them to feed. With the IMX running from internal high speed ram, interrupt response is in the order of 15ns. 

 

 

Anyways, I ordered a couple of the Picos last night, so I should see then early next week. I'm not getting too excited as there doesn't seem to be PlatformIO support yet, but I expect that won't be too far away. My metric is if I can get a new board, plug it in, load up PlatformIO and have some code running in a couple of minutes, then I'm satisfied. If I need to screw around with settings etc, then I'm less impressed. The recent board I played around with is the Sipeed Longan Nano - took a little screwing around to get things happening. Arduino core support was not complete and there wasn't a prebuilt toolchain that worked on the Mac - I had to resort to using Windows.

 

As for RaspI designing the chip - I dare say they leaned on their bretheren at Broadcom to make it happen. Nevertheless, it would have cost over a million I expect to actually develop and get silicon. It might well be another Broadcom cast-off like the other RasPi cpus and they send the chips to China to get remarked with the RasPi logo.

 

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Kartman wrote:
(...) and they send the chips to China to get remarked with the RasPi logo.

 

ZOMG, even chip remarking is outsourced to China  😱

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Kartman wrote:
I ordered a couple of the Picos last night

I looked at one place, and they had a limit of one per customer!

 

As for RaspI designing the chip - I dare say they leaned on their bretheren at Broadcom to make it happen

Or ARM?  Not sure that Broadcom have anything to do with this one?

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Kartman wrote:
using XIP nobbles a 600MHz Cortex M7

 

Not surprised: even with QSPI you need a lot of bites to get those bytes: without looking at a spec sheet, you're probably looking at 4 or 6 bites to get the address in, another one for the control, and 8 for the data read. It improves by a factor of around two for sequential reads, so it's rather going to depend on the efficiency of the cache.

 

On a similar system we boot from QSPI flash solely to transfer the contents to RAM, with which the flash-less chip is plentifully supplied.

 

Neil

 

p.s. I looked into running from SPI for hardware controlled XIP for a 6502. Turned out to be possible but not practical... might have to look at QSPI or even OSPI for that.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

barnacle wrote:
does the clock have spread spectrum options? Because without that, it's going to have some difficulty meeting EMI regulations if you use this in a production part. Ask me how I know...
Spread-spectrum is one way of several (impedance)

EMC/ESD COURSE OUTLINE

...

 

Session 1.2 - Logic Devices and Circuit Boards

...

  • Spread Spectrum Approaches

...

 


High Frequency Measurements Site Index by Douglas C. Smith

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

barnacle wrote:

Not surprised: even with QSPI you need a lot of bites to get those bytes: without looking at a spec sheet, you're probably looking at 4 or 6 bites to get the address in, another one for the control, and 8 for the data read. It improves by a factor of around two for sequential reads, so it's rather going to depend on the efficiency of the cache.

 

On a similar system we boot from QSPI flash solely to transfer the contents to RAM, with which the flash-less chip is plentifully supplied.

 

Neil

 

p.s. I looked into running from SPI for hardware controlled XIP for a 6502. Turned out to be possible but not practical... might have to look at QSPI or even OSPI for that.

The RP2040 supports DDR, transfering 4 bits on every clock edge.  Winbond calls it DTR (double transfer rate).

https://www.winbond.com/resource...

 

So at 133Mhz, it can fill a 64-bit XIP cache line in 8 cycles.  Without the XIP cache, that would limit performance to 1 16-bit Thumb2 instruction every 2 clock cycles.

 

I have no special talents.  I am only passionately curious. - Albert Einstein

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I can't think why (;-) but when I went to the YouTube app on one of my TVs tonight it started by recommending...
.
https://youtu.be/dUCgYXF01Do

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks for the link, Cliff, that was both intriguing and alluring.

 

Perhaps I'll have to get the little Micro-Python book, the chip, and tinker a bit.

 

I wonder if the Sun will still come up over the horizon tomorrow if I do a project coded in something other than Basic!

 

JC 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

DocJC wrote:
I wonder if the Sun will still come up over the horizon tomorrow if I do a project coded in something other than Basic!

Is that the Beginner's All-purpose Sunrise Inducing Code ... ?

 

wink

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I wonder if using a Cortex M4 would greatly increase the MCU cost. A built in FPU would be nice.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

El Tangas wrote:
A built in FPU would be nice.

They are pushing their "highly optimised" software FP library...

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I wonder if the QSPI could connect to the big chip on Pi4 (A72) and then be used to load firmware and do communications for whatever the OS needed it to do. Maybe it will become a bridge to the 40 pin GPIO. I guess I am just trying to understand why they did this chip.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You've still got the cost of entry - you need to send the cmd, address and dummy bytes before you get your read data - that's going to cost a few clocks. As Seymour Cray opined 'cache is no substitute for memory bandwidth'.

 

 

As for barnacle's suggestion of using serial flash for a 6502 - I would've thought the extra hardware alone would've made it impractical. One could use a little fpga and you'd get the 6502 for free.

 

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Kartman wrote:
You've still got the cost of entry - you need to send the cmd, address and dummy bytes before you get your read data - that's going to cost a few clocks.

 

What if the host could load some firmware for a callback to run on the MCU? Maybe a callback on the MCU could run the new software. For example, to twiddle a ws2812 line based on feedback from an analog line without help from the host. I guess the MCU would be running an elementary OS of its own at that point. I am far out of my depth, so that may be entirely crazy talk.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The floating point library:  https://www.quinapalus.com/qfpli...

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Ron, you could do what you propose if the mcu is running micropython and communicates to the big Pi via uart serial. You could have a python script that loads a python script onto the micro.

 

Having the big Pi run the spi is not unreasonable, but probably more trouble than what it's worth. The big Pi's peripherals are crappy - I haven't looked at the Pi4 closely to see if it is much better.

 

Something like NXP's imx8 series have an A series and a M series on the same chip and can share memory. That would be workable methinks.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

westfw wrote:

The floating point library:  https://www.quinapalus.com/qfpli...

 

To demonstrate the ultimate interconnectedness of everything, there's a M0 implementation of BASIC on the same site: https://www.quinapalus.com/psb.html ;)

 

(For non-Brits, a 'pound shop' is a shop where everything costs one pound, except, increasingly, the things that don't).

Last Edited: Sat. Jan 23, 2021 - 01:16 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Kartman wrote:

You've still got the cost of entry - you need to send the cmd, address and dummy bytes before you get your read data - that's going to cost a few clocks. As Seymour Cray opined 'cache is no substitute for memory bandwidth'.

 

Most flash has some flavour of page read - set up an address and keep reading and it auto-incs to the next address. Good for cache loads; not so handy if you're naively trying to execute from the flash where your read address is likely to be leaping around in loops and comparisons. But if you can get it into the cache and execute from there, or into the ram (as we do) then you're golden and it all runs at top speed.

 

Kartman wrote:

As for barnacle's suggestion of using serial flash for a 6502 - I would've thought the extra hardware alone would've made it impractical. One could use a little fpga and you'd get the 6502 for free.

 

What would be the fun if it were easy? This is to fill a minor need I've probably rabbited on about before: I would love a parallel flash/eeprom with an SPI write option - and there doesn't seem to be such an animal. That way, you can make a vintage 8-bit system without having also to make/buy an eeprom programmer or having a load-from-serial functionality (which of course has to work before you solder the part to the board...)

 

Neil

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

barnacle wrote:
runs at top speed.

Until you get a cache miss from jumping around! Or like the game programmers back in the early days of PCs - write your code so you optimise cache hits. I haven't done a comparison with what you could expect if the flash was internal - using external qspi flash might actually be competitive.

 

 

As an aside, I had been pondering a simple little processor where I would do alu operations on the data as it is shifted in/out of what was going to be a serial dram - so I could use a 1 bit alu if using spi or a 4bit alu if using qspi. If doing a fetch, the PC would increment by doing alu add ops whilst shifting out the address and so on. I don't think it would've been too fast - not by today's standards.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0


Kartman wrote:
back in the early days of PCs - write your code so you optimise cache hits

 

I have some souvenirs from back then smiley

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

There was no cache on old PC's !

The first Intel with cache was 80486's  (some of the clones had it from 386). 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

sparrow2 wrote:

There was no cache on old PC's !

The first Intel with cache was 80486's  (some of the clones had it from 386). 

 

Define "old". The Pentium Pro was launched in 1995, over 25 years ago. We can still easily recognize the P6 core inside whatever Intel sells these days.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

? I just did those before 80486 ;)

 

 

Add: my first PC was a 8088 a 100% clone, 4.77MHz with 640 KRAM 256K on the mother board and a full (really full) size 8 bit ISA card with 384k. (now it's close to what you get for $4!)

 

I got it in 86, but used it from 1985.

Last Edited: Sat. Jan 23, 2021 - 05:58 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Lol my first x86 was a 486.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

sparrow2 wrote:
my first PC was a 8088 a 100% clone, 4.77MHz with 640 KRAM 256K

 

Ha, I had a 8088 256k PC clone near the end of college (~ 91); I was too busy at school and a TV repair shop to learn anything about it, but it played a few games (those memories are fuzzy). Latter (~95), I got a 386sx 16MHz 512kDRAM; it is crazy how these chips are stepping over the footprint of those old machines.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

The thing you have to appreciate about Python is that the number of available (free) add-on libraries is near infinite.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Kartman wrote:
The big Pi's peripherals are crappy

 

Yes, the 3V3, anemic current sinking, and sourcing are pathetic, but you mean its IO toggle rate (right?). I am reasonably sure that is due to the multitasking OS (I suspect all of them are like that), the R-Pi hardware (aside from its bugs) is much faster when done as bare-metal software (right?).

 

I like the idea of micro-python; maybe it could be loaded at power-up and provide default services to mimic the expected GPIO setup (speed is not a concern since what we have now is not acceptable). The user could swap functions or craft their craziness (including logic) to run in place of whatever defaults they want to replace; a terminal interface to the MCU would be helpful; maybe something like RPC calls could be done over the QSPI hard link to expose default hardware and a terminal for interacting with Python. That would be a lot of work, but absurd stuff happens.

 

update: stuff

Last Edited: Sun. Jan 24, 2021 - 05:32 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ron_sutherland wrote:
Yes, the 3V3, anemic current sinking, and sourcing are pathetic, but you mean its IO toggle rate (right?). I am reasonably sure that is due to the multitasking OS (I suspect all of them are like that), the R-Pi hardware (aside from its bugs) is much faster when done as bare-metal software (right?).

 

The RasPi chip started life as a set top box - it didn't need a decent uart etc. Even if you do bare metal or linux kernel drivers, the peripherals are lacking. Things might be different for the Pi4 - I've not looked at it closely. The RasPi started out as a method of writing off excess stock of the Broadcom set top box chips - brilliant idea.

 

Compare this with the Sitara cpu on the Beaglebone - it was meant as an embedded chip and thus has far superior peripherals.  There's also the likes of the NXP imx8 which can have an extra Cortex M4 core or two.

 

I somehow suspect the RP2040 started life as a Broadcom chip - I get the feeling that an ex - XMOS person did the PIO.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I almost got to work with a Sitara (Beagle), during which I read several less than shinny stories before my involvement ended. I was very fearful of its memory interface and successfully getting the bypass caps to fit under the thing. That was before the module that includes everything was available. I am sure it has superior peripherals, but the Linux support seems to have crashed and burned.

 

https://elinux.org/BeagleBone_Operating_Systems

 

On the other hand, the R-Pi is thriving.

 

https://www.raspberrypi.org/software/operating-systems/

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

it didn't need a decent uart

So what's so bad about the RPi UART(s)?  Looks like it's got one industry standardish 1655x UART with pretty deep FIFOs, and one "mini uart" with less capabilities, but still better than most microcontrollers...

 

I thought the main complaint against RPi IO was that the ethernet and WiFi were on the "other side" of a USB switch.

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

PiPico decapped

 

https://twitter.com/johndmcmaster/status/1355092011829719046

 

I do not follow twitter, this was from hackernews.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Documentation for windows is terrible.

Happy Trails,

Mike

JaxCoder.com => PartsBin - An Electronics Component Organizer

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Apparently the RP2040 ADC has a design or manufacturing flaw, sample capacitors inside the ADC have sizes incorrect by about 0.8% and this results in non-linearity errors for some ADC codes.

Here is a good article on the issue:

https://pico-adc.markomo.me/INL-DNL/

 

 

In other words, I was thinking about getting one but I guess I'll wait for a silicon revision.

Last Edited: Mon. Apr 12, 2021 - 08:47 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

But still better than a org. AVR with a 10 bit ADC ;)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

"Dare to be naïve." - Buckminster Fuller

Last Edited: Thu. Feb 3, 2022 - 02:59 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

sparrow2 wrote:

But still better than a org. AVR with a 10 bit ADC ;)

 

Take a 12-Bit ADC AVR-DA/DB!

These 8-Bit controllers are still a replacement in 99% of cases of use. Smaller, more flexible, more energy efficient, but above all, much easier to program. To call RPi chips "microcontroller" is an insult to any real microcontroller chip like AVR/PIC.

Last Edited: Wed. Jul 14, 2021 - 04:55 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

GermanFranz wrote:
To call RPi chips "microcontroller" is an insult to any real microcontroller chip like AVR/PIC.
I've used Teensy 4.0 and 4.1 quite a lot. I program them using Arduino. Under the hood the chip is a 600MHz  IMXRT1062DVJ6A  which is a 32/64 bit Cortex M7 (it can actually overclock to 900MHz or more). Sure it's a bit faster than a 16/20/32MHz AVR but it has UART, SPI, I2C, timers, ADC, etc and (in Arduino at least) the programming interface to such devices is pretty much identical to what you might use for a 16MHz 328P on an Uno. So does such a chip not count as a "microcontroller" then ?

 

Sure there are ARM Cortex (the Cortex-A rather than Cortex-M) that are "application processors" that are intended to run OS like Linux and that may not have much in the way of CPU peripherals (just sysclocks, DRAM controllers, etc) and I'd agree that you might be hard pushed to call these "microcontrollers" but as soon as you put even something like this into a chip as an SoC (System on Chip) where it is the core but then surrounded by typical peripherals at what point does it stop being an application processor and start becoming a controller. (in reality actually, SoCs with Cortex-A CPUs will often have a couple of M3's or M4's dotted around that mop up the interfaces to the system peripherals but overall the thing can be used as an embedded controller). In fact if you study a modern car you might find 20-50 (or more) such CPUs (A's, M's, 8051's, AVR's etc etc) dotted around performing some kind of embedded role in the car.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

GermanFranz wrote:
To call RPi chips "microcontroller" is an insult to any real microcontroller chip like AVR/PIC.

You do realise that the chip under discussion here is a Cortex-M0 (OK, so it's dual-core) - not the Cortex-A or ARM9 of the Raspberry Pi single-board computers ?

 

What makes AVR/PIC any more "real" than Cortex-M0? or any other Cortex-M ?

 

Could you not equally say that things like AVR/PIC are an insult to any "real" microcontroller chip like the original 4-bit Intel 4004 ?

 

Or even the original 8051?

 

Surely, "microcontroller" has always covered a broad spectrum from 4-bit updwards ... ?

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

GermanFranz wrote:
To call RPi chips "microcontroller" is an insult to any real microcontroller chip like AVR/PIC.

 

It may be a translation problem; I think the AVR/PIC are more likely to be envious of a dual-core ARM M0 /w 264kB SRAM (core separated banks?) on die (that is some crazy stuff). I wonder how deep the instruction pipe is; maybe 133MHz is as fast as they can go from SRAM without adding to the instruction pipeline. Does anyone know if the M0 has much of an instruction pipe? Maybe that is what the number after tells (M#) (that was a joke btw).

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ron_sutherland wrote:
I think the AVR/PIC are more likely to be envious of a dual-core ...
rather than the anthropomorphic, a dual-core AVR (XMEGA) :

megaAVR 0-series | Page 4 | AVR Freaks

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ron_sutherland wrote:
It may be a translation problem; I think the AVR/PIC are more likely to be envious of a dual-core ARM M0

 

No, it's not a translation problem.

Now one can argue endlessly about definitions of terms.

The classic 8-Bit microcontroller (I mentioned one attractive type above) is sufficient for 99% of all classic controller applications - that is my experience. And in many cases (in my case in smart home applications) with 2 MHz clock and less! If stronger 32-bit types with much more MHz are used today, they are often only used to hide their inefficient programming. I am certainly not jealous of the many great ARM features - cause they are ultimately unnecessary and only complicate programming. In understanding the chip and in the requirements of the development environment. Such insights are of course unsympathetic to those whose eyes light up only at maximum MHz and complex cores+peripherals, but in short, I really don't know what raison d'être a RP2040 would have as a classic "microcontroller".

Last Edited: Thu. Jul 15, 2021 - 07:05 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

GermanFranz wrote:
I really don't know what raison d'être a RP2040 would have as a classic "microcontroller".
I've used similar to make a synthesizer for example. It still has "controller" features like reading encoders, joystick and so on and driving a GLCD to give the user feedback but then it uses CPU power to do audio processing to synthesize or play samples of sound - something it's quite tricky to get a 16/20/32MHz "controller" to do.

 

I imagine if you were to do anything with video rather than audio you would welcome the heft CPU power behind the controller peripherals too!

 

In fact as a general rule in audio and video applications you simply can never have enough CPU power!

 

But two lots of 133MHz in RP2040 or even 600MHz in Teensy 4.x goes some of the way!

 

Microcontrollers are far more ubiquitous than just opening valves or stepping motors you know!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
and driving a GLCD
Epson has LCD controllers and, IIRC, others also.

clawson wrote:
In fact as a general rule in audio and video applications you simply can never have enough CPU power!
GPU for awhile.

 


Memory Display Controllers (Epson VDC, Memory-in-Pixel LCD)

S1D13517 (Epson VDC, LCD)

...

Additionally, the S1D13517 incorporates a 2D graphics engine with alpha blending capability.

...

Such is in some MCU as a peripheral though coming up short on which MCU (APU?)

 

NTSC or PAL, 18 mA typical :

VLSI Solution-VS23S010 - 1 Mbit Versatile SPI / 8-Bit Parallel Bus SRAM

https://octopart.com/search?q=VS23S010D-L&currency=USD&specs=0

VS23S0X0 - VLSI Solution Webstore

 

EGA to VGA: The initiation of bit-mapped graphics and the chip clone wars | Electronic Design

 

edit : adds VGA to composite video; up to 75 mA typical

VLSI Solution-VS23S040 - 4 Mbit Versatile SPI / 8-Bit Parallel Bus SRAM

 

"Dare to be naïve." - Buckminster Fuller

Last Edited: Thu. Jul 15, 2021 - 01:27 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
In fact as a general rule in audio and video applications you simply can never have enough CPU power!

 

Of course.

But I would no longer call audio / video applications a classic task for a microcontroller. For these, 32/64-bit machines are ideal.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

GermanFranz wrote:
But I would no longer call audio / video applications a classic task for a microcontroller. 
Guess we can argue this til the cows come home but I guess it's what one perceives a controller? 

 

Personally I think I work on "controllers" because I am working on an embedded application. It has a fixed job. The ultimate output is the control of a cars brakes and steering wheel. The idea being to prevent the car from killing people. However the "controller" at the heart of this is (these days) and insanely powerful piece of silicon that often, in a single SoC has two or three Cortex-M cores that are doing low level jobs like interfacing to CAN, LIN, UART, Ethernet, ADC, SPI, I2C, etc above this are often quad or octa cores which might be M-7s or perhaps Cortex-A doing "application processing". Alongside this there are often multi-core graphics processors - both input processors and output processors that take the workload off the A/M7's because 4 or 8 of those is still not enough power.

 

But at the end of the day it's a box that sits under the hood of your car and controls the vehicle so in my eyes that is a "controller".

 

Your mileage may vary.

 

(actually such boxes are known in the trade as "ECU" - that is "Electronic Control Unit" - cars these days have many of these - another may be doing ABS and another doing cruise control etc etc).

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

By the very definition of microcontroller, it must have some form of inbuilt flash memory. But RP2040 doesn't have one.

 

Can we really call it a true microcontroller?  🤔

“Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?” - Brian W. Kernighan
“Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.” - Antoine de Saint-Exupery

Last Edited: Thu. Jul 15, 2021 - 02:46 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I would like to remind of the "micro" in micro-controller.

This is nothing I would associate with

 

  • Dual-core Arm Cortex-M0+ @ 133MHz
  • 264KB  on-chip RAM
  • Support for up to 16MB of off-chip Flash memory via dedicated QSPI bus

 

When it comes to UARTs, SPI, I2C, ADC and DAC, PWM and some useful GPIOs in general a simpler AVR/PIC "Micro" is definitely enough in most cases-  even more advantageous.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Heisen wrote:
By the very definition of microcontroller, it must have some form of inbuilt flash memory.
Sorry but where is it defined that a "microcontroller" must have internal flash? There's a lot of devices these days that can actually do the initial program load from SPIflash for example. 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

GermanFranz wrote:
For these, 32/64-bit machines are ideal.
re Opus audio codec, concur though 16b MCU are capable with AVR XMEGA as a possibility at a low bit-rate.

 

MCU vs CoreMark
SAMV71 1503
PIC32MZ EF   710
dsPIC33CH   395
   
   
   
   

 

PIC32 Digital Audio | Microchip Technology

PolarFire® SoC FPGA: Opus Codec Benchmarking (RISC-V)

New Digital Signal Controller (DSC) Accelerates DSP Performance for Time-Critical Control Applications | Microchip Technology | Microchip Technology

On what platforms does Opus run? | OpusFAQ - XiphWiki

CPU Performance Benchmark – MCU Performance Benchmark – CoreMark – EEMBC Embedded Microprocessor Benchmark Consortium

 

Conversely, recall 8-bit video games :

Roman Black's BTc 1bit Sound Encoding Algorithms (PIC)

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Heisen wrote:
... it must have some form of inbuilt flash memory.
Flash becomes non-functional at a very elevated temperature (geophysical, thermal noise) and looses data with enough radiation energy and flux; a partial work-around is non-volatile memory with ECC (MRAM, some F-RAM, some EEPROM)

 

Reference Design HT-DAB-1 | VORAGO Technologies — VORAGO Technologies

Extreme Temperature ARM® Cortex®-M0 MCU VA10800 | VORAGO Technologies — VORAGO Technologies

RIP Opportunity | The Embedded Muse 368

Apollo4 - Ambiq

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

GermanFranz wrote:

  • 264KB  on-chip RAM

I raise 'ya and toss in an MMUwink

GermanFranz wrote:
... in general a simpler AVR/PIC "Micro" is definitely enough in most cases-  even more advantageous.
Disadvantageous is negotiating the license for third parties; so, 8051 are common with RISC-V as a recent arrival.

 


HUGE Memory MCU | AVR Freaks (PIC32MZ DA)

 

ESP32-S2 Wi-Fi MCU I Espressif (ULP core is RISC-V)

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0


clawson wrote:
Sorry but where is it defined that a "microcontroller" must have internal flash?

I heard on amp hour podcast where Dave from eevblog was mentioning this, he was criticizing  RP2040 on being called a microcontroller knowing that it does not have flash memory.

 

But yeah the Wikipedia definition says any form of program memory is okay for microcontroller.

 

But I see some sites stating the opposite. Which I guess is causing this confusion.

 

https://www.pcmag.com/encyclopedia/term/microcontroller

 

“Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?” - Brian W. Kernighan
“Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.” - Antoine de Saint-Exupery

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

GermanFranz wrote:
The classic 8-Bit microcontroller (I mentioned one attractive type above) is sufficient for 99% of all classic controller applications - that is my experience. And in many cases (in my case in smart home applications) with 2 MHz clock and less! If stronger 32-bit types with much more MHz are used today, they are often only used to hide their inefficient programming. I am certainly not jealous of the many great ARM features - cause they are ultimately unnecessary and only complicate programming. In understanding the chip and in the requirements of the development environment. Such insights are of course unsympathetic to those whose eyes light up only at maximum MHz and complex cores+peripherals, but in short, I really don't know what raison d'être a RP2040 would have as a classic "microcontroller".

 

It is so much easier to get things done with an AVR-type device, probably due to its lower complexity, but that R-Pi chip is fascinating. I would likely dislike learning the software side of that complexity, but I like pondering the hardware.

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

gchapman wrote:

Flash becomes non-functional at a very elevated temperature (geophysical, thermal noise) and looses data with enough radiation energy and flux; a partial work-around is non-volatile memory with ECC (MRAM, some F-RAM, some EEPROM)

 

When I was working with high-temperature stuff, five years or so ago, I was investigating FRAM; no maker would certify its livespan at the high temperatures to be found down a deep drill shaft. I was able to show it working for short periods - tens of hours - at temperatures in excess of 150C but never got the chance to work on longer testing.

 

Controllers vs processors: I take the rule of thumb that it's the addition of peripherals that makes a processor into a controller: serial or parallel ports, timers, and other things which might with a traditional processor require external components. I don't believe that it's necessary to have the program memory inside the chip - external flash with four or eight bits that can load into and execute from onboard RAM works fine.

 

Neil

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

it must have some form of inbuilt flash memory.

Nonsense.  Pretty much any internal memory will do, "definition-wise", and the rp2040 internal ROM certainly qualifies even if the RAM doesn't.

Don't forget that the earliest "microcontrollers" predate flash, and had either internal ROM (8048. TMS1000) or EPROM (8751, PIC)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

In 1995-1996 I was working with Z80 systems. For industrial applications. I was using Z80 CPU with SRAM and EPROM, SIO, CTC, and the gpio pins with HC374/574/244/245. The Z80 CPU+SIO+CTC+RAM+EPROM was the "microcontroller". Real embedded applications, C cross compiler, flash programming was EPROM burning :-)

In parallel I was working with 8051 systems, with external memories. The "microcontroller" was 80C31+RAM+EPROM. A step forward.

2000-2005 working with Rabbit2000 systems. Microcontroller was Rabbit+SRAM+Parallel NOR Flash. In system programming this time.

Since 1998 I was working with AVR real microcontrollers. I remember that at first they were 8K flash at max., 512 ram. Still very useful for a LOT of applications.

Guess what, the older systems were slowly shadowed by the AVR micros, which were more and more powerful and easier to use.

Since 2009-2010 I started to use Cortex-M micros for my bigger apps.

RPi micro + SPI flash is a no brainer compared to my Z80/Rabbit/8051 systems. But now, for me, it is too late for it. I can't see a reason to use it instead of any other Cortex-M I already use.

"Microcontroller" or not, is just wording. I don't care what you call a thing. I care what can you do with it.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1


ron_sutherland wrote:
but that R-Pi chip is fascinating. I would likely dislike learning the software side of that complexity,
One thing the Raspberry people do well is to deliver a "system" rather than simply a component. 

 

If you follow the series of links (starting with one in post #1):

 

https://www.raspberrypi.org/blog...

https://www.raspberrypi.org/docu...

https://www.raspberrypi.org/docu...

https://github.com/raspberrypi/p...

 

then you arrive at:

/**
 * Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#include "pico/stdlib.h"

int main() {
#ifndef PICO_DEFAULT_LED_PIN
#warning blink example requires a board with a regular LED
#else
    const uint LED_PIN = PICO_DEFAULT_LED_PIN;
    gpio_init(LED_PIN);
    gpio_set_dir(LED_PIN, GPIO_OUT);
    while (true) {
        gpio_put(LED_PIN, 1);
        sleep_ms(250);
        gpio_put(LED_PIN, 0);
        sleep_ms(250);
    }
#endif
}

as your first "LED blinker". It doesn't actually look any more complex than what you might do in Arduino (say). Sure the APIs are different and something to be learned but that may be as far as the complexity goes. One assumes that in their CRT they are doing all the "magic" to get the complex chip into a runnable state - so you don't have to worry about that.

 

On that link journey you may have seen that you basically have a choice between C/C++ and MicroPython. It's quite possible the latter may actually be a simpler route still (for those who already know a bit of Python). Python is very easy to use - a bit like modern day BASIC. From their Python PDF:

 

https://datasheets.raspberrypi.o...

 

One sees usage such as:

(in a typically Python style this is actually doing it "live"/interactively rather than with a "compiled" program - though that is possible too - you can put these lines into a .py file then have it all interpreted at once).

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I've been out of pocket for a few years. I found it's possible to stop daily work with uC, and get back.

 

I've looked at the RP2040, as an alternative to arduino nano 328P.  State machine PIO vs AVR timers with OC, seem daunting. Need to add eeprom, and IGBT drivers ... sticking with my old love,  AVR.

Dave in TN

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

kitcarlson2 wrote:
I've looked at the RP2040, as an alternative to arduino nano 328P.

I think you're comparing a Ferrari to a bicycle there!

 

 

surprise

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Welcome back!

KitCarlson?

kitcarlson2 wrote:
sticking with my old love,  AVR.
Meanwhile, AVRxt (unified memory and not)

Migration from the megaAVR® to AVR® Dx Microcontroller Families

compares to mega128 though mega1284 is popular (PDIP)

28 pin AVR Dx is in PDIP.

 


What are the AVR28DA128 AVR32DA128 AVR48DA128 AVR64DA128 ?? | AVR Freaks

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Raspberry Pi Direct: buy RP2040 in bulk from just $0.70 - Raspberry Pi

by Eben Upton

17th Jan 2022

...

To allow us to serve these customers [full-rate production] better, today we’re launching Raspberry Pi Direct.

...

 

Raspberry Silicon, direct from Raspberry Pi

[reels]

[how to]

 

Unobtainium no longer

RP2040 is built on a more modern semiconductor process (TSMC 40LP) than most other microcontrollers.

...

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

gchapman wrote:

Raspberry Pi Direct: buy RP2040 in bulk from just $0.70 - Raspberry Pi

...

Unobtainium no longer

RP2040 is built on a more modern semiconductor process (TSMC 40LP) than most other microcontrollers.

 

Chuckles at this

 

If you want to build your product on a microcontroller you can actually buy in 2022, RP2040 is your friend. Head on over to Raspberry Pi Direct to get yours today.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

TSMC wafer fab for Microchip Technology

  • PIC24E / dsPIC33E (180 nm)
  • dsPIC33C (90 nm)
  • PIC32MX (180 nm)

Some of those can reach to 150C.

 

Some AVRxt are wafer fab at Microchip Technology US though am uncertain where AVRxt AVR Dx are wafer fab (AVR Dx have a core voltage regulator, VDD = 1.8 V .. 5.5 V, ambient is -40 C .. 125 C)

Some AVR Dx have a lead time that's reasonable.

 


How to search for Microchip PCNs

Design Code Separately and Integrate Seamlessly with Dual-core dsPIC Digital Signal Controller | Microchip Technology | Microchip Technology

Lead Time | World's Largest Inventory of Microchip Products

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Who-me wrote:
Chuckles at this

 

If you want to build your product on a microcontroller you can actually buy in 2022, RP2040 is your friend. Head on over to Raspberry Pi Direct to get yours today.

Yes, I saw that.

 

presumably the reason they're not in shortage is that nobody (other than the RPi people themselves) has yet designed them in to a product that's manufacturing in volume ... ?

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Who-me wrote:
If you want to build your product on a microcontroller you can actually buy in 2022, RP2040 is your friend. Head on over to Raspberry Pi Direct to get yours today.

I think it's probably old stock before the pandemic that they are clearing out. 

“Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?” - Brian W. Kernighan
“Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.” - Antoine de Saint-Exupery

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

It was only launched in January last year (see OP) - so hardly "old stock"!

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

awneil wrote:

Who-me wrote:
Chuckles at this

 

If you want to build your product on a microcontroller you can actually buy in 2022, RP2040 is your friend. Head on over to Raspberry Pi Direct to get yours today.

Yes, I saw that.

 

presumably the reason they're not in shortage is that nobody (other than the RPi people themselves) has yet designed them in to a product that's manufacturing in volume ... ?

 

You may be partly right.

They did say 

 

Since then, we’ve sold nearly 1.5 million Picos, and thousands of you have used RP2040 in your own electronic projects and products.

so their own consumption is significant.

Then they say

 

We have sufficient wafer stock on hand to produce 20 million chips, with more on the way.

 

So their pipelines must be looking quite good, if they already have 'more on the way' :)

 

These parts do need a FLASH boot memory, which the Pi Press chest-puffing neatly avoids mentioning.

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Who-me wrote:
These parts do need a FLASH boot memory, ...
... typically flash though other forms of non-volatile memory are possible; can self-power, load, then go.

Most VORAGO Technologies arm Cortex-M lack non-volatile memory due to the use cases (geophysical, deep space)

arm Microcontrollers | VORAGO Products — VORAGO Technologies (usually boots from SPI ROM)
 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

There are certainly a bunch of "second tier" hobbyist manufacturers using a lot of RP2040s.  Looks like Adafruit has a half-dozen different board variants (not counting ones that they just resell.)  Sparkfun has three.  Perhaps being closer to the top of the of the "desirable customer" list feels good...

 

I don't know if RPi has the "incidental corporate features" in place to support a large-scale manufacturer...

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

westfw wrote:

There are certainly a bunch of "second tier" hobbyist manufacturers using a lot of RP2040s.

HAM Radio projects also With RPi beside Arduino’s.https://www.youtube.com/embed/lU5fIYW1U0Y

www.tokopedia.com/madagang .Buy and Donated cheap electronics and manuscripts.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

westfw wrote:
I don't know if RPi has the "incidental corporate features" in place to support a large-scale manufacturer...
I had an exchange with Eben Upton on Twitter and have watched some YouTube where he featured. Seems a very switched on kind of a guy with a clear vision for how they want to grow Raspberry. I wouldn't have any concerns about their longevity or ability to scale manufacture.

 

Personally I see RP2040 as some what of a revelation (esp from the cost perspective!). Interesting to read the datasheet and find out why it is "2040". The implication seems to be there's going to be a number of different models in the future.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Who-me wrote:
These parts do need a FLASH boot memory, ...

gchapman wrote:
typically flash though other forms of non-volatile memory are possible

and it's not just for boot - the entire code storage is external.

 

It's Execute In Place (XIP).

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

There is no code protection feature on RP2040, no lock bits etc. The chip expects to execute code directly from external flash. Anyone can tap in and read what data is transferring.

“Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?” - Brian W. Kernighan
“Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.” - Antoine de Saint-Exupery

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

In lieu of code protection, data protection (protect the customer's data)

Can encrypt applications then decrypt into program RAM; RP2040 has an MPU to partition the RAM.

 

Enhance system security with better data-at-rest encryption - Embedded.com

CryptoAuthentication™ Secure Key Storage | Microchip Technology

RP2040 Datasheet (Raspberry Pi Trading)

[page 149]

2.6.2. SRAM

[third sentence]

There are no restrictions on what is stored in each bank: processor code, data buffers, or a mixture.

GitHub - MicrochipTech/cryptoauth_usecase_secureboot: SecureBoot Usecase

cryptoauthlib/third_party at main · MicrochipTech/cryptoauthlib · GitHub

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:

... The implication seems to be there's going to be a number of different models in the future.

Better not... maybe. I'm thinking lately at this: RP2040 is one variant, 20 million chips availability. STM32 is 3000+ variants, availability is... (it's hard to even define the availability of it).

If you design a new board, what do you chose now: "The" RP2040 or one of the 3000+ STM32 chip variants? The same for Microchip products, AVRxxx, PICxxx, SAMxxx, etc. Uncountable.

I have a board with an avr PB chip (atmega88pb). According to the Microchip direct, we'll talk about it after february 2023...

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

rammon wrote:
I have a board with an avr PB chip (atmega88pb). According to the Microchip direct, we'll talk about it after february 2023...
Late May June this year through early July August though in some packages.

Lead Time | World's Largest Inventory of Microchip Products

"Dare to be naïve." - Buckminster Fuller

Last Edited: Mon. Apr 11, 2022 - 05:08 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ron_sutherland wrote:
I am reasonably sure that is due to the multitasking OS (I suspect all of them are like that), the R-Pi hardware (aside from its bugs) is much faster when done as bare-metal software (right?).

 

I like the idea of micro-python;

Ada is another computer language that provides tasking; Ada and Python can be bare-metal (no OS) though RTOS can aid both.

 

bb-runtimes/arm/rpi/rp2040 at community-2021 · AdaCore/bb-runtimes · GitHub

...

Ada tasks on multiprocessor runtimes can be configured to run on either
core0 or core1 using the CPU attribute. For example:

.. code-block:: ada
   task Core0_Task with CPU = 1;
   task Core1_Task with CPU = 2;

 

...

For multiprocessor runtimes the TIMER peripheral is used which runs
at the Watchdog tick frequency (always 1 MHz).

 

...

For example, to configure an interrupt handler to run on the second CPU
in the multiprocessor runtime:

...

 

[near bottom]

Resources Used
--------------

The runtime libraries provide a minimal version of package Ada.Text_IO
supporting character- and string-based input and output routines. These are
implemented using semihosting, which requires a debugger to be attached.
Calling the semihosted Text_IO routines without a debugger attached will
trigger a HardFault on the processor that uses it.

 

Multiprocessor Runtimes
,,,,,,,,,,,,,,,,,,,,,,,

The Ravenscar runtime libraries on the multiprocessor runtime configuration
use the TIMER ALARM_3 interrupt to implement Ada semantics for time, i.e.
delay statements and package Ada.Real_Time. The ALARM_3 interrupt handler
runs at the highest priority. This implementation uses a tick-less approach
to configure the alarm interrupt to trigger exactly at the alarm time,
thereby avoiding most "useless" tick interrupts. See procedure Set_Alarm in
package body System.BB.Board_Support (gnarl/s-bbbosu.adb).

 

...

 


Introduction to ARM Semihosting | Interrupt (Memfault)

 

selling like hotcakes (pancakes)

lead time is only 15 weeks

RP2040 Microcontroller Chip - Raspberry Pi | Mouser

 

edit :

Ada on ARM Cortex | AVR Freaks

 

"Dare to be naïve." - Buckminster Fuller

Last Edited: Mon. Apr 11, 2022 - 05:30 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

DocJC wrote:

Does it have a Basic compiler smiley

 

 

Micromite has been ported to the Pico. Not a compiled BASIC but a well regarded interpreter. 

#1 Hardware Problem? https://www.avrfreaks.net/forum/...

#2 Hardware Problem? Read AVR042.

#3 All grounds are not created equal

#4 Have you proved your chip is running at xxMHz?

#5 "If you think you need floating point to solve the problem then you don't understand the problem. If you really do need floating point then you have a problem you do not understand."

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Pico is quite a different thing to an RPi. There is both Circuit Python and Micro Python for Pico

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

RP2040 Stamp | Solder Party

 

if don't want to solder castellations then FlexyPin | Solder Party

 

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

gchapman wrote:

RP2040 Stamp | Solder Party

 

if don't want to solder castellations then FlexyPin | Solder Party

 

 

yes Great for products.

www.tokopedia.com/madagang .Buy and Donated cheap electronics and manuscripts.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Really interesting. 
 

Why not include some flash on the nano board? if the target is embedded systems…. the code needs to be somewhere. 

regards
Greg

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

gregd99 wrote:

Why not include some flash on the nano board? if the target is embedded systems…. the code needs to be somewhere. 

 

I'm not sure I understand the point.

#1 Hardware Problem? https://www.avrfreaks.net/forum/...

#2 Hardware Problem? Read AVR042.

#3 All grounds are not created equal

#4 Have you proved your chip is running at xxMHz?

#5 "If you think you need floating point to solve the problem then you don't understand the problem. If you really do need floating point then you have a problem you do not understand."

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I've lost track. Is #120 about the Raspberry Pico board, subject of this thread? As the RPi website shows it has TWO MEGABYTES of flash. Surely that's enough for most apps?

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm reading the RP2040 datasheet, this MCU really is interesting, and the datasheet is written in a didactic style which I like, very clear.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

My comment  above… indeed the pico… and I missed the flash. Apologies all. 

regards
Greg

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

This is what's so extraordinary about RP2040. It's a $1.00 micro but it has two 133MHz 32bit cores, 2048KB flash, 264KB RAM and what's more you can actually buy the things! 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

what's more you can actually buy the things! 

ie nobody wants it......devil

John Samperi

Ampertronics Pty. Ltd.

https://www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
... and what's more you can actually buy the things! 
Should be like that for a while.

RPI Chip RP2040-7-500 Raspberry Pi | Mouser

[1/4 page, right column]

Factory Lead-Time:

15 6 Weeks

 

"Dare to be naïve." - Buckminster Fuller

Last Edited: Mon. Apr 18, 2022 - 12:40 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:

This is what's so extraordinary about RP2040. It's a $1.00 micro but it has two 133MHz 32bit cores, 2048KB flash, 264KB RAM and what's more you can actually buy the things! 

 

Of course, you should be able to master and use and exploir that hardware power. Impressing is not enough. With the additional price of a weaker AVR I pay less mental effort afterwards. With its many variants I solve many tasks much more simply and precisely, on a smaller area and with numerous advantageous details (for example 5V capability, robustness in general, more resilient outputs and much more).

You can't compare with the $1 chip alone, which is unwieldy for hobbyists. If then equipped on a $4 pico board... An AVR or PIC is available in a handy small DIP housing, interchangeable in a little IC socket.

Last Edited: Sun. Apr 17, 2022 - 02:25 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

GermanFranz wrote:
You can't compare with the $1 chip alone, which is unwieldy for hobbyists. If then equipped on a $4 pico board...
There are ARM 32 kit for only 1 US$,2 MB 240Mhz.Look’s interesting but since RPi able to overclock then became interesting.

www.tokopedia.com/madagang .Buy and Donated cheap electronics and manuscripts.

Last Edited: Mon. Apr 18, 2022 - 08:39 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0


clawson wrote:

This is what's so extraordinary about RP2040. It's a $1.00 micro but it has two 133MHz 32bit cores, 2048KB flash, 264KB RAM and what's more you can actually buy the things! 

 

You're forgetting the...

* inter-processor FIFOs

* inter-processor SPINLOCKs

* per-processor Hardware Dividers

* TWO interpolators per processor

 

...

 

 

 

For the money of both the chip and the PICO PCB this chip is pretty insane.

 

And some of the best documentation you'll ever see. And cross-platform development.

#1 Hardware Problem? https://www.avrfreaks.net/forum/...

#2 Hardware Problem? Read AVR042.

#3 All grounds are not created equal

#4 Have you proved your chip is running at xxMHz?

#5 "If you think you need floating point to solve the problem then you don't understand the problem. If you really do need floating point then you have a problem you do not understand."

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Brian Fairchild wrote:

You're forgetting the...

* inter-processor FIFOs

* inter-processor SPINLOCKs

* per-processor Hardware Dividers

* TWO interpolators per processor

 

yes

www.tokopedia.com/madagang .Buy and Donated cheap electronics and manuscripts.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1


I may have gone a bit OTT when deciding what to buy to evaluate the RP2040/Pico.


 

That's not a keyboards, it's a Pi400.

#1 Hardware Problem? https://www.avrfreaks.net/forum/...

#2 Hardware Problem? Read AVR042.

#3 All grounds are not created equal

#4 Have you proved your chip is running at xxMHz?

#5 "If you think you need floating point to solve the problem then you don't understand the problem. If you really do need floating point then you have a problem you do not understand."

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I had my eye on the pi400 but I'm waiting for one with a lot more ram :)

 

Neil

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I may have gone a bit OTT when deciding what to buy to evaluate the RP2040/Pico.

They certainly seem to prefer that you do development on a "big" RPi.  One of the major complaints from (rp2040) users is the difficulty of putting together a development environment on a windows system, and the RPi folk have admitted "we don't actually have any windows developers."

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

westfw wrote:

I may have gone a bit OTT when deciding what to buy to evaluate the RP2040/Pico.

They certainly seem to prefer that you do development on a "big" RPi.  One of the major complaints from (rp2040) users is the difficulty of putting together a development environment on a windows system, and the RPi folk have admitted "we don't actually have any windows developers."

 

That's what the Pi 4B is for. I plan on setting it up headless and just VNC into it.

 

The pi400 was a 'why not' purchase. It's stupidly cheap for a fully working computer that'll fit into a satchell.

#1 Hardware Problem? https://www.avrfreaks.net/forum/...

#2 Hardware Problem? Read AVR042.

#3 All grounds are not created equal

#4 Have you proved your chip is running at xxMHz?

#5 "If you think you need floating point to solve the problem then you don't understand the problem. If you really do need floating point then you have a problem you do not understand."

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

westfw wrote:
One of the major complaints from (rp2040) users is the difficulty of putting together a development environment on a windows system,
RP2040 on Windows at zero price? (Visual Studio Code)

At a relatively low price is VisualGDB.

Visual Studio Embedded will likely be along in a reasonable time duration.

 

Getting Started with C on Raspberry Pi Pico (Digi-Key)

[1/4 page]

Windows

Windows users are left out in the cold (mostly because there are no easy package managers or build systems that come pre-packaged with Windows).

Section 9.2 in the Getting Started guide shows you how to install the build system on Windows. However, I have two issues with the steps outlined there: 1) Build Tools for Visual Studio is 6 GB, and 2) you have to start VS Code from the Developer Command Prompt every time.

If you would like to avoid 1) and 2), I recommend following my guide here to install the build tools using MinGW instead.

Setting up the Raspberry Pi Pico for C/C++ Development on Windows by V. Hunter Adams (Cornell University, Electrical and Computer Engineering)
 

rp2040 – VisualGDB Tutorials

Visual Studio Embedded | AVR Freaks

 


Windows Package Manager | Microsoft Docs

 

Some MCU toolchains are on MinGW.

 

An Ada compiler very typically is configured also with C (reasons : functional C for drivers and such, package Interfaces.C)

So, RP2040 Ada BSP with an excellent zero price Ada IDE (transparency : operated the precursor, and, AdaCore has excellent support though at a substantial price)

What is GNAT Studio? | GitHub - AdaCore/gnatstudio: GNAT Studio is a powerful and lightweight IDE for Ada and SPARK.

... with support for C and C++ as well.

[picture]

Raspberry Pi is now a microcontroller | Page 3 | AVR Freaks

Interfacing with C | Low Level Programming — learn.adacore.com (approx 3/4 page)

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

RP2040-PICO-PC small computer made with the Raspberry Pi RP2040-PICO module first prototypes are ready | olimex

[last sentence]

The JTAG debugger is tested to work with OpenOCD/Eclipse/Visual Studio, ARM (Keil) IDE and IAR Systems EW.

IAR Embedded Workbench for Arm - Free trial version | IAR Systems

[bottom]

Please note the following for the Kickstart, size-limited version:

  • A 32 Kbyte code size limitation
  • Source code for runtime libraries is not included.
  • C-RUN is not available.
  • Limited technical support.

 

edit :

Compare MDK Editions (Arm)

 

edit2 :

KEIL Community Edition | AVR Freaks

 

"Dare to be naïve." - Buckminster Fuller

Last Edited: Thu. Apr 21, 2022 - 11:41 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

the difficulty of putting together a development environment on a windows system,

RP2040 on Windows at zero price? (Visual Studio Code)

Not impossible.  Just "difficult."  As I understand it, you need to build some of the tools from source, which means installing (by default?) one of the Microsoft Visual Studio Community editions (not "VS code".)

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Also available...

 

Pico in the Arduino IDE... https://www.tomshardware.com/how...

 

PlatformIO... https://docs.platformio.org/en/l...

#1 Hardware Problem? https://www.avrfreaks.net/forum/...

#2 Hardware Problem? Read AVR042.

#3 All grounds are not created equal

#4 Have you proved your chip is running at xxMHz?

#5 "If you think you need floating point to solve the problem then you don't understand the problem. If you really do need floating point then you have a problem you do not understand."

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

www.tokopedia.com/madagang .Buy and Donated cheap electronics and manuscripts.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

WIZnet; ETA 22-Jun'22 with a 7 week lead time.

Ethernet :

W5500-EVB-Pico Evaluation Board - WIZnet | Mouser

 

Wi-Fi :

WizFi360-EVB-Pico Evaluation Board - WIZnet | Mouser

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ETA 8-Jun'22

Exo Sense RP Multi-Sensor Modules - Sfera Labs | Mouser

...

  • RP2040 dual-core Arm Cortex® M0+ processor, clocked up to 133MHz, 264KB SRAM
  • 16MB onboard Flash memory

...

...

  • Optional earthquake sensor module

...

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 2


Last week I was at a trade fair in Germany and the Raspberry people were handing these out like candy.

I talked with one of the people at the booth that seemed more senior and praised the well written documentation - turns out he was involved in the writing. According to him, they have 32 million RP2040 in stock.

 

 

I guess now I have to find some time to play around with the RP Pico a bit.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Last week I was at a trade fair in Germany

Do you remember seeing Provertha there? (they make connectors...or at least that's what they claim... sad)

John Samperi

Ampertronics Pty. Ltd.

https://www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

Last Edited: Tue. Jun 28, 2022 - 09:58 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0


js wrote:
Do you remember seeing Provertha there? (they make connectors...or at least that's what they claim... sad)

 

Connectors that don't connect? cheeky No I don't think they were there, but I did see several connector manufacturers.

If you are interested, you can check here:   https://www.embedded-world.de/en/exhibitor-list just select "connectors" in the drop-down list, it's about mid way on the product types:

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Connectors that don't connect? 

Connectors that don't materialise.  sad They are usually at the electronics fair, I get an invitation every year for all it's worth.

John Samperi

Ampertronics Pty. Ltd.

https://www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

El Tangas wrote:
I guess now I have to find some time to play around with the RP Pico a bit.
Depend with Cliff Email If still stubborn the to W806 250 MHz controllers.

www.tokopedia.com/madagang .Buy and Donated cheap electronics and manuscripts.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Jeckson wrote:

Depend with Cliff Email

Da F... ?

 

I had a PM dialog with Jeckson over about 25-30 messages in which he kept insisting I give him my private email (the irony of that fact that PMs are effectively "email" anyway seems a little lost!). He seems to have got it into his head that I am somehow a supplier/retailer of Rpi Pico boards for UK/Europe. I have no idea where this notion came from. I am simply someone who recognizes that Pico packs a lot of punch for very little cost. I don't even have ONE myself (yet). I did try telling him (several times). Seems that message never got through and he thinks I am somehow connected to them. The closest I ever got to the Rpi foundation is that I exchanged a few tweets with Eben Upton. That's all.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

So Cliff...

 

When you get back to your office can you let me know the shipping status on my last order!

 

Thanks!

 

JC   

 

wink

Last Edited: Wed. Jun 29, 2022 - 07:46 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ho ho :-)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

 

First post in this thread says $4 for Rpi Pico2040. Now $6 gets you....

 

https://twitter.com/Raspberry_Pi...

 

 

Which is the same thing now with WiFi too - presumably going after the ESP8266/ESP32 market?

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The assembly of RPi Pico 2040 near Indonesia.Seems ideal beside W806 250 MHz controllers

www.tokopedia.com/madagang .Buy and Donated cheap electronics and manuscripts.

Last Edited: Sun. Jul 24, 2022 - 04:07 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

gchapman wrote:

ETA 24-Aug'22

WIZ5xxSR-RP Ethernet Modules - WIZnet | Mouser

 

Seems that I’m going to purchasing at near country for Raspberry’s

www.tokopedia.com/madagang .Buy and Donated cheap electronics and manuscripts.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

in stock as of today though with a long lead time message

IDM2040-7A Intelligent Display Module - Bridgetek | Mouser

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1


With my annual holiday coming up, I was trying to decide what tech to take. I normally take something to keep me amused if there's a rainy day. So I've put this together. It's a pair of Pico's back to back on breakout boards. One will be flashed to run Micropython, the other flashed to run BASIC. Nothing else needed as I'll have a laptop with me already.

 

 

The breakouts are really cheap and come from a company called Cytron.

#1 Hardware Problem? https://www.avrfreaks.net/forum/...

#2 Hardware Problem? Read AVR042.

#3 All grounds are not created equal

#4 Have you proved your chip is running at xxMHz?

#5 "If you think you need floating point to solve the problem then you don't understand the problem. If you really do need floating point then you have a problem you do not understand."

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The double row sockets is a clever feature.

Brian Fairchild wrote:

It's at this point that we really do need the OP to come back and engage with us. So many questions..........

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ralphd wrote:

With the PIO units and the relatively large 256kB SRAM, I could see it being used for a nice little logic analyzer.

$4 Logic Analyzer Based on Raspberry Pi Pico – EEJournal

by Steven Leibson

August 22, 2022

[24-bit, 100Msps, 32K samples]

...

Instead, Dr. [Agustín Gimenez] Bernad harnessed the power of the two PIO (programmable I/O) engines designed into the device.

...

Even these PIO state machines are not capable of sampling at 100 Msamples/sec with trigger conditions, but gang all eight together with some imaginative hackery, and you have a logic analyzer.

...

[edge trigger at 100Msps, complex pattern trigger at reduced speed, fast pattern trigger for five channels at 100Msps]

...

Dr. Bernad has already implemented an SPI protocol analyzer for the logic analyzer and plans to implement additional protocol analyzers for I2C and RS-232, and system bus analyzers for old computers with sixteen address bits and eight 8 data bits.

...

[level translator PCBA]

...

Dr. Bernad developed his own GUI for the logic analyzer, explaining that it’s easier for him to develop his own Windows-based GUI than it is to use a 3rd-party GUI framework.

...

For more information about Dr. Bernad’s logic analyzer based on the Raspberry Pi Pico, click here.

 

"Dare to be naïve." - Buckminster Fuller