Looking for kits to play around with, got knee deep in MCU wars - Page 1
Forum section: electronics / general

author: technix
author_rank: Super Contributor
timestamp: April 12, 2017, 04:46:08 pm
content: Gee man what have I subscribed myself into... I was shopping for chips for my SushiBits Camera and got sidetracked. Now I have at least a sample of each mainstream microcontroller architecture... I have commitment issues, although maybe I should not submit to one architecture here?Things in my handy grab bag:* IAP15W4K61S4, AT89C51RC, IAP15F2K61S2, AT89C2051, IAP15W105, etc: 8051-compatibles* ATmega162, ATmega32, ATmega328P, ATtiny2313, ATtiny85, etc: AVR 8-bit* PIC18F4550, PIC16F72, PIC12F683, etc: PIC 8-bit* dsPIC30F4011, PIC24FJ64GA002, etc: PIC 16-bit* PIC32MX270F256B: PIC 32-bit* STM32F030F4P6, etc: ARM Cortex-M0* STM32F103ZET6, etc: ARM Cortex-M3* STM32F407ZGT6, etc: ARM Cortex-M4F.* LPC2103: ARM7TDMI* CH563: ARM926EJ-S* I also have an MSP430G2553 LaunchPad from my instructor as my pre-graduation gift.Should I toss (or sell) some of those? If so, which architecture should I vent off first?

author: mubes
author_rank: Regular Contributor
timestamp: April 12, 2017, 05:02:02 pm
content: Lpc2103...It's nearly older than me, and that would be saying something!

author: jnz
author_rank: Frequent Contributor
timestamp: April 12, 2017, 05:03:27 pm
content: Everyone here is going to have a different opinion.Me for example, I have used PICs for 15 years, and fucking hate them. Oh you need a 16 bit PWM? Too bad! So I would say dump everything 8bit including Atmel despite their support with Arduino. I'd dump the 8051 because lol you are more than 25 years too late there. And while I don't specifically dislike the PIC32, I didn't like the 16bit/33/DSP at all, and for me it all comes down to ARM.So I'd say go with the STM32 because Cortex is the future as far as anyone can currently see. But you'll get a different opinion from everyone just like the other thread on the top of the heap right now asking the exact same question:https://www.eevblog.com/forum/microcontrollers/is-it-worth-the-hassle-of-learning-a-new-uc-platfrom/

author: Ian.M
author_rank: Super Contributor
timestamp: April 12, 2017, 05:28:15 pm
content: The PICs and the AVRs have their uses. e.g. many of the 8 bit families have voltage ranges that will support operating from a single LiPO cell without any regulator, over its full charging and discharge voltage range and a sleep mode quiescent power consumption low enough you don't need any power switch. There are many other applications that don't need the raw horsepower of a 32 bit processor. If you've already got a programmer/debugger for the PICs, and for the AVRs, I'd hang onto them.8051 family chips are a different matter - unless you have a strong interest in embedded MCU history to the point of wanting to build yourself a 8051 board, or anticipate working in an industry where legacy 8051 based products are still common, they'd be best boxed up and mailed to anyone who'll pay you postage and maybe a little beer money.

author: wraper
author_rank: Unknown
timestamp: April 12, 2017, 05:39:03 pm
content: Quote from: Ian.M on April 12, 2017, 05:28:15 pmThere are quiet a few modern MCUs with 8051 compatible cores which will beat any AVR/PIC in performance, available peripherals and for much less money.

author: technix
author_rank: Super Contributor
timestamp: April 12, 2017, 05:47:31 pm
content: Quote from: wraper on April 12, 2017, 05:39:03 pmThose STC15 series chips (the IAP15.* chips here) are a good example of those modern 8051 chips. 1T core at 30MHz or 35MHz. Also the STC chips are super cheap - I can order a whole tube of IAP15F4K61S4-30I-PDIP40 (61kB modified Harvard architecture supporting read-while-write, 1T core, 30MHz speed, supports on-chip debug) for less than US$10.

author: beenosam
author_rank: Regular Contributor
timestamp: April 12, 2017, 05:52:12 pm
content: If you're new to this kind of stuff, I believe the documentation (due to Arduino) for AVRs would make it easier. I have AVRs, MSP430s, and ARMs myself. I started with AVRs and found that moving to ARM was pretty easy. I'd suggest that to you, but you can look up the documentation and information for all these to see which looks best for you.

author: rstofer
author_rank: Super Contributor
timestamp: April 12, 2017, 09:09:16 pm
content: I don't mind the newer ARMs but I am really fond of the LPC2106 - first ARM I used and all.The thing is, those ARM7TDMI chips are fairly simple. You just need a header file to define the various registers and a datasheet. The peripherals are easy to set up and they are easy to use. The LPC2148 is a tremendous upgrade but it's still simple to use. Both require a bit of assembly code for startup. The Cortex chips aren't suppose to require it but ST provides one anyway.I don't find the STM32F easy to use. I am messing around with CubeMX and it generates a TON (or more) of setup code. Layers of stuff to do what I used to do with a simple init() function. The thing is, the chip is probably complex enough to need that code. The good news is that I only have to use the peripherals, not initialize them.I need more time with the STM32F because I haven't even read the instructions for the HAL. Once I get used to the hand-holding I might get to like it. Or not...

author: whalphen
author_rank: Regular Contributor
timestamp: April 12, 2017, 09:22:42 pm
content: Keep them all. When you have your project objectives identified, then you can select the best MCU for the job. It's useful to gain experience with different processors. Even the 8051 core is good for the right purposes. Sure, it has been around a long time, but there are good reasons why it's still in use.

