Shop OBEX P1 Docs P2 Docs Learn Events
cheap C-Stamp comming this fall — Parallax Forums

cheap C-Stamp comming this fall

tonyp12tonyp12 Posts: 1,951
edited 2016-08-27 21:27 in General Discussion
Adding another product in my pipe-line.
USB rom driver, program-flash shows up as file folder on your PC. (Sorry no step-debugging)

Add headers for breadboard or solder directly to the work area.
after it been reused ~5 times and starting to get crummy, get another one as target price is $5.95 (not a loss leader)

LPC11U24 (or better if NXP coming out with something new at $1.70 price point @1K)
50MHz, 32K Flash, 8K Ram, 8channel 10bit A/D.
Free mbed Studio online IDE, or IAR workbench.

Still making some layout changes, so if you have some suggestions.
2016-08-27%20%281%29.png
786 x 192 - 55K

Comments

  • Tony,
    I don't see any relationship to Parallax products with this announcement, unless I am missing something.

  • ercoerco Posts: 20,256
    I thought you meant A-AWIT's C-Stamp from a few years ago.

    https://en.wikipedia.org/wiki/C_Stamp
  • User NameUser Name Posts: 1,451
    edited 2016-08-28 16:25
    At first glance it reminded me of the CY8CKIT-049-42xx, perhaps because a stack of the latter is sitting on my workbench right now. At $3.99/ea, it's a cutthroat business you are competing in, Tony.

    I like the ARM Cortex M0 family, but it seems like I'm always in a hurry to make everything. In the time it would take me to get set-up and productive coding a new ARM board, I already have its Propeller equivalent finished and installed. That is why the stack of Cypress boards isn't shrinking very fast.

  • jmgjmg Posts: 15,173
    tonyp12 wrote: »
    LPC11U24 (or better if NXP coming out with something new at $1.70 price point @1K)
    50MHz, 32K Flash, 8K Ram, 8channel 10bit A/D.

    I would suggest a Nuvoton M452 series part, as better suited to 'Stamp-like' use.
    This is still in TQFP48, so should need minimal PCB changes, but has true 5.5V operation, and a faster M4 core, all for less $

    Cortex-M4 with DSP and FPU, 72MHz, Operating voltage: 2.5V to 5.5V

    https://direct.nuvoton.com/en/m452le6ae

    M452LE6AE 128kF 32k Ram, 8ch 12b ADC, 1 12b DAC $1.89/1k
    M452LD3AE 72kF, 16k Ram 10 ch 12b ADC, 1 12b DAC $1.60/1k
    M452LC3AE 40kF, 16k Ram 10 ch 12b ADC, 1 12b DAC $1.52/1k
    (there is a 256k version showing in TQFP48, not yet in their web store)


    You can get one of their $20 eval boards to run it up & compare, and look at CooCox, who have tools.
    http://www.coocox.org/code/home.php?componentId=206&componentName=M451



  • tonyp12tonyp12 Posts: 1,951
    edited 2016-08-28 03:28
    NXP is always the lowest price on Mouser, on anything from 74hc595 to ARM's.
    I'm not sure if the others have ROM based USB drivers where it shows up as a file folder, for you to just tell compiler to save the code to.
    mbed ide seems pretty user-friendly: https://developer.mbed.org/handbook/mbed-Compiler

    My BOM will be around $3.50, so I will not make much but something so I feel the time I spend porting my tiny co-operative event machine and also my tiny pre-emptive multitasker (see below).
    As most people get stuck when it comes to doing many things at the same time, so I will get them started on the right track.
      int* multistack = (int*) __get_SP_register();
      int i=0; while(i<tasks-1){
        int j = stacksize[i]; 
        multistack -= j;  
        *(multistack) = (int) taskpnt[++i];         // prefill in PC 
        *(multistack-1) = GIE;                      // prefill in SR
        taskstackpnt[i] = (int) multistack-26;      // needs 12 dummy push words
      }
      WDTCTL = WDTPW+WDTTMSEL+WDTCNTCL;             // 4ms interval at 8MHz smclk
      IE1 |= WDTIE;
      __bis_SR_register(GIE);
      asm ("br &taskpnt");                          // indirect jmp to first task
    }
    
    //============= TASK SWITCHER ISR =============
    #pragma vector = WDT_VECTOR 
    __raw __interrupt void taskswitcher(void)
    {
      asm ("push R15\n push R14\n push R13\n push R12\n"
           "push R11\n push R10\n push R9\n push R8\n"
           "push R7\n push R6\n push R5\n push R4");
    
      taskstackpnt[taskrun] = __get_SP_register();
      if (++taskrun == tasks) taskrun = 0;
      __set_SP_register(taskstackpnt[taskrun]);
      
      asm ("pop R4\n pop R5\n pop R6\n pop R7\n"
           "pop R8\n pop R9\n pop R10\n pop R11\n"
           "pop R12\n pop R13\n pop R14\n pop R15");
    } 
    

Sign In or Register to comment.