element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Embedded and Microcontrollers
  • Technologies
  • More
Embedded and Microcontrollers
Embedded Forum The absolute question ... Where to start??
  • Blog
  • Forum
  • Documents
  • Quiz
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Embedded and Microcontrollers to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 9 replies
  • Subscribers 470 subscribers
  • Views 759 views
  • Users 0 members are here
Related

The absolute question ... Where to start??

Former Member
Former Member over 13 years ago

Hi guys,

 

I recently discovered this website and seems pretty cool. I see people with a lot of experience with embedded systems.

As a begineer, in my career and with embedded systems i want to ask you some questions:

First, i finished the studies of an electrical engineering university, i work as a software developer mostly for industrial applications : programming PLCs (until now only small ones), intelligent modems(C/C++ over OpenAT OS), building scada applications.

 

I don't know if programming PLCs and modems means programming for embedded devices (maybe someone more experienced can clear this out), they are in essence for a one task, but when i hear about embedded i think more at microcontrollers and low level programming.

 

So...i picked up some 16F PICs, i learned a little the arhitecture, built some hello world applications, flashing leds, using ext port interrupts, etc - all these in ASM.

 

Is these the path to a embedded system developer, or should i advance to a better microcontroller, C programming?

What should i read to optimize my work?

Have any good books or trainings that can you recommend?

Where can i read about latest technologies, IDEs, etc?

My goal is to achieve a level when i trully can understand what a embedded OS is all about, what requierments are for designing one (software & hardware), etc.

 

Is this the right path? should i try to find anoher job more towards small processors ?

 

Any sugestion can help.

 