author: technix
author_rank: Super Contributor
timestamp: April 13, 2017, 12:21:30 am
content: Quote from: rstofer on April 12, 2017, 09:09:16 pmI have almost no idea how to get the LPC2103 started. I have a J-Link, but how to use it? Also how to write the startup code? I know for sure that some assembler is required but how bad would it be?Speaking of which, I may need to write a Cortex-M style SVD file for the LPC2103, as it would give me both a header file through an SVD compiler but also a lot more debugging details in Eclipse. (Yes I am using the fully open source Eclipse + GNU stack)Quote from: rstofer on April 12, 2017, 09:09:16 pmI have created my own Cortex-M startup library (no assembler!) and I don't use HAL. That way things are quite a bit simpler.

author: westfw
author_rank: Super Contributor
timestamp: April 13, 2017, 04:01:14 am
content: QuoteMeh. Dead due to having been replaced by the Cortex series. Nothing WRONG with them, but they're not like to get any improvements in the future. Focus your efforts elsewhere.QuoteDid you say "camera"? The 8bit PICs have an architecture that severely limits the amount of RAM in a system. 4k, IIRC.The AVR architecture is better, but the max on-chip RAM is something like 16k.QuoteThose are all viable, IMO. In particular, architectural knowledge will travel to much larger system architectures. The differences between CM0 and CM3 are ... very interesting, in their way. 32bit addresses make a lot of things really easy, someone at the expense of code density. Beware those little "16k flash" ARM chips; it's pretty hard to get them to do as much as the 16k 8bit chips.QuoteNot sure. That particular launchpad is "very small", but the architecture is on-par with AVR (16bit pointers, natively, though.)I've heard good things about the 16bit PICs, especially in terms of the way it makes HW design easier, but both of these seem like a dead end for anything but niche applications.QuoteYou can get fast 8051 chips, and you can get 8051 cpus married to interesting peripherals and co-processing do-dads, but the architecture is "ugly" by "modern standards" (that generally means that it's hard to write compilers for, and it doesn't scale ("why would you ever need more than 256bytes of stack?".) Assembly language programmers whose problems fit within the architectural limitations seem to be pretty happy with it. I'm not really sure what that means, since you don't have to write your own compilers - they already exist. I haven't used any 8051 C/etc compiler, so I don't know whether they tend to cause inconvenient limitations...)

author: technix
author_rank: Super Contributor
timestamp: April 13, 2017, 09:38:54 am
content: Quote from: blueskull on April 13, 2017, 03:45:59 amI don't think there are any better 8-pin AVR than ATtiny85...

author: TheDane
author_rank: Regular Contributor
timestamp: April 14, 2017, 10:11:39 pm
content: Quote from: technix on April 12, 2017, 04:46:08 pmUse the right device/tool for the job.Some devices are perfect for one thing, and utterly crap at other stuff.To throw you a bit from where you started and give you some extra options, I recommend that you look into FPGA/CPLD's - on those you can implement most processor core architectures (commonly imported as pre-compiled IP's or blocks in the design software), and all/most glue logic to other hardware - such as high speed digital displays and cameras.Compact stuff, capable of almost anything - if you can get the software running- oh, and the price isWork with the various compilers, debuggers and systems until you have found the one(s) that works best for you, and you like using.If you don't have your future planned out in details for the next 10+ years (or really strapped for ca$h), I recommend keeping the ones you have. A fun (one off?) project to do, is easier to do when done on an evaluation board - obviouslyThen get rid of any of the systems/components you don't like, if you need so. Original components/systemsin quantitycan be a gold mine to certain businesses, but I say pay off your loans and mortgage before investing money in components as it is a long and uncertain road - you sound somewhat young, if you got a TI Launchpad pre-graduation giftPS - I see you're missing the popular ESP WiFi modules, SW is written in Arduino/C++(Eclipse)https://www.penninkhof.com/2015/06/esp8266-programming-from-eclipse/http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family

author: technix
author_rank: Super Contributor
timestamp: April 15, 2017, 03:47:02 am
content: Quote from: TheDane on April 14, 2017, 10:11:39 pmI have a few MAX II EPM570 CPLD and a Cyclone IV EP4CE6 kits too.Quote from: TheDane on April 14, 2017, 10:11:39 pmNodeMCU. I have that too.

author: danadak
author_rank: Super Contributor
timestamp: April 17, 2017, 11:29:01 pm
content: PSOC -For me what stands out is -1) Routability2) Fast 12 bit SAR A/D and slow 20 bit DelSig3) DFB (Digital Filter Block) that is dual channel, handle FIR or IIR filters, or DFBcan be used as a GP fast processor block, similar to RISC block4) MSI logic elements GUI based and/or the UDB Verilog capability. Eg. the FPGAlike capability5) Onboard Vref6) IDAC, VDAC, OpAmps (up to 4), comparator, mixer, switch cap, analog mux....7) LCD, COM, UART, I2C, I2S, One Wire, SPI, Parallel, LIN, CAN, BLE, USB9) Custom components capability, create with schematic capture or Verilog10) DMA to offload processes like filters, COM, Display11) ARM M0 (PSOC 4) or M3 (PSOC 5LP) or 8051 core(PSOC 3)12) Extensive clock generation capabilities13) All components supported by extensive prewritten APIshttps://www.element14.com/community/thread/23736/l/100-projects-in-100-days?displayFullThread=truehttp://www.cypress.com/documentation/code-examples/psoc-345-code-examplesGreat video libraryAttached component list. A component is an on chip HW resource.Free GUI design tool with schematic capture, "Creator". Components have rich API library attachedto each component. Compilers free as well.PSOC 4 is low end of family, consider 5LP parts as well. PSOC 4 also has arduino footprint boards (pioneer) as wellhttps://www.elektormagazine.com/labs/robot-build-with-cypress-psochttp://www.cypress.com/products/32-bit-arm-cortex-m-psocStart with this $ 10 kit -http://www.cypress.com/documentation/development-kitsboards/cy8ckit-059-psoc-5lp-prototyping-kit-onboard-programmer-andRegards, Dana.

