Propeller 2 FAQ research
![VonSzarvas](https://forums.parallax.com/uploads/userpics/814/n2KKWCY80HQA7.png)
Hi everyone!
Could I ask your help ?
What would you want to see in an FAQ document ?
Especially for beginners, or if you were explaining the Propeller P2 to somebody for the first time, what would you want to see (or have liked to have seen) !
All ideas very welcome, with the aim being to produce a webpage and/or pdf doc of the key FAQs to help anyone get started.
One request, please start a new thread if you'd like to reply to comments made here. That way we can avoid losing the important content in a potential sea of distractions!
Thank you very much.
Comments
The obvious things are to go over the P2 features/specs (perhaps with some FAQ entries going deeper into certin aspects, such as the video capabilities or the CPU performance and such. I think the P1 FAQ has that sort of stuff) and oddball terminology (cog, smartpin vs actual pin,object,driver,etc).
I think having an entry on the future availability and support is also useful.
One of the things that is not talked about is the fact that the P1/P2 runs program and data out of main memory where as on all other microcontrollers program and data are written to onboard flash memory. As the program runs it maps flash memory to onboard main ram for execution. The data memory is separate from program memory.
The P1/P2 thus has a smaller program space to run programs and data from.
Mike
I like to see:
The P1 had a wonderful document, that many others have requested many times - before, and now - that explained as no other document from the basics to the complex features, with examples in between. That's where all the efforts should be spent?
One of the things I am totally confused about, as a newbie, is "Where is my code?"
For now I'm writing spin2 - then compiling it with Flexprop, and programming the P2 - and where's my code? Is this being executed in the Hub? I know the hub can execute things - is it executing this? Is there an 'assumed cog' for running this stuff? Where's my memories? Where is the code itself being stored in the chip??
And where is that RAM that so vauntingly swore... Do I have 512k left over, or is that also being used for my code to run in? How much space do I have per cog left over?
I'm coming up from below, wherein one specified chips as AND/OR gates. I like to know where my bits are.
And, to be blunt, I'm confused. I have made some progress in the wilderness, but I think it could be made easier. Thanks. S.
I've done (and still do!) quite a lot of work with AVRs, and they're like:
1) Program goes in the Flash
2) Temporary stuff goes in the RAM
3) Semi-permanent stuff goes in the EEPROM.
And memory management in the AVR is almost that simple. Obviously that won't do for a much more complex chip like the P2, but it might be something to aspire to. S.
FlexProp has a listing output file so this will help for starters.
FlexProp compiles your spin2 code (ie not bytecode which pnut/PropTool uses so the bytecode is in hub) so AFAIK it will be hubexec - perhaps someone else can chime in.
To a newbie, a FlexProp listing output file is about as comprehensible as a six-legged cat from Mars barfing upon the keyboard. Thank you. S.
I get a few things when talking to people unfamiliar with Prop chips:
"Can it do?"
Would be great to list off a bunch of these and have a simple explanation, or link to sample project / code.
DAC/ADC
Video
USB
Serial
These topics are an open book, as we all know. That is the nature of a highly software driven device. But, newbies want to know what can be done right now, easily.
More is possible and is / will be happening too. They need to know that too.
"What do I do about 5V signals?"
Can I use the raw chip or?
Modules vs raw chip, PCB needed, etc... what can be done on a breadboard, how?
"Can I program it in..."
C, BASIC, Spin, Assembly, Python
Newbies need to know where the tool is and sample code and what is easy, or what library code equivalent they can expect.
JTAG / Debug
Newbies need to know what they get and how it works. No JTAG, but... we have a spiffy thing right here, and this is what you do.
"Is this special, will it still be available?"
"Who uses it?"
I owe Ken the rest of my story, and he needs others. General user stories are good too.
Embedded product design
Research and dev
Rapid prototype to market
Students
Design engineers
Etc...
"Isn't multicore, parallel, concurrent programming hard?"
Nope, not the way it is done on a Prop chip. Why that is and what it means.
"Does it work with Arduino"
"Math"
"Specs plz"
Those are the most common discussion topics I have entertained over the last year or so.
Can the P2 generate real random numbers by "tossing the pll bit salad"?
Can the P2 be parallel programmed?, or does the programming process require one at a time?
What is the upper limit on voltage/overclocking? (just general info, i know this is a deep topic)
And the lower limit, save that battery!
What is the range for the input clock, does it have a internal clock? How is the internal clock compared to the P1?
Are the PLLs different?
Are there still 2 counters per cog?
How much ram/flash total/per cog? is program space expandable with external chips or is it the same as the p1?
What encryption features does the programming have (to protect the eeprom data?) Is encryption forced?
Can the pins used to program the p2 be user configurable? (be able to program the chip on totally other pins)
Some chips lock up pretty bad when power glitching, any info on that? What happens if you power glitch the p2?(toggle the power supply at specific rates )
Does it lock up every time, does it spit its unencrypted program out pins like some chips will?
Could it get damaged from power glitching? How about after glitching 2 million cycles? (simulate power failure/ power cycling)
Can the internal ram/program storage be damaged by repeated programming? Wear leveling?
MTBF?
At what voltage will a p2 break, ever? (so i know if I accidentally applied that voltage, im done) (this would be higher than abs max.)
Do pins have internal diodes like the p1?
My questions are obscure, but ones I personally have. Some I can get on a datasheet (is one available yet?) but having it in a faq would be nice.
I'd hazard a guess that "Too many programming languages!" is also a problem. My hat's off to Peter Jakacki, but Forth? Okay...
I'm never going to use Forth on an embedded microcontroller. Some might.
The problem being that a newbie has no idea which way to go. Should they learn Python? C? Forth? Spin2? PASM? Everyone will argue their way is 'easier' or 'better' or 'faster', but how should a newbie judge? They won't have the slightest clue, and might just go do something else instead.
In my opinion, it would be better to have one language to, as it were, rule them all. Spin2 would be the candidate, but it's so slow when interpreted... Defeats all the purpose of having a 350MHz chip when I can blink an LED faster with a 20MHz AVR.
Me being grumpy again. S.