About being able to create microcontroller (specifically, Arduino) programs on a Pi and then downloading them? That's been discussed on occasion for some years and enough to fall into the "common knowledge" bucket.Taka wrote:Great, thank you! I didnot know your last information. Do you know where you have this from?
BCM2837 is an SoC, not a chipset. BCM2837 is the product. ARM Cortex-A53 is a description/specification of part of what is in the BCM2837. The original version of the Pi2B used a BCM2836. The initial Model B and Model A, plus the existing B+, A+, Pi0, Pi0W and CM all use the BCM2835. (To avoid confusion, let me note that the CM3 and CM3L use the BCM2837.)I am currently researching for some information on the "Broadcom BCM2837 chipset" and the "64-bit quad-core ARM Cortex-A53".
And now I feel like such a noob:
I know processors from the Computer and now there are suddenly two names listed for the RaspberryPi o.o
Thank you again for your help!
The comparison I worked out a few years ago was... Arduino for the brawn (motor control, sensor input, analog I/O...) and Pi for the brains (data analysis and control). They are not *competing* devices, but cooperative devices.NotRequired wrote:You can consider a microcontroller (like arduino's) like smart dumbness. The are excellent for reading sensors and reacting to the readings, eg. read a moisture sensor and adjust a (water) valve accodingly. They are also very often used for controlling lights (various LED implementations, strips, remotecontrolled bulbs) and so on. Microcontrollers can do their job with high accuracy while they consume very little energy - they may in fact run for a long time on simple batteries. There is info on the net where people have had an arduino running on as little as a single coin cell for over a year!!
Raspberry is an entire computer with CPU, GPU, RAM, Ethernet-controller, Wifi-controller (some models), USB-controllers and so on. This makes a Raspberry more capable of doing much more advanced tasks, but a Raspberry will require an operating system to run on it in order to do anything with it. This makes the Raspberry bulkier, less accurate and much less energy efficient - you will hardly be able to run a Raspberry on batteries for more than 12-24 hours unless the battery pack becomes impractical.
TLDR; Use a microcontroller where possible and a Raspberry where not!
That comes down to which would be best for the task you were wanting to undertake and what the criteria for "best" is.Taka wrote:I thought writing some text about 'when to use the Raspberry Pi and when a microcontroller' would be a great idea.
I can give an example of a project-in-progress a friend of mine is doing the microcontroller/hardware side of for me... I use a Pi (with RPF display) as an alarm clock. It is connected to a 2x2 audio matrix switch with my wife's PC on the other input. Sometimes she forgets to switch the speakers back to the Pi in the evening and we don't get our "wake up call".hippy wrote:That comes down to which would be best for the task you were wanting to undertake and what the criteria for "best" is.Taka wrote:I thought writing some text about 'when to use the Raspberry Pi and when a microcontroller' would be a great idea.
Certain tasks may lean towards favouring a micro, others may lean towards favouring a Pi, but there will often still be a case for going the other way.
There is no simple answer on which to choose except in the case where one cannot facilitate something which is required but the other can.
If one wants to use a Pi as much like a microcontroller as one can; it's always possible to run code only in the GPU and never even enable the ARM CPU(s).Gavinmc42 wrote:Basically doing microcontroler stuff on a Pi.
Sure, have you the source and compiler for the ThreedX RTOS on the VC4?If one wants to use a Pi as much like a microcontroller as one can; it's always possible to run code only in the GPU and never even enable the ARM CPU(s).
Can't agree with you. If you want to understand something...read the manual. The problem of people asking questions that are trivially answered if you know your way around the manual spawned its own acronym: RTFM.Gavinmc42 wrote: I just don't want to read the manual or even RE the manual for one chip or one family of chips.
Those things are just too big now and where is the full manual for the Pi?
That's pretty much the whole idea behind high level languages, going all the way back to FORTRAN and the CODASYL committee in the 1950s. Somewhat more recently, the idea of platform independence has been added...although it never seems to be quite perfectly implemented.And with high level tools who needs to read the manual to write an app?
These is no one manual for the Pi's CPU chips.Can't agree with you. If you want to understand something...read the manual
How quaint. It must have been great when one FM would get you through an entire career...RTFM....
I trust you understand that, at one time, IBM was the secodnd largest publishing company in the world (the bigest was the US government). They didn't list manuals as being part of the "Systems Reference *Library*" for nothing. The PoPs manual was strictly the S/360 and S/370 *hardware* manual. It covered--as already mentioned--the instruction set. It also covered the details of the PSW, CSW, and CCWs, though those areas were rarely looked at by applications programmers. There were vast numbers of other manuals. I even found a bug which IBM declined fix, but changed a manual instead (they changed it say that what I had tried to do was unsupported by that access method in that language...I seriously doubt anyone here is interested in the details). I usually had 3 to 4 manuals at my desk, and I had access to many more on the occasions I needed them.Heater wrote:W. H. Heydt,How quaint. It must have been great when one FM would get you through an entire career...RTFM....
Are you seriously asserting that there are no manuals for the ARMv8 Cortex-A53 (or other cores used in various Pis)? I rather suspect you are mistaken in that. Now if you are asserting that there is no single manual that covers the totality of the SoCs used in Pis, I would partially agree with you. Much of the VC4 is proprietary. However, there are published interface specifications that you need to work with much of the VC 4. There is even a language specification that covers the major interface: OpenGLES, plus there is a work-in-progress driver for OpenGL. A modest search should turn up manuals to cover those languages.Gavinmc42 wrote:These is no one manual for the Pi's CPU chips.Can't agree with you. If you want to understand something...read the manual
And? If you don't know what's in there and what the interface looks like, it may just as well not exist for you.It's in bits and pieces with stuff missing.
MCs are a good deal simpler than SoCs. And, by the way, I don't recall Intel ever calling the 4004 a "microcontroller". It was a 4-bit computer originally designed to keep from having to design endless one-off calculator chips. I remember when they held a contest to see who could write the most complex program for the 4004...something Intel repeated with the 8008.Microcontrollers have manuals, I have boxes of them, going back to 4004.
I have read them all, some 8 bit ones I nearly memorized.
And this is a problem...why?These is so much stuff now in current SoC's, it is a collection of manual's.
One step--and, if needed--one manual at a time. You don't need to know the guts of the VC4 to learn how to program. You don't even need an ARM manual to learn how to program in anything other than the ARM assembly language. What you need is a manual on the language you are learning.So how is a newbie going to master the Pi? throw the non existent manual at him and say RTFM?
Kernel source if you want to learn about the kernel (presumably after you have C solidly under your belt). Gcc source if you want to see how a complier is written (and I would point out that there are college courses on that as a specific subject). Python...yup there are manuals. Do you want to learn it without access to at leat one? As for the utlities...the programmers manuals for them are at your finger tips through the man command. Those specific one have entire works devoted to the ins and outs, since they are complex in and of themselves...shell programming (bash is *1* shell) is a pretty broad subject and there are manuals for bash...as well as sh, ksh, Bourne, csh, and probably others. You also missed both vi and emacs (not to pick sides...).1) Oh, and here's the Kernel source, read that too. While you are at it, here is GCC, you may need version 4.9 or 6.2 or...
But most people use Python so here's that too...... Don't forget Bash, Awk, SED, they will come in handy...
It may be just me, but I'd recommend that people learn how to work without IDEs first. You've been complaining about all the stuff hidden away where you can't get at it (mostly in the VC4). IDEs do that at a different level.2) Or here is IDE, here are some examples, load project, compile and run 1 minute later.
The second method is now available for Pi's. Is it an apple or orange?
Some sort of hybrid fruit --Rasapange?
Fair enough. I worked in shops that had microfiche of entire IBM mainframe operating systems. I knew one guy who looked through ti to find out how IBM had done a particular bit that he had needed to do himself in hopes of finding that IBM had done it better. He discovered that his solution was actually better code than theirs. He was rather perturbed...Heater wrote:W. H. Heydt,
Sorry, just having a little dig. I'm sure IBM published a lot. As it happens the only IBM manual I ever read was the BIOS reference for the original IBM PC. Which had a complete BIOS listing in the appendix. Those were the days.
Me neither, I put my time in, finding errata in chips and manuals.Having spent decades working in many programming languages and with many platforms and operating systems I have had to study dozens of manuals. I don't want to do that anymore. Not unless someone is paying.
Nope. I write GPU (VPU?) assembler, create a bootload.bin, boot and execute that.Gavinmc42 wrote:Sure, have you the source and compiler for the ThreedX RTOS on the VC4?If one wants to use a Pi as much like a microcontroller as one can; it's always possible to run code only in the GPU and never even enable the ARM CPU(s).
I presume you mean "want to be able to use it". It doesn't worry me if there are things which cannot be used. That doesn't stop a Pi being used as if a micro, and most micros won't even have what cannot be used anyway. I don't see unusable silicon as a waste; at least no more of a waste than silicon which I am not using or don't want to use. I am happy to throw away half of anything so long as I get the half I want and the price is fair for getting that.Gavinmc42 wrote:Unused hardware is a waste of silicon, if it is on the die I want to use it.