author: technix
author_rank: Super Contributor
timestamp: April 17, 2017, 11:50:42 pm
content: I am very suspicious why there are preformatted posts about Cypress PSoC everywhere. It seem to me that someone is copy/pasting things around in a lot of MCU-centric posts. Hmm...

author: james_s
author_rank: Super Contributor
timestamp: April 17, 2017, 11:53:03 pm
content: It depends on what you want to do, and what language you prefer. Most microcontrollers these days can be programmed in C, and once you can do that, the choice of platform is probably going to be more about which development software you find most appealing and which programming hardware works best for you. If you want to build or modify existing projects you come across it might make sense to go with whatever platform they use. Otherwise find something you like and stick with it, for the most part chips in the same class can do roughly the same thing. 8 bit stuff like PIC and AVR are similar, 32 bit ARM when you need more power, PSOC is great if you need extremely flexible IO, it's a bit like a microcontroller and FPGA rolled into one. Sometimes you need everything and the kitchen sink, other times a tiny inexpensive 8 pin (or less!) microcontroller is perfect.Consider each another tool in the toolbox and use what you're most comfortable using. People get very passionate about their platform of choice but in the end it's just a tool and what you can do with it is mostly down to your ability, much like the quality of music has much more to do with the musician than the brand of instrument they play.

author: Luminax
author_rank: Regular Contributor
timestamp: April 19, 2017, 06:25:39 am
content: Quote from: technix on April 17, 2017, 11:50:42 pmI think that's the third one I saw... hmmmThat aside, that's quite some collection you have there! Are they in 'Kits' or just single chips?The first main problem with ANY MCUs is setting the dev-env. PIC have that quite easy as long as you have the budget to shell out for its universal PICKIT3 programmer, and although the free XC compiler is nowhere near as effective for code optimizations, it works really well.Atmel used to be in the easy-to-medium-hard area where you can choose from the many available cheap programmers and see if it works with AVRDude or the likes. Recent years version of Atmel Studio leaves a lot to be desired (yes, I hate Visual Studio).And then there's the oddball spectrums like Renesas, NXP, etc... those are much much harder to initially set up for, is way more expensive, and you'll be hard-pressed to search for information from their 'community', but it seems to have quite an extensive development libraries and attachments, and a lot of industries are using them making them sort of an 'industry standard'.Your case, though, is clearly the case of having prepared a full blown chef's kitchen for cooking a sunny-side up

author: Gibson486
author_rank: Frequent Contributor
timestamp: April 19, 2017, 12:58:46 pm
content: PICs were great to learn on, but when I started using them for real, I began to not like them as much and then when they started messing around with MPLAB, that was the nail in the coffin.

author: TheDane
author_rank: Regular Contributor
timestamp: April 19, 2017, 10:41:13 pm
content: Quote from: Luminax on April 19, 2017, 06:25:39 amThis is the first I have seen as I just turned on my PC and reloaded this post. I think it fits quite well into this thread.That's a nice dev. board with nice features - just a shame it is out of stock at RS Denmark, and Farnell is down for maintenance.Later, and imho one can never have too many boardsI seem to recall the Cypress FX2LP development board sold for a pretty low price like this one is priced at, and a marvelous tool was developed and later open sourced: 8-bit logic analyzer, and up to 24MHz sampling rate. With this kind of specs, I wonder what some extremely smart people will cook up in the near future with this new baby

author: technix
author_rank: Super Contributor
timestamp: April 20, 2017, 05:22:12 am
content: Quote from: Luminax on April 19, 2017, 06:25:39 amMost of them single chips, either in straight DIP, or on adapter boards for breadboard prototyping. There are a few kits but those are fairly bare and primitive.Quote from: Luminax on April 19, 2017, 06:25:39 amI do have a good collection of debug probe hardware - Atmel ICE for AVR, PICKit 3 for PIC, two J-Link clones for various ARMs, U8W-Mini for STC 8051 and Altera USB Blaster clone for FPGA work and unidentified chips (as it works as a straight USB to JTAG converter without architecture or manufacturer limitation with OpenOCD)My dev environment is built on top of macOS Developer Preview (weird, right? And yes I am the type of developer that pays the yearly tax to Apple.) Keep in mind that macOS on Intel CPU is UNIX in all senses - heritage (through BSD,) branding (passed the SUS certification) and functionality.Quote from: Luminax on April 19, 2017, 06:25:39 amPIC and ARM are by far the easiest platform to work on. MPLAB X and the associated compilers are cross platform compatible.Quote from: Luminax on April 19, 2017, 06:25:39 amIt is sad that avarice avrdude is not playing nice with the much newer Atmel ICE and is acting up a lot, making AVR a no-go under macOS. And yes I hate the Windows-based development environment now, although I was an avid Windows hacker back then. Once you go UNIX there is no way back. The shell is just too damn easy to use.Quote from: Luminax on April 19, 2017, 06:25:39 amFor ARM the GNU toolchain and Eclipse CDT is very available, and it is rumored that the Apple LLVM/clang toolchain came standard with Xcode can also be used to build programs for Cortex-M. Renasas is a brand I never thought about using, although there are rumored J-Link support and GNU toolchain.Quote from: Luminax on April 19, 2017, 06:25:39 amI'll have to admit that yes this is quite an overkill for dev kit setup.

