I appreciate the repetition for effect - it works to drive home critical points. I would tho like to see a little consolidation and maybe introduce a half dozen slides (interspersed over three days if needed) on particulars of Development Boards and RTOS's to also solidify some key points ... altogether - a worthwhile class from a knowledgeable instructor.
If Development boards are indicators, am thinking some vendors may want to hire me to architect, design and implement boards for them ... cheaper than an applications engineer running around from client to client ...
Thank you all for paying attention this week. A lot of the resources we discussed can be found at the Digi-Key website, including recent device announcements, development boards, and starter kits.
Again, thanks for participating and have a Great Weekend, everybody!
@Bill Sounds like a good online article follow-up. Distill your presentation and the chats into bullet points. A final section for comparing the "good" candidates, e.g. dev boards, library support (USB, Ethernet, HMI, etc), errata, app notes.
For SoC development linaro(http://www.linaro.org/) initiative is the major step for open tools. If people here get some time please try contributing to it.
Embedded linux -- have actually configured Slack 7 though 10 for embedded as I said the other day.
Will look at it again shortly with a high end ARM -- just want to finish current projects. Maybe Raspberry PI -- just about bought in -- too much on the go -- and then there is the $200 for a real working system for my purpose.
While at GE Security, I co authored the NPI process. Totally took it from a task driven perspective to requirements flow down. Totally different perspective, but a good one IMO.
@dave: I have friends that use that. They're diverse enough to apply to just about anything, not just technology. I love dedication ( i know, this can be dangerous).
@mh -- yes I mentioned the design vs programming because many do lose sight of where they are going... without the top down design (requirements) it sure is easy to get lost.
@KentJ We went through a major layoff in my group. Left me doing it all at the moment. Hardware, firmware, systems, and development cost quoting. Keeps life interesting no???
@KentJ: if you're coming from hardware, you stand a better chance at being great at it. You know all about Xc, etc. so just understanding how to reach registers are a breeze for you. Unlike us programmers...
@UART -- State diagrams -- used them from the beginning -- always work. (For me and every techie I know) Have a good loook -- maybe you'll convert -- maybe not. Your call.
@mharkins -- the threoretical side of CS is good for RTOS and algorithms -- but pure CS without Hardware -- almost impossible to do the HW interfaces with out steep learing curve. Agreed.
@Uart I can't architect a firmware solution without flow diagrams. Need to think it through at a higher level before I start coding. Maybe its just me. BTW, I've done medical product too. Life safety product, and then your everyday thermostats.
How many people have seen software programmers cross over and try and write embedded code? The time's I've ran into it has not been successful. They are two totaly different worlds.
@DAVE I use good templates as much as possible, with respect to Microcontroller grade. I found that you cannot alway rely on datasheets and white notes to get you by.
Embedded Systems Engineering is TRULY an art.
and those who know it, their work shows. (I'm still learning... even when/if it works)
@gaun. I can see that as being useful. My problem has always been that each new project differes too much from the last. I might pull up code I wrote 5 years ago, and revamp it, but never had the chance to work on consistent enough projects to reuse code to the library level.
You're saying it get poring going in circles? AInt that the truth!!
@mharkins I have officially been on both sides -- sympathetic to you and the proff. Had many PhD and MaSc working for me -- not all are worth the bucks -- lots are.
I've been turned down (or not even interviewed) for not having a degree many a time. I've always looked at it as I wouldn't want to work for a company who sees the value of its people as a piece of paper first, and accomplishments second.
@mharkins: I am taking some time out to write a good library especially for circular queues etc. Helps a lot when I want to have a quick but efficient proto when interfacing with buses.
@UART -- Some of the stuff I do in NP Problem -- (NP Hard, NP Complete etc) solution programming is pretty tough without the academic side -- as for the rest...
@Bill: Last question... It´s the S3C2440 a recomended microprocessor for new designs? May be we should consider a diferent Micro...
Our finally product is a monitoring and controlling system... Remote control of water tanks. We´re using USB ports (Wi-fi, internet acess, IIC comunication, serial ports. Basically we´re getting information of the system and controlling actuators.
@guan Not really. Seems every new project is a new project. I sometimes will re-use algorithms I've written previously (always with an eye for improving them) but never taken the time to structure them in a library.
@Bill: The ONLY time I'll consider ASM100% is when memory and operation are mission-critical. I found ways around that now without all the overhead $$.
Thanks for the lectures Bill. I'm off to class. Teaching a fledging group of students how to take over their world with code.
Guess no one wanted to touch that question of my 2 year program. I know... their still is that stigma in the HR departments. Serious issues are that most of my most bright students don't want to or can't afford a 4 year school. All that talent is going un-used. I employ a few of them on some embedded projects that are on government contracts, but I'm not ready to hire them all
What a shame. embedded programming is one of the few sciences where you can be self-taught and still be a professional.
Writing everything in assembly is tedious and waste of time. Critical sections of the code written in assembly is great.
Best way to code it! Also, assembly language often looks good on your resume - but sometimes non-assembly language hacks (9-5'ers) will be afraid of you because you might make them look bad
Thanks for the lectures Bill. I'm off to class. Teaching a fledging group of students how to take over their world with code.
Guess no one wanted to touch that question of my 2 year program. I know... their still is that stigma in the HR departments. Serious issues are that most of my most bright students don't want to or can't afford a 4 year school. All that talent is going un-used. I employ a few of them on some embedded projects that are on government contracts, but I'm not ready to hire them all.
Some of the best assembly programming I have seen written like koans is michael abrash Graphics programming black book. http://www.drdobbs.com/parallel/graphics-programming-black-book/184404919
@mharkins -- My record is over 10 years with no ECOs -- Math Processors, comm protocol processors etc. Yes fixing things for others -- great career eh? lol
@Bill I do work for a family resource company -- am the Science Officer -- they claim I cast spells to make machinery/scientific equipment work... maybe Luminary would have been a good home if they are that strange... rotfl
@DaveWR LOL! Aint that the truth. I've recently returned to a company I previously worked at for 13 years. All the products I designed previously are still in the market with no issues. SO what do I do now? Fix all the products that were released after I left! Sheesh! It not only takes an understanding of doing code, or design, it takes a fundemental understanding of the market needs to implement a proper user interface, or to avoid the pit falls of "when things go wrong"
@Bill: Monitoring and controlling system... Remote control of water tanks. We´re using USB ports (Wi-fi, internet acess, IIC comunication, serial ports. Basically we´re getting information of the system and controlling actuators.
I agree. Good ol Assembly. I love being as close to the processor as possible. Assembly language gets you there. Right away You'll know the feel of it in operation on your prototypes.
Yes it's longer but I don't no long consider work as work, even when at home!
@Bill For the record, most people think of me as a EE. I just cover all aspects of it. Thats what happens after a few (ha ha) years of doing it. I design the hardware, system architecture, firmware architecture, and do coding depending upon the specific project requirements.
@javawantabe: You can try the msp430 with a small set of assembly instructions. There is a package of example code in C and assembly. Also the datasheet examples in assembly.
@javawantabe... I went back to school afte 10 years out. My most used material from CS/Eng/Math is the material from the theoretical computing, algorithms and theoretical math. fwiw.
For learning Ethernet and USB, try Microchip 32 bit 500 series to 700 series microcontrollers. They have free stacks for both that you can download and it makes it easier to learn. Also the microcontrollers have a built in MAC address so you don't have to buy one.
@BillGioino: That's encouraging. Ok. Have a serious one for everyone. I'm in the process of designing a 2 year degree specific to embedded programming and design. No, it's not a 4 year degree... I know. What it does is cut out most of the B.S. that students have to go through to get to the meat. Sad side note: Most CS students that I see in our state don't touch a word of code until their 3rd year! So, the idea is to cut out that first 2 years and go straight for the gusto. Question is: How attractive do you think that would be to employers?
Do you think we can use another OS instead of WINCE 6.0 for the S3C2440 microcontroller? I think our application does not requires a 32-bit microcontroller. Is there an OS that we can use???
if you are trying to teach the level of the controller down to the hardware interface level, the assembly is a must. Its the best way to show the data pathways, and how the internals of the part truly operate. If you are approaching the microcontroler as a "black box", then it is not required. In those cases, assembly would only be needed when requiring some special optimization. At least that has been my experience so far
Very true, especially if you want to optimze your code. Even more important when you are running out of memory - write your own assembly optimized language routines
@Bill: Do you think we can use another OS instead of WINCE 6.0 for the S3C2440 microcontroller? I think our application does not requires a 32-bit microcontroller. Is there an OS that we can use???
Another question I have is: What does the employment field look like for students who are capable programmers and decent embedded system designer/programmers?
Very good. Build a few projects thayt you can use to show your expeirence. I suggest learning USB and Ethernet, as well as WiFi. Build some projects with these technologies and put them on your resume.
@javawantabe if you are trying to teach the level of the controller down to the hardware interface level, the assembly is a must. Its the best way to show the data pathways, and how the internals of the part truly operate. If you are approaching the microcontroler as a "black box", then it is not required. In those cases, assembly would only be needed when requiring some special optimization. At least that has been my experience so far
@javawantabe: well, I still use ASM. The industry shuns people like us because you can throw the same code at Different Microcontrollers and get close to same results, but not with Assembly..
They should still be exposed to it however IMHO, because this is what reveals how good the Microcontroller will be to you right away.
Good point. I am also interested in that answer. We started looking at the TI Cortex-M and found some serious errata.
Ah, when TI bought Luminary and their Cortex-M micros, TI discuvered a number of quality problems with these Cortex-M's. It's unfair but the tech support people are bearing the brunt of the blame.
Another question I have is: What does the employment field look like for students who are capable programmers and decent embedded system designer/programmers?
We look at each new product development from the angle of can it capitalize on previous work, does it need new capability. THen always rescan the market to see what new parts are out there that might best fit the need. That's why I've use Microchip, TI, Rensas, Samsung to name a few.
I am a professor of Computer Science but trying to blend microcontrollers into the mix. We have had great success with C but wondering how much Assembly is really needed? Is it important for my students to know?
@BillGiovino: What microcontroller manufacturers have the least and the most number of silicon errata's? Seen some real bad errata's on the TI MSP430F5432a.
Good point. I am also interested in that answer. We started looking at the TI Cortex-M and found some serious errata.
It's hard to love a Microcontroller today, due to the rapidly changing technology and IF you dare to lock yourself in on one type, you can bring the house down!
@gaun, to tell you the truth, I don't remember now. We didn't buy the processor directly, and partnered with the manufacturer of the radio module in creating the application layer interface so we could embed our code into the same chip. THe actual processor was one of the TI affiliate chips specifically used in the celluar market. ThHis was 4-58 years ago now.
@gaun: By speeding up processing I'm reffering to all the simultaneous processes running. The PIC32 runs at a nice 80MHZ and the PIC24, I belive runs at 70MHz.
@UART and Bill, I'd agree. WHen TI first introduced the MSP430, I came across a couple of "non documented features" that I had to implement external hardware solutions for. Later TI introduced internal Brown out circutry fixing the issue.
We use two 8 bit micros on a safety controller for a mechanical press. One micro is an 8051 and the other is an HC11. Quite dated but requires too many resources to update.
@Bill: Actually yes, the past program we made had some troubles. The main application breaks some times and does not support as many task as we expected... That's why i don't want to use the same micro and operative system
@gaun We ended up purchasing a radio module, so I'm sure there were mutiple dies contained within, but yes, there was only one processor in the module that contained the rtos that ran the radio code, with our application code sitting on top.
@BillGiovino: What microcontroller manufacturers have the least and the most number of silicon errata's? Seen some real bad errata's on the TI MSP430F5432a.
In lower voltages; yes, due to line noise. back then we weren't dealing with speeds that we're dealing with today, ntm, registers too. Of course it's almost a catch22 but if you weigh it all out I'd say yes.
First pass of embedding a cellular radio in a product had seprate processor for radio and application. Later we embedded our application code into the radio core (major cost reduction). In this case they were both TI parts.
UART: I try and stay close to Linux as possible, which is why I prefer to work on on a FRU's core, including background operations, rather than the Human-Interface Applets...
For those of you using more than one microcontroller in your design - can you tell me, what microcontrollers are you using and what are you making with them - what is your system?
@Bill: I try and stay close to Linux as possible, which is why I prefer to work on on a FRU's core, including background operations, rather than the Human-Interface Applets...
I've working in this company about 2 years. I've done to many different tasks, so I have not much expirience on developing new products. Now we're development a new mother board for all the products we sell... We´re using a S3C2440 microcontroller and WINCE 6.0 as operative system.
I think we can use a better resources (micro and OS) but I don't know what kind micro and OS can I suggest.... Any ideas of where can I start looking at to see if there are better resources we can use? I mean what kind of micro and operative system could be a better from the ones we're using now?
Interesting. If you are using WinCE, you definitely need a 32-bit, which you are using with the S3C2440. Make sure you are maxed out in your memory. Are tou having performance problems with that board? is the UI lagging? You would probably be better served with a main 32-bit and a 16-bit to do the user interface.
@UART, I agree. THe only exception I've ran into is when you have a process intensive sub task that is best delegated off to a slave processor to handle, so your main processor can focus on the top level applicaton. Don't run into it as much now days, but I can still see it happening.
The soft core microcontrollers for FPGAs could be a whole week, certainly more than one 30-minute presentation. Include soft and hard core processors in FPGAs. Advantages of each. Comparison of those to microcontrollers, and best applications for each.
@UART, I basically agree with you, but the question was which single one. If I were to teach with the idea of covering as much ground in the least time, I'd start with 16 bit. There isn't a lot of architectual differences between 16 and 8, while there is between them and 32.
On 32 bit "successful" architectures: IBM System/360 and its 32-bit successors (loosely the base of the intel 32 bit family), the Intel IA-32 32-bit version of the x86 architecture, the DEC VAX, the Motorola 68k, and the 32-bit versions of the ARM, SPARC, MIPS, PowerPC and PA-RISC architectures. 32-bit instruction set architectures used for embedded computing include the 68k and ColdFire, x86, ARM, MIPS, PowerPC, and Infineon TriCore architectures. Seems like more than six.
I'm a little confused. I've working in this company about 2 years. I've done to many different tasks, so I have not much expirience on developing new products. Now we're development a new mother board for all the products we sell... We´re using a S3C2440 microcontroller and WINCE 6.0 as operative system.
I think we can use a better resources (micro and OS) but I don't know what kind micro and OS can I suggest.... Any ideas of where can I start looking at to see if there are better resources we can use? I mean what kind of micro and operative system could be a better from the ones we're using now?
Any comment would be helpful =)...
P.D. Sorry if my english is not so good. My native lenguage is Spanish
Intel might beg to differ with you on the x86 atom in embedded designs.
The Atom is relatively new. It is still cutting it's tetth in the industry, so it may be too early to call it a success or not. Especially when Intel has a history of cutting loose architectures that aren't successful quickly.
I started off on 8-bit, and found it lovely, then moved to 16 bit. This helped me understand the direction the architecture was going. I would probably recommend both: 8&16 together for more depth of understanding IMHO.
For those checking out ARM for the first time, be aware that there are multiple ARM cores, each targeted for different applications. Even the ARM Cortex core has Cortex-A, Cortex-R, and Cortex-M variations. (note the "A" "R" "M" marketing slant).
Also, the definition of Embedded can cause discussions that would drain more than one keg. Large communications infrastructure and military systems are considered embedded, and you won't find most of the devices we are discussing.
Microcontrollers or EmbSys, I didn't know it was a difference. Microcontrollers represent EmbeddedSystems, so I thought. Therefore I suppose Embedded Systems would be the core curriculum, and from there you learn Microcontrollers, right?
Well, Embedded Systems is basically anything that is NOT user-programmable. So a PC, which is very user-programmable, is not an embedded system. Microcontrollers are used in embedded systems.
@drw36 @Alaskaman66: Have a look at Digital Signal Processors and Getting Started with DSP's. Those sections are written by analog devices and is very interesting.
@UART, they're basic enough to get your hands dirty without the complexities of larger cores, yet have the advantages over the 8-bit parts of better (and usually more) peripherals.
@UART I thin cghaba was asking which architecture would be best to use to teach embedded systems. From my point of view, I'd use 16 bit parts to teach the basics.
@cghaba: Microcontrollers or EmbSys, I didn't know it was a difference. Microcontrollers represent EmbeddedSystems, so I thought. Therefore I suppose Embedded Systems would be the core curriculum, and from there you learn Microcontrollers, right?
I think the "Internet of Things" putting things like light swiitches, thermostats, smoke alarms, etc. will push a number of traditionally 8 bit implementations to 16 or 32 bits because of the complicated communication stacks like Zig-Bee.
Gaun - I couldn't locate the reference you mentioned on DSP for engineers and scientists, but I did find a tutorial on the Analog Devices website called "Mixed Signal and DSP Design Techniques." Thanks
From yesterday, the PIC24 does not have built in Ethernet but works very well with the ENC624J600 PHY also from Microchip. The ENC624J600 has a built in buffer for TX and RX and works with SPI or parallel interface. Microchip has examples of using the PIC24 in their Ethernet Stack. And FreeRTOS has support for the PIC24 as well.
Was taking a microcontroller class this week and wasn't able to see your other presentations. I did get to see today's in its entirity. VERY much looking forward to seeing the other ones! Stuff like this is worth paying for. Thanks for the freebie ;)
Now companies are switching to the arm cortex for low power bluetooth and microcontroller all things integrated. See nordic bluetooth solutions. Also TI is going that way.
@GBoos Now companies are switching to the arm cortex for low power bluetooth and microcontroller all things integrated. See nordic bluetooth solutions. Also TI is going that way.
A number of cortex M parts have bit banding (addresses access a single bit) or special output registers that only set or clear bits in the I/O port instead of dedicated instructions
@DaveWR Thank you, but I'm an ol' guy. I like 40's to 60's trucks (even though I'm rebuilding an '80 Bronco) and I already have new vehicles for dating the pretty girls. (grin)
Tod date, out of all the products I've worked on, only one used an RTOS. And that one we needed to write our own USB driver for. That product was embedding our application code into a cellular radio.
Dev boards should be used to determine software library support for peripherals, like complex communications peripherals (USB, Ethernet, graphic display). Better to check things out with multiple dev boards (in same vendor's family) than wait until your PCB is fabricated.
I agree with starting with development tools, but lead time in volume is a major factor in time to market. I have had vendor lead times be longer than my schedule for development.
And, a plug for Digikey, if they cannot get you prototype quantities off the shelf, that is a red flag.
Andrew Morris designed a circuit that could detect a stroke victim's groan and convert the sound into a signal so caregivers would know when help was needed.
New disc magnet motors fit into the design trend of stepping up to closed loop performance while maintaining the cost advantage of stepper motor technology.
At the Design News webinar on June 27, learn all about aluminum extrusion: designing the right shape so it costs the least, is simplest to manufacture, and best fits the application's structural requirements.
On April 21, NASA launched a novel project, putting into orbit three satellites that employ an off-the-shelf commercial smartphone as the control system.
From Dell / Intel® New Paradigms in Design Work Scott Hamilton, vertical market strategist for Dell Precision workstations, 5/2/2013 5
Early in my career, I worked as a draftsman and remember the days of drawing on vellum with numbered pencils and Mylar with plastic lead. This was a fun experience in the sense that I ...
I've been using workstations for more than 10 years and love finding ways to get more performance from my system. With demanding professional applications that require more power each ...
A lasting memory from my first job as an engineer in an auto assembly plant is standing on hard concrete at six in the morning, vending-machine coffee clutched in hand, listening to ...
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 radio show will show what’s possible with smart machines, and what tradeoffs need to be made to implement such a solution.
To save this item to your list of favorite Design News content so you can find it later in your Profile page, click the "Save It" button next to the item.
If you found this interesting or useful, please use the links to the services below to share it with other readers. You will need a free account with each service to share an item via that service.