Thank you in advice!

  • Sign in to reply
  • Cancel
  • DAB
    DAB over 13 years ago

    Hi Ionut,

     

    Welcome to E14.

    You ask several very good questions.  As a systems engineer, I would say that learning to program any logically ordered device gives you experience to understand and learn to program other devices like FPGA's and MCU's.  Logic is logic.  Instruction sets for different processors all basically do the same thing.  They just change the names of everything to protect the guilty. image

     

    During my 30+ years, I have seen a lot of changes, a slew of languages, programing approaches, fuzzy logic, adaptive systesm, you name it, it seems that something new comes down the pike everyday.  Rather than try to keep up with the changes, I concentrated on learning one system very well.  That way I could see how the new device implemented the same features and translate my design from what I knew into the different implementation.  I found this approach allowed me to do new designs on new devices very quickly.

     

    I am sure that others in the community will have different views, but this is my 2 cents worth.

     

    DAB

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 13 years ago in reply to DAB

    I can only agree with you DAB, even though I havent been in embedded systems for 30 years, I have gone the same path in IT and now I am following it in embedded electronics and my IT and embedded electronics paths converge as time goes by. In embedded electronics I started with 8bit Atmel AVRs and now work with Parallax Propeller, embedded linux on ARM and start having fun with FPGAs and VHDL/Verilog.
    I believe same approach can be applied to every engineering field.

     

    To answer the question where to start, IMO Atmel AVRs is good starting point, start with infamous Arduino, program it in native IDE, when you get a hold of what is what and why, jump to Atmel Studio and start messing with MCU registers directly and learn to get most out of the small chip.

     

    RR

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 13 years ago in reply to DAB

    I see...you gave a response exactly as i would expected...it reflects a lot of experience wich i don't have for now. My biggest problem outhere was not programming PLCs instead of uC, it is that the company i work doesn't have for now lots of projects on plcs and for a year i was stuck with a single one on my desk, and a small one with not so much capabilities. I want to do more, to learn more, and then i remembered from my studies, maybe i should try to work with uC, i can then buy another one ...more advanced if i like and do different projects and so on..so i started..

    I started learning a little bit of ASM, doing some basic interfacing projects to really learn the interoperability of registers etc, and after that going to C programming and trying to do more advance projects, and so on.

    Do you think this is a right way ? Or i should see this from a different angle, be satisfied with what i am doing now and hope there will be projects that will bring me more experience.

     

    Thank you for your response DAB, really enjoyed reading your '2 cents worth', for sure i learned some things already.

     

    Regards,

    Ionut

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Catwell
    Catwell over 13 years ago

    Ionut,

     

    Yes, PLC and your modem work is embedded. PLC programmers are in pretty high demand, I have seen in the job market recently.

     

    Good choice in processors to learn. The PIC family is used everywhere. I would recommend getting into the ARM series, as I have experienced first hand that is the direction many companies are going. Code transport between ARM chips is easy.

    Low end PICs (10F, 16F) are great for less intense projects. Continue studying the chip. Be sure to program in PIC assembly. Assembly is important to know.

    For more demanding projects, use ARM. I have worked for companies is Defence and Medical, and they were all looking into using ARM. Start with this book.

     

    Become more proficient in PIC and ARM, and companies will open the door to you.

     

    Or maybe you can start your own company.

     

    To name a few devices that use ARM, most cell phones and the Nintendo Gamboy/DS family. There are huge possibilities.

     

    Cabe

    http://twitter.com/Cabe_e14
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 13 years ago in reply to Catwell

    Thanks for your replies, it's really nice to see more experienced people ready to help you out.

     

    As I decided  how to go... i wanted to share that with you. For my job i will program PLC&modems and hope there will be more projects.

    As a side work for learning puposes i already started to learn a little bit about the picMicro. I proposed until march or so to really understand the arhitecture, build basic interfacing projects where to use all that the chip can : i/o digital&analog, interrupts, timers, pwm, communication :uart,i2c,spi. At the final i want to wrap this out with a wireless project(i have 2 wireless modules from odimex) that will include : analog reading, wireless data comm, lcd interfacing.

     

    After that as Cabe suggested i will try to go into a more complex arhitecture, cortex m3, cause it seems it's a popular processor, and i thought buying a developing board with a microcontroller based on cortex m3, i saw there are around 50$ on ebay (here if someone can to suggest something).

    After i will become confortable with this i will look into operating systems, maybe embedded linux programming and so on.

     

    I know that will not be easy, for sure i will get stuck sometimes and all that, but it's what i like to do and i want to advance!

     

    Again, thanks for your replies.

     

    Regards,

    Ionut

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • nermash
    nermash over 13 years ago in reply to Former Member

    And now for something completely different image

     

    If I were to start now with mcu development as a beginner, I would certainly go with MSP430 TI Launchpad development board/programmer/debugger and all that for 4.3 USD shipping included! As much as I like PICs, for beginner's projects this just blows it out of the water! Plus you get two mcus, so you can play with two projects at the same time, you have nice Eclipse based IDE, and very important for me: you can get sample mcus from TI anywhere in the world (unlike cheapskate Microchip).

     

    Regarding assembler, altough I have learned it to some extent and it is valuable to get an idea on how processor actually computes, I go with the moto I once read on some forum "when flash memory and cpu time becomes more expensive than my time, I will start using assembly" image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 13 years ago in reply to nermash

    Hi nermash, thanks for you reply...but i really cannot understand what do you want by "As much as I like PICs, for beginner's projects this just blows it out of the water!"

    I know that they have problems, what i heard from a more experienced friend of mine : "if you really arrive at the point when you can say that you really now PICs, you will not have major problems on any other embedded appliance", but i think is an enough complex chip to understand and help me understand more complex chips in the future...as about assembly, i like to really know what happens on the chip, at least for the first chip i will use, which is a PIC16F690, after that i will go to C for sure.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • nermash
    nermash over 13 years ago in reply to Former Member

    Hi Ionut, what I ment was that as a beginer you want to get things moving quickly, simple and very often with low cost. With PIC you have to get PICKIT 2 or 3, then you have to get a mcu, or you have to buy a PICKIT dev board. In USA or western Europe this can be found for 30 USD or 30 € equivalent, but in other parts of the world it is more expensive. RS electronics, official Microchip dealer for my country, wanted 55 € IIRC for PICKIT2PROMOPICKIT2PROMO only? So inital investement is significantly lower, and IDE is much much better, samples availiable throughout the world, and that is why it blows PIC out of the water image I stand to be corrected with the new MPLAB X IDE when it comes out of beta. Regarding silicon errata, it happens to everyone, you just have to pay attention to datasheet revisions.

     

    And I agree with your friend, and with what DAB said, once you learn one platform "to the bone", you will that is relativelly easy to apply that knowledge into quicker learning of other platforms.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • SGarciaV
    SGarciaV over 13 years ago

    This is an interesting thread. Now that you've heard from the experienced folks, I'll provide a point of view from some one not so experienced. To give you an idea of my background, at this time I am a corporate software developer. This means that I write software that takes inventories, invoices, places orders and other important processes for companies.

     

    This was not always so. At one tme I was involved with hardware and systems programming. Given the unstable job market I thought that it was time to return to these roots and play catch up with hardware, specifically embedded systems.

     

    I acquired several development boards. At this time I have an Arduino (who doesn't?), a TI LaunchPad (totally love this!), an AVR MCU based controller board (non commercial), a FreeScale i.MX53 and a Chumby (full product.

     

    Note that I decided to skip over the PIC altogether. While I believe that this technology has its applications and merits, I perceived that other technologies were a better starting point. I see AVR chips as more capable, likewise with the TI LaunchPad (MSP430).

     

    I went ahead with the Chumby and the i.MX53 because the former uses embedded Linux and is in itself a development system. The latter supports Android. I believe that it is important to know these two OSes and be able to produce software for embedded systems that use them. I perceive that Android will become an importart OS for embedded systems.

     

    The Arduino has the advantage of a large user base, painless (well almost) entry into embedded systems and has a large choice of "Shields" which are compatible expansion cards. Since it is based on an AVR MCU, I can use the recommended development system or migrate to something more advanced as another poster mentions. The wide  range of available shields let me concentrate on designing software that will interact with the environment, plus also having hardware information on how the shield works. The downside is that the Arduino is perceived as a platform for "non-programmers" and the development environment around it is more of a "toy" than a serious tool to be used by embedded systems engineers and industry. Still.the fact that uses an AVR opens many possibilities that can be exploited by a more technical crowd :-).

     

    My plan, as far as languages, is to learn assembly and C for the above mentioned platforms without neglecting other possible languages that may be available for the platform. Best regards, Salvador

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube