Shop OBEX P1 Docs P2 Docs Learn Events
Why confine the MCU with 32k? — Parallax Forums

Why confine the MCU with 32k?

newprop0602newprop0602 Posts: 8
edited 2006-05-01 00:03 in Propeller 1
Hello all,

I am currently evaluating serveral MCUs for some Audio Projects (USB Valve DAC, Upsampling CD Player,...) and i almost thought that the dsPIC-familiy is good enough for my needs.

Until i found the Propeller.

It looks so much more powerful, modern and easy to deal with.
Until you look at the details:

32k?
When·dealing with an·8-core-32bit-MCU, why only 32k?
I am also missing an integrated Memory hub or controller for storage·or memory (IDE, ATA, SD, SDRAM,...), which would·raise the Propeller beyond any known low cost MCU.
No offense, but we are talking about a 2006 multicore·Product with less memory than a 1983 Commodore C64.

Interfaces?
I can only see one I2C interface from the drawings so far.
What about at least two I2C-Interfaces (for instance to receive Digital Data as slave on line 1 - maybe from TI TAS1020, upsample, antialias· and output finalized audio to a DAC as Master in a second I2C).
Doing all this over one line is for sure limiting accurracy and bandwidth (read 192k/Sek * 24Bit * 2 Channels over one I2C, dont know the timing will look·it example...)
btw, will there be SPI also, or has it to be implemented by the developer?

Memory:
The dsPIC comes with a selection of Flash, RAM and EEPROM, in variable sizes.
Why has Parallax left that versatile self-containment out?
After all, Propeller should be an MCU not a CPU.

ADC, DAC, and so on:
dsPIC gives you·up to·32·12Bit ADCs, at Propeller you have to sacrifice 12 I/O-Pins and a 12 Resistor-Network to build you·ONE!
Why?
If building an expensive MCU (5 times more than dsPIC) should at least have some integrated functionality.

Development board:
If this is MCU the next big thing, why such a tiny and stuffed Developer board without extensions.
I think of IR5, IRDA, USB Streaming, USB Serial, ADCs, IDE Controller, WLAN, Bluetooth,...
Where to plug those and how?

All in all, i will watch this product, and i will order the dev board as soon it is available, but i find that the possibilites of such a MCU-beast are not explored yet.

best regards

Thomas