author: Rasz
author_rank: Super Contributor
timestamp: April 20, 2017, 04:05:50 pm
content: Quote from: technix on April 12, 2017, 05:47:31 pmthis will be extremely important ... if you work at a toy manufacturer making next 20 million units of farting tickle me elmo doll, but not in the real worldSaving pennies art a cost of code readability (C vs assembler), portability and dev time is so 10 years ago. This is a reason nobody except Chinese uses 8051 anymore.

author: TNorthover
author_rank: Contributor
timestamp: April 20, 2017, 05:13:18 pm
content: Quote from: technix on April 20, 2017, 05:22:12 amIt can. The best way to do it for a pure MachO build is by passing "-arch armv7m" (Cortex-M3 by default) or "-arch armv7em" (Cortex-M4F, hard-float ABI) to the compiler. That'll get you a nice AAPCS ABI rather than iOS's weird and ancient APCS if you'd copied XCode's command line ("-arch armv7s -mcpu=cortex-m3").Alternatively you could install an ELF binutils and use "-target arm-none-eabi" instead. Clang itself would then behave basically the same as it does on ELF platforms.

author: NorthGuy
author_rank: Super Contributor
timestamp: April 20, 2017, 11:11:37 pm
content: First of all, you don't chose MCU once and for all. You usually get a project and then you chose the MCU which fits the best. Different projects will require different MCUs.Besides obvious stuff (e.g. if you want to communicate with UART, you need an UART module on the chip), there are three factors:- cost- size- power consumptionIf none of these factors matter, get the most powerful chip - very fast, lots of memory etc. It'll be easier.If any of these three factors is of any concern, then the most powerful chip will not meet your needs - it'll be too expensive, too bulky and will consume too much power. In this case, you need to do some work with datasheets to figure out what meets your constrains.Don't dwell on architectures. There's not much difference here. Devil is in the details. But don't use things which are 15-20 years old. A lot of progress has been made lately.

author: Luminax
author_rank: Regular Contributor
timestamp: April 21, 2017, 03:23:46 am
content: The trend with MCU these days is in the Peripherals. Even using one architecture, you'd often go down the rabbit hole choosing which ONE of the many selection from that particular architecture with different available peripherals and all sorts of wonderful stuffs.Nowadays I mainly select ones that have at least :1) At least a 10-bit ADC with 100ksps or better conversion rate2) Internal adjustable oscillator (while allowing options for external oscillator)3) Some sort of PWM control4) Serial interface (I2C, SPI, USART)Optionally USB is a great thing to have included, but going down that path is another rabbit hole altogether

author: technix
author_rank: Super Contributor
timestamp: April 21, 2017, 03:51:01 am
content: Quote from: Luminax on April 21, 2017, 03:23:46 amTell me about it... I never got around to a few projects percisely because I have no idea how to make USB work.I have a few PIC16F1455 but never got around using them because exactly this...

author: Luminax
author_rank: Regular Contributor
timestamp: April 21, 2017, 04:05:14 am
content: You might want to look at some of PIC's USB starter kit like the Low Pin Count dev board.Downloading the PIC MLA library shows you what codes are available for which demo boards, and their codes are quite nice and clean and have the 'state-machine' type of programming style.... I just turned this thread into a PIC thread did I notsorry guys, carry on

author: technix
author_rank: Super Contributor
timestamp: April 21, 2017, 04:11:20 am
content: Quote from: TNorthover on April 20, 2017, 05:13:18 pmHow to convince Eclipse CDT that Apple-shipped LLVM/clang can handle the heat?

author: technix
author_rank: Super Contributor
timestamp: April 21, 2017, 04:13:08 am
content: Quote from: Luminax on April 21, 2017, 04:05:14 amI just have PIC16F1455 on breadboards.Quote from: Luminax on April 21, 2017, 04:05:14 amIt's okay.

author: TNorthover
author_rank: Contributor
timestamp: April 21, 2017, 04:15:49 am
content: Quote from: technix on April 21, 2017, 04:11:20 amI'm afraid I don't know. Most people that use those options write their own Makefiles; I've not encountered anyone trying to use Eclipse.

author: Neganur
author_rank: Unknown
timestamp: April 21, 2017, 05:59:59 am
content: Quote from: technix on April 17, 2017, 11:50:42 pmThere is nothing suspicious about that post. Someone put effort into listing the benefits and capabilities of a platform, and I think it does contribute a whole lot more than other posts; screenshot from the working environment and all.

author: Luminax
author_rank: Regular Contributor
timestamp: April 21, 2017, 06:32:26 am
content: Quote from: technix on April 21, 2017, 04:13:08 amIf you're willing to dig through pre-made code, I'd strongly suggest downloading Microchip's Library of Applications since they contain a lot of "header" codes for USB handler and the likes.So far I've seen HID, CDC, MIDI and... a few others in there

author: NorthGuy
author_rank: Super Contributor
timestamp: April 21, 2017, 02:32:09 pm
content: Quote from: technix on April 21, 2017, 04:13:08 amDepends on what you want.You can use Microchip USB stack and you can get it up and running within few hours.Or, if you want to study how USB works, you can read USB 2.0 specs, the PIC datasheet and write your own USB routines. This is, for sure, much longer road.

author: splin
author_rank: Frequent Contributor
timestamp: April 23, 2017, 06:07:37 pm
content: Does anyone know how much FLASH space the free STM USB stack code takes up in an STM32F102? For some reason they don't seem to think it's worth mentioning in the specs or the user manual. I could try building it of course but finding the code to download on ST's website could take a while.I sometimes wonder if ST's website administrators are fans of the horror film 'The Cube' where a group of people wake up in a maze of cube rooms which constantly rearrange themselves, presenting a fiendish challenge to the victims trying to work out how to escape...: I asked about code size as I have some STM32F102C4s which only have 16K bytes - it doesn't seem a lot to include a stack. However I see that there are other devices with USB periperals, including the PIC18F13K50 and ATmega8U2, which only have 8K of FLASH and 512 bytes of RAM. How much of that will be left after a USB stack?

author: splin
author_rank: Frequent Contributor
timestamp: April 23, 2017, 10:51:54 pm
content: FWIW, as I happen to have Atmel visual studio 7 installed I tried building example 41 'an echo application by USB CDC interface' for a SAMD11 (16k Cortex M0+). It uses 11,700 bytes of code (71%) and 2792 bytes of RAM. (I can't for the life of me work out how to change compiler options to optimize for space - the 'help' doesn't seem to help; perhaps I'm too old for this... )That's quite a lot, but I've no idea if this can be trimmed down significantly.

author: NorthGuy
author_rank: Super Contributor
timestamp: April 23, 2017, 11:23:57 pm
content: Quote from: splin on April 23, 2017, 06:07:37 pmIt's hard to calculate precisely because it is spread around, but my code for PIC16F1454 is about 700 commands (give or take 100), which is approximately 10% of the available code memory.

author: krho
author_rank: Regular Contributor
timestamp: April 24, 2017, 07:35:10 am
content: Quote from: splin on April 23, 2017, 06:07:37 pmI have a test project here for stm32f413 with MSD HAL stack and Os compiled project is 20640b Og is approximately 2000b more. There is a lot more code in there than just the USB MSD but as I've commented out the init code for that I trust the linker that it has thrown that out.

author: hans
author_rank: Super Contributor
timestamp: April 24, 2017, 09:13:55 am
content: Quote from: splin on April 23, 2017, 06:07:37 pmFor STM32F411 (with GCC set to compile for cortex m3 ISA), my USB soundcard project compiles to around 12.5k of code with space optimisations on. On -Og it is 14.5K.On -Os, core USB modules is around 6K, USB audio device ~1K, startup + CMSIS around 2K, and application (with some floating point) 3.5K.So 16K will be a squeeze. Perhaps if you can keep the USB driver code at -Os during development it is doable, but sounds to me like you want to buy 32K part for a development unit, and use the 16K on units you don't need debugging for.

author: aandrew
author_rank: Frequent Contributor
timestamp: April 24, 2017, 05:08:38 pm
content: Quote from: whalphen on April 12, 2017, 09:22:42 pmYeah, it's patent-free, a tiny core (for embedding into ASICs) and there is an enormous amount of old code out there that you can lift for your own projects. :-)

author: aandrew
author_rank: Frequent Contributor
timestamp: April 24, 2017, 05:11:46 pm
content: Quote from: technix on April 17, 2017, 11:50:42 pmDana is a well known and friendly admin from the Cypress PSoC forums. He (I think Dana is a he, please accept my apologies if I got this wrong) really believes in the product and his support is really quite good. I don't fault him on promoting the PSoC, although I do agree that some kind of disclaimer ("I might be biased, I work for Cypress") would be good.Having said all that, I've made my feelings about the PSoCs available in other threads in this forum so I won't bother repeating it again here.

author: splin
author_rank: Frequent Contributor
timestamp: April 24, 2017, 09:43:31 pm
content: Quote from: NorthGuy on April 23, 2017, 11:23:57 pmThat's impressive at just over 1Kbytes. Is it written in assembler? Someone on an MSP forum has reduced a TI MSP430 CD USB stack (in 'C') to 1.5K.Quote from: krho on April 24, 2017, 07:35:10 amNot so impressive! But I guess we aren't exactly comparing like for like.Quote from: hans on April 24, 2017, 09:13:55 am14.5K is still an awful lot though compared to 1.5K. Again I guess it is a full featured implementation with robust error checking and handling etc. I had a closer look at the ATMEL SAMD11 example I compiled and the actual USB code is around 8000 bytes.I also found an excellent ATMEL document, AVR4920 'ASF - USB Device Stack - Compliance and Performance Figures', which provides comprehensive performance information on their USB stack. It shows (see attached) code size of 6K bytes for a full speed CDC device on an ATxmega or an AT32UC3. I wish all manufacturers would supply similar information for their embedded firmware products.I know Cortex code size can be a bit bigger than for some 8 or 16 bit processors but I'd like to think that 2 or 3K should be possible if 1 to 1.5K has been achieved on PICs and MSP430s.And then there is the issue of USB id's. I believe that Microchip allow you to use one of theirs in your own PIC based USB product but do any others? ST? I know there are ways around having to pay $2k to get an official set of ids, but none of them are exactly ideal if you want to sell a product.Apologies to the original poster if I have hijacked your thread, but you did post about MCUs with USB.

author: Rasz
author_rank: Super Contributor
timestamp: April 25, 2017, 12:08:19 am
content: Quote from: aandrew on April 24, 2017, 05:11:46 pmWow, so It was a paid (employee on the clock) post after all

author: NorthGuy
author_rank: Super Contributor
timestamp: April 25, 2017, 01:59:22 am
content: Quote from: splin on April 24, 2017, 09:43:31 pmYes, it is in assembler. But it wouldn't be much bigger with C. Most of the stuff is done by the PIC hardware. The USB code only needs to initiate transfers and parse requests on EP0. The biggest job is to serve descriptors during enumeration. It is HID, but CDC should be similar in size.

author: technix
author_rank: Super Contributor
timestamp: April 25, 2017, 03:47:16 am
content: Quote from: splin on April 24, 2017, 09:43:31 pmWill compiling with Cortex-M4F hard float help?And can I use USB without ASF or HAL?

author: splin
author_rank: Frequent Contributor
timestamp: April 25, 2017, 04:53:46 pm
content: Quote from: technix on April 25, 2017, 03:47:16 amI think the likelyhood that a USB stack uses any floating point is next to zero, so no. It is possible to take advantage of the larger resister set in the floating point unit in some circumstances but I don't know if the usual compilers can do this.QuoteOf course you can write your own stack but that would be a lot of effort. I believe there is at least one open source USB stack project but I don't know anything about its status.If you search around you should be able to find the source code for the USBASP atmel AVR programmer - I believe that implements USB on an atmega8 device that doesn't even have a USB peripheral. I don't think it is fully conformant with the USB specs, but it works well enough for its purpose.

author: Neganur
author_rank: Unknown
timestamp: April 25, 2017, 09:22:16 pm
content: Quote from: Rasz on April 25, 2017, 12:08:19 amyou're jumping to conclusions imo and also, why is that relevant if the post was actually contributing to the OPs question (asking for mcu kits to play around with)?

author: danadak
author_rank: Super Contributor
timestamp: April 25, 2017, 10:18:34 pm
content: @technixQuoteI am the poster. I have used UPs since 72 and in recent years got tired ofdoing designs with lots of analog crap around them. So I settled on PSOCas the goto for most, not ALL designs. Its not the answer all, simply a verygood solution for many designs. With ARM M0 or M3 core plus all the otherstuff, plus the FPGA like fabric, its a home run in my mind.Yes, I have a standard post, and do use copy and paste.Regards, Dana.

author: Rasz
author_rank: Super Contributor
timestamp: April 25, 2017, 10:22:21 pm
content: Quote from: Neganur on April 25, 2017, 09:22:16 pmits called disclosure. There is a difference between "this is the best chip I ever worked with" and "my employer makes the best chips"Quote from: danadak on April 25, 2017, 10:18:34 pmcool story, so are you employed or in any monetary contract with Cypress?if answer is yes did it ever cross your mind to mention this in your copypasta?

author: NorthGuy
author_rank: Super Contributor
timestamp: April 25, 2017, 10:31:08 pm
content: Quote from: danadak on April 25, 2017, 10:18:34 pmor Zynq -https://www.xilinx.com/products/silicon-devices/soc/zynq-7000.htmlHardly can get anything better.

author: technix
author_rank: Super Contributor
timestamp: April 26, 2017, 01:32:39 am
content: Quote from: NorthGuy on April 25, 2017, 10:31:08 pmZynq is a bit too complicated for some embedded projects as it 1) does not support any easily hand solderable package, and 2) runs full Linux which is not necessary in most times.

author: NorthGuy
author_rank: Super Contributor
timestamp: April 26, 2017, 02:06:44 am
content: Quote from: technix on April 26, 2017, 01:32:39 amIf someone can afford Zynq they certainly can afford a reflow oven, which makes it easier than hand soldering.You don't have to run Linux if you don't want to.

author: jmsigler
author_rank: Regular Contributor
timestamp: April 26, 2017, 04:37:41 am
content: Quote from: NorthGuy on April 25, 2017, 10:31:08 pmCould also look at Microsemi's SmartFusion2 chipset which has an m3 and fpga fabric. I've built a board with an older qfp smartfusion chip and it wasn't too bad.

author: tszaboo
author_rank: Super Contributor
timestamp: April 26, 2017, 08:08:07 am
content: Quote from: technix on April 17, 2017, 11:50:42 pmThis forum has a bunch of PSoC fanboys. Anytime you ask, why they like it: Because it has a bunch of gimmicky features, nobody asked for, and you need to look for the application to use it. I talked with a junior support engineer at Cypress. He told me he is new at the company, and he has no idea what all these features can be used for.

author: AndyC_772
author_rank: Super Contributor
timestamp: April 26, 2017, 08:30:13 am
content: I'm not entirely sure that 'junior support engineer is clueless' really qualifies as news, though, does it?I looked at PSoC last year but was disappointed at the lack of flexibility in analogue routing, and the poor performance of the digital logic. It's no substitute at all for a proper CPU + FPGA.

author: tszaboo
author_rank: Super Contributor
timestamp: April 26, 2017, 09:51:37 am
content: Quote from: blueskull on April 26, 2017, 08:30:56 amThey are amongst the most expensive microcontrollers you can buy. The built in opamps have the analog performance of a 7 cent LM358. I think this tells it all: The cheapest PSoC with cortex M3 costs twice as much, as a regular Cortex M3from the same company.

author: westfw
author_rank: Super Contributor
timestamp: April 26, 2017, 09:59:02 am
content: Quote>[PSoC is] no substitute at all for a proper CPU + FPGA.Any microcontroller is no substitute for a $1000 Xeon CPU augmented by a $1000 FPGA.Fortunately, not all problems require that, and sometimes a slow microcontroller with some configurable logic is just the thing...I've followed PSoC for quite a while, and I was pretty pleased with the direction taken in PSoC 4 and 5 - adding general purpose "standard" microcontroller peripherals that DON'T require the configurable logic to do things. I'm pretty sure that there are a lot of "mostly SW" engineers that are really happy not to need to build a UART before they can do serial IO.

