Good class. Sounds like Orchid Tech has had some interesting application design wins giving you good experience Paul. Reviewing the archived version of this class there appears to be more information and development kit / support information available now.
It seems that the M0 compares favorably with 8- and 16-bit MCUs in terms of power, features and cost. What are the pros and cons of using the M0 for most designs? Are there any reasons to keep using the 8- and 16-bit MCUs?
@przemek GCC supports AVR. AVR Freaks even has a forum on it. I don't think they support PIC. I agree that using a single tool chain is *huge* benefit. This is especially true if you use STM for one project and NXP in the next. Perhaps things with GCC have improved since the last time I tried to use it. I know that some commercial tool chains are based on it and Eclipse. I will take your advice and take another look at it. Thanks!
ahem, gcc does not support 8-bit architectures... there were other development tools (SDCC, TinyCC), perhaps you're talking about those.
Nowadays GCC is a competitive toolchain---some vendors just ship it as a default option. The biggest advantage is that if you can live with it, it's the same toolchain regardless of the model you're using, within the ARM line and even when porting to something else. I am talking about the tricky stuff like linker scripts, interrupt code, ASM() low level code, runtime libraries, etc.
32K is plenty for many projects, and IAR is generous in providing that much on their free version. From time to time I do side consulting or whatever, and can't justify the cost of the commercial ARM products. My previous experience with the GNU 8 bit stuff is that it takes a lot of time to get it all running. I'm willing to pay sometihng to avoid that and have commerical PIC and AVR dev systems. At some point it the cost of the development system might make some designs impractical.
Thanks for great week Paul. Most of my designs have been 8-bit. Cortex M0 seems like a great price/performance alternative to high end 8 bitters. I just wish I could find a reasonable compiler under ~$500 like those available for the 8 bit world.
@Rlewicki: I know what you meant, but "full person's pulse" just painted a picture in my mind of a system that only worked after a meal and could not measure a hungry person's pulse. I guess it must be Friday....
@pauln: On slide 20, you may be creating the apparent inflection point by the non-linear scale on the Megahertz (x) axis. It looks like the microseconds is decreasing proportionately to the increase in MHz all the way to at least 24 MHz after which there just isn't enough resolution to visually detect the y value.
is that a real code example? it adds a fixed amount to the argument on each loop---presumably the loop is 'timed' by a hardware movement sensor. It's just a table lookup; at your resolution (0.01), it looks like you'd have 2 pi 1/0.01 or just over 6000 distinct possible values.
I am vendor specific picking a Cortex or other micro. Choosing certain vendors could have me shot (justifiable homicide) by my colleagues in Purchasing and Logisitics. Something to do with not meeting commitments to support production ...
@ckapsalis: Just about missed your question. I like IAR -- but can't afford the full version. I suffered at first with TI's CCSV5 -- but am quite happy now. It is integreated with SysBIOS which I will use on a bigger project -- like with L3MS6965 or the LM4F232. So since it is fully functional when hooked to a TI board -- and FREE in that circumstnce -- I recommend it.
The Stellarisware 9107 and the examples are quite useful.
@Kentj - Came across an interesting point yesterday - they said the temperature effects on the amp are less with the metal can, since the plastic (DIP) was in contact with the die and not so for the metal can version.
@Phildani7 -- there is a UDP libray for the LM3S6965 you have -- just look in utils -- make sure you have Stellarisware 9107. If you are using CCS5 -- anothe project is to look at SysBIOS RTOS and maybe even FreeRTOS.
I got both working on the LM3S811 -- bit of a challenge.
Once you have an RTOS -- you can look at some really serious projects.
One more thing: a flowchart is invaluable. Start -> finish. A wise man once said "A mans got to know his limitations" just so you can break 'em. And other said "Gotta have a plan, son." (In so many words.) :) Now, time for the recliner... :)
Most of the time I'm a "lurker." :) I learned electronics a long time ago, when current flow (through a wire) went from (-) to (+) and things that made light also made heat! (grin) Most of the time, when I comment, some youngster jumps in and tells me I'm wrong and I should get back in bed 'cause I missed my nap. :)
@bobybacs -- The voltmeter is a good one -- with some electronics for autoswitching -- to make it tougher. :-) The rest are sample programs included with Stellarisware -- so you can "cheat" properly! ;-)
Anyway the autoranging meter could keep Phil busy for an afternoon.
Joe -- I hunt the forums at TI e2e -- looking for problems as well. -- and fresh ideas of what to try.
I guess the best way for a beginner is to take one peripheral of uC and do some simple project with it, for ex. take the serial port you can use it to create an echo program or for an ADC try to create a volt meter. This way you can practice the programming language and also learn the uC usage too
@phil -- Yesy I am considering that board as well as the LM4F232. Since you have ethernet -- then maybe the next step is to send data to a PC -- via UDP packets and tie in an RTC so the samples can be organized via time stamp and sample number (you need both). The once that is done you really have the basis of a sophisticated logger.
I built that and it was able to talke to the Make Controler (ARM7) and an Arduino 2560 with Ethernet and gather data from two systems simultaneously.
Al written in Delphi -- the MAKE using the OSC -- and the Arduino using a custom Lib for the Bosch BMA180 (Accelerometer) and the BMA085 -- air pressure and temp -- a Dallas1307 for RTC.
DaveWR is correct, a weather station can be tough. But starting with a temp sensor and getting it working, then add a little LCD display, then maybe a wind speed cone with a voltage divider or a series of reed switches, you know, all very basic. Then start heading into the "wild world." My point was, without a defined project - a goal - all you'll be doing is doodling on a piece of scratch paper without a destination. Instead of a weather station, a add-on project to your favorite hobby. Anything. Something to follow from start to finish. :)
@Dave: Wow! Nice to know that someone had similar struggles. I am comfortable with Assembly, even ARM. But now trying with C, since with assembly I cannot do much. I have a LM3S6965. I tried the example programs. Wondering what to do next!
@phil and Joe --- A weather station is actually a tough project -- done right. Just get an accelerometer from Sparkfun or whoever.. MMA7361 on a Break out board should do it. Get that working and go from there.
@phildani7 I just started with the Cortex M3 a mont agon LM3S811. Make sure you get the latest Stellaris ware and the latest version of the DVD. If you are not using CCS V5 (latest) logon to the supllier site and get the latest version of their tools.
There are many C and C+ tutorial sites -- just use Bing or Google to find them For me it is a struggle switching from Delphi and other languages as well.
Don't pick a project too difficult, and pick one already explored by the experienced. (It's best to try and learn all you can (on a particular code segment) before checking the forums for guidance. Then check and get the "oh wow!" moment!) :)
@phildani7 Do you have a project to work on? If not, pick something, like a home weather station (for example) then as you add each device you'll learn the coding behind it. Without a goal, the (any) road is very rocky. :)
In a bid to boost the viability of lithium-based electric car batteries, a team at Lawrence Berkeley National Laboratory has developed a chemistry that could possibly double an EV’s driving range while cutting its battery cost in half.
Using Siemens NX software, a team of engineering students from the University of Michigan built an electric vehicle and raced in the 2013 Bridgestone World Solar Challenge. One of those students blogged for Design News throughout the race.
Robots that walk have come a long way from simple barebones walking machines or pairs of legs without an upper body and head. Much of the research these days focuses on making more humanoid robots. But they are not all created equal.
For industrial control applications, or even a simple assembly line, that machine can go almost 24/7 without a break. But what happens when the task is a little more complex? That’s where the “smart” machine would come in. The smart machine is one that has some simple (or complex in some cases) processing capability to be able to adapt to changing conditions. Such machines are suited for a host of applications, including automotive, aerospace, defense, medical, computers and electronics, telecommunications, consumer goods, and so on. This discussion will examine what’s possible with smart machines, and what tradeoffs need to be made to implement such a solution.