Comments

  • GadgetmanGadgetman Posts: 2,436
    edited 2006-04-30 12:57
    As I understand it, the main reason for the 32KB (8K LWord) is addressing.
    the 32bit instructions not only contains the OPcode(what to do) but also the address of the data to be operated on, which gies it a rather nice speed-boost.
    A larger memory would require longer instructions, and it would no longer fit in 32bits...

    Actually, there ARE NO I2C INTERFACES built into the Propeller.
    But there's no problem in programming one or more COGs to use ANY of the 32 I/O-pins to act as one or more I2C interfaces.
    So in theory you could have 8(!) I2C interfaces. Of course that wouldn't leave any COGs free for any other work...

    It also does high-speed Serial (400Kb/s or so, I think has been mentioned?)
    and 1-Wire is also being developed by someone.

    Serial ports may need level-interfaces (MAX232 or similar chips), but 1-Wire only needs a pull-up resistor.

    ADC is possible with just a few discrete components, and on any I/O-pin you want.
    (I have no idea of what you're doing with all those pins and resistors, but I suggest you browse this forum for explanations. This HAS been demonstrated. They even do real-time BODE-plots and other stuff I have no idea what is) Even the BS1 can do a decent A/D conversion...

    Large storage interfaces like CF/MMC/SD/SmartMedia/whatever...
    These generally need a dedicated controller and building that into the Propeller would have made it bigger, more expensive, and would have taken even longer to finish. It would probably also have used a lot more power...
    (I like the idea of something that can function at as little as 3uA/1COG@20KHz, then suddenly go full tilt with 75mA/8COG@80MHz )

    The grand idea for the Propeller is a simple(well, relatively) MCU with as little 'dedicated' hardware as possible, but which can do anything you want in software...

    The reason the Dev-board doesn't have all that Smile(my opinion) is that very few hobbyists need them, and those who does need them is probably able to build it themselves.

    If you REALLY need a large memory(for buffering, I assume), use a normal RAM chip connected to the I/O-pins.
    (You may have to do a bit of multiplexing or other tricks, or wait until the next version with 64 I/O-pins)

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Don't visit my new website...
  • El PaisaEl Paisa Posts: 375
    edited 2006-04-30 14:21
    Could you make a distintion between opcode storage and data storage?
    Other MCUs have larger program (opcode) storage (up to 256KB).
  • newprop0602newprop0602 Posts: 8
    edited 2006-04-30 14:35
    Gadgetman said...
    The reason the Dev-board doesn't have all that Smile(my opinion) is that very few hobbyists need them, and those who does need them is probably able to build it themselves.

    Hi,

    I have some theoretical idea about a digital stabilized Power supply, where i would need AD and DA for correction.

    The idea with a development board is that the "Smile" is there to make some concept proofs, without breaking your fingers soldering SMD components for days.
    Maybe its just me, but i am a fan of rapid prototyping.

    Well thanks anyway for the informations, maybe there is not enough doku on the parallax website.

    Hopefully the dev board, and Spin- and Ref-Documentation is online soon.

    Best regards

    Thomas
  • Mike GreenMike Green Posts: 23,101
    edited 2006-04-30 15:42
    As Chip has mentioned, the Propellor die is already fairly large. Much more internal memory would require very significant chip real estate, decrease the yield, and drive up the cost significantly and the Propellor is really intended as a general purpose microcontroller. The history of computers is littered with examples of ideas that resurface from time to time, driven by financial and technological constraints. Currently, one of the big bottlenecks is how to get data in and out of a device. That's why we've moved to SATA, Firewire, USB, and SPI/I2C from SCSI, IDE, Parallel-Ports and parallel busses. The Propellor can certainly do multiple SPI/I2C and can easily do USB slave although there are specialized external devices that do a better job cheaply (like the FTDI serial USB interfaces). There are huge numbers of serial AD/DA converters that can attach directly to the Propellor using 2-3 pins, are cheap, small, low-power, and very accurate. Why not use them rather than complicating the already complex Propellor design for a limited market? Microchip already drives me crazy with hundreds of slightly different microprocessors with just the right combination of on-chip peripherals for a particular customer and application (or the anticipation of such a customer). The same notion applies to external memory. Who knows what will be needed for a particular application? Parallax expects to make a lot of chips someday, but nothing like an outfit like Microchip or Motorola. For now and the next few years, you can attach nearly anything you want to the Propellor. There are MMC cards up to several hundred MB or 128MBbyte I2C chips easily attachable with only a few pins needed.

    Regarding the tiny developer board. Keep in mind that this is the first. Look at the variety of developer tools already available from Parallax for the Stamp which has been out for years in gradually improving incarnations. You can get something like the BOE board or their Professional Developer Board. I'm sure they will come out with something fancier once they have a year or two of customer experience and feedback under their belt. By then they'll probably have the 64-pin Propellor and/or a 2nd generation chip (as discussed already - with a hardware multiply and, maybe, some other tweeks like an improved counter and/or PLL).
  • Jon WilliamsJon Williams Posts: 6,491
    edited 2006-04-30 16:37
    We are actively working on a Propeller PDB, and it is not a year away -- you will see it much sooner.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Jon Williams
    Applications Engineer, Parallax
  • pjvpjv Posts: 1,903
    edited 2006-04-30 17:44
    Hi Newprop0602;

    In my opinion, the beauty of the Propeller is the fact that it has NO internal peripherals. Instead it has RAW POWER. And with that, it is I who can choose how to best deploy that. If a manufacturer decides to dedicate silicon realestate to peripherals, he is required to decide what is "the right mix", and while they can accommodate some peoples' needs just right, at other times that realestate goes unused. I'd rather "roll my own".

    As for what Chip and Co "could" have done or "should" have done, that is their business. From what I can glean, they wanted to build a novel "fun to develop with" deterministic processor with some significant capability. From my perspective, I believe they have achieved that.

    Sure we all wish it was yet still faster, cheaper, and more general purpose features inside, and they do have expanded plans for the future. So give them a break; the silicon is only just out, and still "dripping wet".

    While this chip is not (nor was it intended) for everyone, but a lot of us are liking it.

    Cheers,

    Peter (pjv)
  • Paul BakerPaul Baker Posts: 6,351
    edited 2006-04-30 18:41
    Newprop, I notice alot of inconsistancies in your statements, you admit it should be a MCU, but you complain it doesn't have SDRAM or ATA interface, something typically done in in CPUs.

    If you have followed the SX line (which Chip the creator of the Propeller also was involved in creating), you will notice a fundamental concept at work here: Using silicon for dedicated perpherials is a waste of silicon. Every time you use a microcontroller and don't use one of it's dedicated peripherals, that silicon is wasted and you spent money on nothing.

    You want a microcontoller capable of doing anything under the sun, according to you you want it to have: Flash, SDRAM, ATA, SD, many channel, high precision·ADC, IR5, IRDA, SPI, USB Streaming, USB Serial, IDE Controller, WLAN, Bluetooth and probably a few more you can think of. I would be willing to wager a fair sum of money that you cannot come up with an application of practical use that could be fit into code and data space commonly availible in MCUs that uses each and every peripheral you desire. If you can't come up with such a killer app, you are wasting silicon and wasting your money, and even if you could dream up such an application, will each and every application you design still fit this criteria?

    The entire concept is to provide you with generalized silicon, which could be used for ANY purpose you so design. While the current propeller may be ill equipped to perform a few of the tasks you want, the next generation should be capable of implementing any of these.

    There is more than one way to do DAC and ADC, and resistor networks is not the best way because of tolerances of resistors. To get 12 bits of precision, you dont need 12 pins.

    Working with this concept requires thinking outside the box, but in exchange you are gaining the highest performace to cost ratio obtainable given the process in which the silicon was manufactured. This approach isn't for everyone, but those with enough percervence are paid a handsome reward.

    You are witnessing the birth of a new microcontroller, and as such its not going to be everything to everyone at the beginning. But if you know Parallax, you would know that they are an incremental company, building without relent in an effort to squeeze more and more utility out of existing products. If you are unwilling to wait or become an integral member of this process, I suggest that you continue developing with your dsPIC, and come back in a few years and see where the propeller is as far as demonstrated capability.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    1+1=10
  • Paul BakerPaul Baker Posts: 6,351
    edited 2006-04-30 18:47
    Gadgetman, theres nothing preventing you from using a single cog to do multiple I2C channels. I would bet you could design a 16 channel I2C (using all 32 bits) and still have some cogs left over to performs some other tasks, the JMPRET instruction·is a great way to "multithread" within a cog to perform multiple functions as demostrated in the serial object.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    1+1=10
  • GadgetmanGadgetman Posts: 2,436
    edited 2006-04-30 18:55
    You may be right about that. I'm not an expert on I2C...

    As I2C is an addressed transmission protocol, it probably doesn't matter.
    If you need to do high-volume, high-speed transfers, it may be a good idea to dedicate COGs anyway?
    (Not that I have any cluse what the speed limits on I2C is)

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Don't visit my new website...
  • Paul BakerPaul Baker Posts: 6,351
    edited 2006-04-30 19:05
    You might not be able to do 32 1Mbps I2Cs (which isnt a standardized transmission rate yet), but you could probaly do 400kbps which is the "fast" rate I2C supported by most peripherals. Talking about this many channel I2C is a little silly since you can hang so many peripherals off a single I2C channel.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    1+1=10
  • newprop0602newprop0602 Posts: 8
    edited 2006-04-30 19:31
    Hi Peter,

    First of all, it is good to hear that it is worked on a·Pro Devboard (See above), as this Beast has so many possibilities, that it just deserves it.
    I had so many ideas by only reading the samples...

    pjv said...
    Hi Newprop0602;

    In my opinion, the beauty of the Propeller is the fact that it has NO internal peripherals. Instead it has RAW POWER.
    But this is exactly the problem.
    Everything i want needs lots of work (3rd party components, expensive prototyping sockets, SMD soldering - with lots of profanity, Tests, ...) and/or needs coding (and there comes the 32k)·to emulate the functionality.

    So, this product will stand·or fall with either AddOn-Libraries or a very active community.

    Or it will suffer the Acorn RISC fate (Fast CPU, you could do everything, but no one was willing to reinvent the wheel...).

    Never the less, i will order a dev board asap.

    Thanks for all the answers.

    Thomas
  • Stan671Stan671 Posts: 103
    edited 2006-04-30 19:46
    Thomas:

    "Neo, you need to free your mind."

    The deep concepts behind this new kind of microcontroller are on a different plane from what there is out there now.· The philosophy is not to cram everything short of the kitchen sink inside the chip and then create a programming language with tons of instructions in it to support all of these features.· Simplicity and power and potential are the watchwords of the design philosphy.

    How many people has used a microcontroller and found that there was stuff in there you never used?· What a waste.· How many people used a microcontroller and found it lacking in one or two critical things that you needed for a project?· Very frustrating.· How many people have used a microcontroller and had to bend and twist it (figuratively) to get it to do what you wanted because of it's ridgid architecture and/or obscure programming constructs?· Annoying.

    The Propeller is not only thinking outside the box, but it is thinking outside the room, down the hall, out the front door and half way across the lawn. <grin>· The Propeller is more a new concept·than·it is a new piece of silicon.

    Get to know the chip by reading this forum and the examples discussed here.· You will find that as you start to understand the potential of this idea, that you will answer your own questions about why is certain stuff not included.· And you will sit there wide-eyed when you·recognize the genius and foresight that is the concept of the Propeller.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Stan Dobrowski
  • newprop0602newprop0602 Posts: 8
    edited 2006-04-30 20:02
    Paul Baker said...
    Newprop, I notice alot of inconsistancies in your statements, you admit it should be a MCU, but you complain it doesn't have SDRAM or ATA interface, something typically done in in CPUs.
    Hi Paul,

    At most CPUs ATA and in many cases SDRAM (dont look, AMD-Users) is done in the Chipsets (North-South bridge).
    My problem (since i found the Parallax-Site and studied the documents about Propeller) is, that you have an extremly powerful, versatile MCU, with I/Os Galore, with such a high I/O Bandwith that it can render TV/VGA in realtime, and on the other hand 32k for everything and no predefined set of industry standard I/Os.

    I just hope, that Parallax will provide the basics (AD, DA, I2C, SPI, (G)LCD,...) either in Samplelibraries, or at least sell it as a pro SDK.
    I would be happy to buy it, to just not spend nights in front of a protocol analyzer.

    Greetings

    Thomas
    ·
  • newprop0602newprop0602 Posts: 8
    edited 2006-04-30 20:09
    Stan671 said...
    Thomas:

    "Neo, you need to free your mind."

    Hi Stan,

    OK, i try to free my mind, but so far i may be too much dsPIC-minded, as i just evaluated them (without developing too much love for them).

    I certainly hope, that this promising product is surprising me with a strong support and a powerful SDK.

    Greetings from Austria

    Thomas
  • GadgetmanGadgetman Posts: 2,436
    edited 2006-04-30 20:12
    Have you looked in the Propeller Object Exchange?

    I found SPI, Serial, LCD, Floating-point maths, massive servo-control, inductive measurements...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Don't visit my new website...
  • CJCJ Posts: 470
    edited 2006-04-30 20:17
    Newprop,

    all of the propeller software is open source, so once someone makes an object for a protocol, it can be transported to another project with minimal effort, which is good for the development community (pretested subsystems and all smile.gif) more time can go towards the concept rather than the interface of various parts.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Who says you have to have knowledge to use it?

    I've killed a fly with my bare mind.
  • newprop0602newprop0602 Posts: 8
    edited 2006-04-30 21:26
    Hi guys,

    Jepp, i looked at the Object library (which should maybe called Samples).
    I cant yet find my way through it, as the basic knowledge about the built-in objects and their capabilities are nowhere to find. At least I get an idea, and it doesnt look like rocket science.
    I hope the IDE has excellent debugging (step - trace, one can dream) features.

    @JC: The problem is to find people willing to give their code to the public.
    I just hope that the community will be so open minded.

    Greetings

    Thomas
  • CJCJ Posts: 470
    edited 2006-04-30 21:34
    From what I have seen of this community, that won't be a problem. smile.gif

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Who says you have to have knowledge to use it?

    I've killed a fly with my bare mind.
  • Paul BakerPaul Baker Posts: 6,351
    edited 2006-04-30 21:44
    newprop0602 said...

    ·hope the IDE has excellent debugging (step - trace, one can dream) features.

    Sorry, but it doesn't, trying to do multiprocessor ICD is·extremely difficult and fraught with problems. Imagine trying to keep track of 8 copies of everything simultaneously.

    Ive been toying with the idea of creating a debugger, by using two cogs (a supervisor, and an execution slave), and creating a virtual cog in the hub memory where the memory map of the executing cog is kept. Its a monumental task, if I do attempt it Ill start with a disasembler (required to provide a code listing).

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    1+1=10
  • SteveWSteveW Posts: 246
    edited 2006-04-30 22:28
    "Or it will suffer the Acorn RISC fate (Fast CPU, you could do everything, but no one was willing to reinvent the wheel...)."

    Err, you're aware you're talking about the ARM architecture there? About as rampantly successful a CPU as you could possibly hope for... Many of us have been reinventing the wheel ever since, and it seems to be a worthwhile effort. Fun, too.

    It sounds as if you weren't keen on implementing peripherals in software back then, and you still aren't. Fair enough, but I wouldn't rule out the technique - it's a very good way of wringing performance out of small, inexpensive silicon. It does involve you in doing some work, mind. Up to you, but complaining that silicon isn't exactly like all the other products on the market is a bit odd. Propeller's interesting _because_ it's different. If it was just another PIC, AVR, Z80, whatever derivative, what would be the point?

    Steve
  • newprop0602newprop0602 Posts: 8
    edited 2006-04-30 22:33
    Paul Baker said...
    Sorry, but it doesn't, trying to do multiprocessor ICD is·extremely difficult and fraught with problems. Imagine trying to keep track of 8 copies of everything simultaneously.
    Hi Paul,

    This is an explanation i can live with.
    Problem is, if you code some low level stuff (like a·Paint-list style Graphic driver) and you want to know if the·Interface to, lets say, the external SRAM is working (or if cursor handling works, or windowing restrictions), you are deploying debug after debug version.
    Hmm, so i better check ebay for a logic analyzer...
    ;-)
  • newprop0602newprop0602 Posts: 8
    edited 2006-04-30 22:47
    SteveW said...
    "Or it will suffer the Acorn RISC fate (Fast CPU, you could do everything, but no one was willing to reinvent the wheel...)."

    Err, you're aware you're talking about the ARM architecture there? About as rampantly successful a CPU as you could possibly hope for... Many of us have been reinventing the wheel ever since, and it seems to be a worthwhile effort. Fun, too.

    Well, i was programming since PET, and when the Acorn arrived, everybody watched the Raytrace-Demo, and nobody (except one very unhappy friend of mine) opened their wallets and started coding.
    Over the last decades, i have seen more than 50 development tools, and learned about 20 languages (half of them i forgot already, some on purpose).
    I think, since the late 1990's we arrived at Component based Development, OO, n-tier, Communication Services and distributed computing.
    And since we learned that a GB costs 45$, we bloat (J2EE, .NET).

    Now it seems to be my turn to step back and go near the silicon again.
    Maybe i become inert...

    CU

    Thomas
  • SteveWSteveW Posts: 246
    edited 2006-04-30 23:21
    >Now it seems to be my turn to step back and go near the silicon again.

    Yeah, go on. It's good for the soul [noparse]:)[/noparse]
    If nothing else, you'll wonder how a 4GHz processor can be soooo slow at taking interrupts...

    Steve
  • Paul BakerPaul Baker Posts: 6,351
    edited 2006-05-01 00:03
    newprop0602 said...
    Paul Baker said...
    Sorry, but it doesn't, trying to do multiprocessor ICD is·extremely difficult and fraught with problems. Imagine trying to keep track of 8 copies of everything simultaneously.
    Hi Paul,

    This is an explanation i can live with.
    Problem is, if you code some low level stuff (like a·Paint-list style Graphic driver) and you want to know if the·Interface to, lets say, the external SRAM is working (or if cursor handling works, or windowing restrictions), you are deploying debug after debug version.
    Hmm, so i better check ebay for a logic analyzer...
    ;-)
    Actually my current project with the propeller is a logic analyser on the propeller with interactive output to a television, Ive got it working at recording the pins every other cycle. There are a couple more modes plus a few bells and whistles Im adding before releasing it, been real busy with lifes responsibilities as of late, will be getting back to it shortly.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    1+1=10
Sign In or Register to comment.