author: NorthGuy
author_rank: Super Contributor
timestamp: April 26, 2017, 05:34:02 pm
content: Quote from: blueskull on April 26, 2017, 08:33:59 amHave you looked at Microchip PICs lately? ADCs, DACs, comparators, op-amps which can be internally interconnected. CPU independent logic cells which can trigger ADCs, timers etc. For a fraction of the cost ...

author: danadak
author_rank: Super Contributor
timestamp: April 27, 2017, 01:14:07 am
content: @RaszQuoteHow did you jump to that conclusion ?The PSOC Cypress forums had a store where a poster could earn points and redeem. That store ended long before I stopped posting over there. But I did redeem some points 7 years ago for a GPS and fish finders before the store came to an end. No, I was not employed, contractor, or otherwise at Cypress. I was, prior to all the posts at Cypress and eevblog an FAE at Future, as such responsible for many CPU lines, Cypress one of them. Also Freescale, Zilog, uChip, forgot the rest.@NANDBlogQuoteNot exactly. the parts range from < $ 1 to < $ 20, in unit prices. Yes, OpAmps outperform LM258, but not by much. Cypress does not offer bare M3, just PSOC M3. The high end parts have multiple A/D, DAC, DSP, Onboard Ref, route fabric, MSI like logic predefined components, or roll your own, and a ton of other HW.QuoteMaybe talk to experienced FAEs and users would be a better idea. Gimmicky, if I need a vanilla OpAmp, PGA, TIA, Comparator, nice to have it onboard. If I need a filter, eg. DSP, nice that its there. Or spend another $ 4-$6 to add it externally. If I need some specific msi like logic, or my own LUT, Verilog, nice to have it onboard. If I need a 20 bit A/D ……its there……….No one should think ANY CPU/Vendor is perfect, such is true of PSOC. But many designs fit quite nicely into their architecture. Read their annual report on shipments, quite illuminating.Regards, Dana.

author: tszaboo
author_rank: Super Contributor
timestamp: April 27, 2017, 08:53:59 am
content: Quote from: danadak on April 27, 2017, 01:14:07 amI have to repeat myself. Digikey. I filter for Cortex M3, Cypress. Cheapest is MB9BF121JWQN-G-JNE2 which is a FM3 microcontroller, from cypress, cost is 3.36 dollars for single quantity, 1.7 in high quantity. Cheapest PSoC is CY8C5467LTI-LP003 7.53 dollars in single quantity, 4 in thousands. Both of them is made by Cypress. Competetive pricing? Hell no.Yes, there are cheaper ones. Cortex M0+ usually. For people, who think having a grand total of 3 communication interfaces is enough.I am just wondering, if PSoC fanboys lost all connection with reality, or they are getting payed to do these posts.

author: ^_^
author_rank: Regular Contributor
timestamp: April 27, 2017, 09:41:24 am
content: You get what you pay for.If you want configurable architecture, don't want to put external components, then why not?Also, Cypress surely has a great way to approach the newcomers compared to other vendors.

author: westfw
author_rank: Super Contributor
timestamp: April 27, 2017, 09:47:06 am
content: Psoc5, with CM3, is relatively expensive. The psoc4, with cm0, is significantly cheaper (also having less programmable logic. Down to "none", IIRC.)

author: alexanderbrevig
author_rank: Frequent Contributor
timestamp: April 27, 2017, 10:29:20 am
content: These discussions are always good fun so I'll chip in with my point of view.PSoCis fun and a good way to get your feet wet with programmable logic. I know opinions differ, but I for one love their IDE, their framework and their general attitude toward newbs. Great online community!Their approach to BLE is the quickest way I've seen, and I wish I started with them instead of Nordic back when I was trying to figure out what the f*ck a GATT is. Also, it's fun to be able to make a matrix keypad driver that takes up no CPU time. Niche needs, but the cost is not too high for projects where you want to cut down on PCB spins due to silly mistakes or erratas.Nordic Semiconductoris the way to go for mass production BLE. I found it an up-hill battle the first, second and third time. But eventually you learn to spend some time getting everything set up right. I've ended up using gcc and their CLI tools from linux. It's the way to go for NS I think. Good online community.STMis fine, I've got to know the F103 quite well now and it's been an up hill battle. I would definitly point the next guy toward an F4. They have serious silicon bugs with some of their chips and one in the F103 bit me badThey are higly configurable/mappable but also quite complex and their HALs often works but are bloated and changing so much the arduino way of finding someone who has already done it is often a no go. I got an unofficial devboard and basically had to reimplement every demo for every peripheral I wanted to use. The good thing; they fix bugs and add workarounds in a good tempo. A very fractioned, weird community. I'd rather ask on here if I have questions.PIC32MZis my new for-hobby curiosity. So far I'm really pleased with most everything. Their HAL seems good, and the online community seems good. Seems to be an excellent peripheral-to-peripheral piping machine, and the MZ seems to be capable to do some dsp style things too. At least for my small FIR testsTexas Instrumentsis my go-to for radio experimentation. They have excellent tools, and getting from 0 to a custom sub-gig protocol that actually works and is demo-able takes less than a day. Solid library of example code, nice and relatively light weight HALs. All in all I like them (just stay away from the older RF chips, they should be deprecated if you ask me).NXP/ Freescale I'll probably not touch again until I have to. It was no fun. Nothing about using it was fun, for me at least.What more? I still bring out mywiring/arduinoboard if I just want to do something as quick as possible. Like setting up some I2C test slave or the like.I do think having some kind ofLUA/JS/MicroPythonkit in the bag is good to. They are fun and makes for good demonstrations (i.e talks at your work or whatever).Lastly, some Linux device is nice too. Get one if only to say you know your way around it. The day might come when you need to impress someone with a face tracking gizmo, just don't tell them it's 40 lines of python straight off of the internetThis post turned out a lot longer than I intended, but there you go.I tend to solve relatively small problems for clients who "have an idea", this has led me to implement little things with a lot of different platforms. None of them is the definitive best - and even if any were I'd recommend anyone to pick up more than one family and more than one manufacturer.Those clients that "has an idea", some times even has the idea that you must use this or that family or that special manufacturer. Never a good day when the Idea Guy tries to also be the EE.

author: danadak
author_rank: Super Contributor
timestamp: April 27, 2017, 11:04:36 am
content: @NANDBlogQuoteI stand corrected. Forgot about the buyout by Cypress of > Spansion > Fujitsu FM3 family, yes the Fuji parts are cheaper.The following are selector guide/prices from Cypress, show PSOC 5LP parts < $4, 1KU.http://www.cypress.com/PSoCPSGOf course we have not discussed whats on the part of interest, memory sizes, and all the rest.Not getting paid to post, are you ?Price of course to user is total system cost. Of course those are not the only considerations, andwe are ignoring OEM negotiated pricing quite different than public price lists. Non Cypress fanboysshould compare all attributes of design requirements.PSOC is NOT the answer to all designs. Just many.Regards, Dana.

author: technix
author_rank: Super Contributor
timestamp: April 27, 2017, 02:28:23 pm
content: Quote from: splin on April 25, 2017, 04:53:46 pmAt least using GCC and LLVM/clang, with -O2 or higher optimization level the compiler will perform automatic vectorization and make use of the FPU registers that way. This happens even in some library routines which receives optimized versions, and that includes memset and memcpy, which I make use of in my C startup code. This forces me to switch on the FPU the first instruction into the reset vector, just so the heavily optimized memcpy and memset would work.

author: VEGETA
author_rank: Super Contributor
timestamp: May 01, 2017, 05:48:33 am
content: Well, for me I like Arduino boards for doing anything fast and easy. However, being a PIC fan I have the all famous obsolete PIC16F877A which I use often. I don't recommend getting a dev board for PIC since it is very easy to use the chip itself and a good learning material.However, I came to see some good boards such as GR-SAKURA and GR-PEACH from Renesas, but it is not popular and don't have support like other famous boards. In my opinion, Renesas wants to get into beginner/hobbyist market using their powerful AZ series of MPUs but their methods are wrong. They don't get the idea that it is useless for a beginner board if it is hard to get, pricey, and has poor support and few examples.Other than that, I wanted to get STM discovery boards since they are cheap and a good start in ARM MCUs after spending time using PICs and Arduinos.

author: technix
author_rank: Super Contributor
timestamp: May 02, 2017, 01:12:12 pm
content: Quote from: VEGETA on May 01, 2017, 05:48:33 amI have always been breadboard guy... STM32 on breadboard adapters too. Although I also had a few STM32-based Arduino-compatibles.

author: Luminax
author_rank: Regular Contributor
timestamp: May 04, 2017, 09:15:15 am
content: Quote from: VEGETA on May 01, 2017, 05:48:33 amThe biggest point in getting a dev-board is not to actually set you up for starting into the chip, it's more to do with the code examples that usually comes prepackaged with the dev-board.Unfortunately for me... element14 seems to stock 'old version' and buying from microchip direct is a bit putting-off with the high shipping cost... so I sometimes ended up with a dev-board that's designed and deployed with codes based on very very very old sets of environment (in the case of PIC, old version of MPLAB and old coding-style/old MLAs)

author: VEGETA
author_rank: Super Contributor
timestamp: May 04, 2017, 11:10:35 am
content: QuoteYes you are right, but I don't really know a good and widespread PIC board unlike Arduino boards. Thus I try to use it myself for more learning.

author: Luminax
author_rank: Regular Contributor
timestamp: May 11, 2017, 07:50:59 am
content: I believe their mainstay is Explorer 16 Board. If you look into Microchip MLA, there's Explorer 16, PIC18 Plug-In-Modules(PIM) and starter kits, etc. Buying a starter kit/demo board/development board to match a readily available library of application is one way of going about it.Come to think of it... maybe I should make some demo board... hmmmmm..... profit $$ ??

author: technix
author_rank: Super Contributor
timestamp: May 12, 2017, 01:27:25 am
content: Quote from: Luminax on May 11, 2017, 07:50:59 amMight as well be. I will look into those too.

author: ptricks
author_rank: Frequent Contributor
timestamp: May 12, 2017, 11:55:09 am
content: One comment about the 8051.Yes it is old, really old, but.....The core of the 8051 is still used in lots of new products mainly because it is so well understood and easy to implement, it is a true controller not so much a processor as the newer chips like pic, avr . Even the space shuttles used them for control.The popular ESP8266 wifi module uses an 8051 core for the controller .Learning the 8051 is easy and I wouldn't toss it aside as it is a very capable little chip that doesn't require much to use. I like the RX variety that have built in serial bootloaders, I think they were made by philips.

author: TJ232
author_rank: Frequent Contributor
timestamp: May 13, 2017, 05:08:58 am
content: Quote from: blueskull on May 12, 2017, 05:01:05 pmYes, it is a 32-bit RISC CPU: Tensilica Xtensa L106 running at 80 MHz.