Thread: Electronics for embedded software dev ?

  1. #1
    Registered User MartinR's Avatar
    Join Date
    Dec 2013
    Posts
    183

    Lightbulb Electronics for embedded software dev ?

    Hey,
    I plan to develop my knowledge in embedded field, writing software for microcontrollers and IC in general. I am not sure if I understand enough from the electronics side (both digital and analogue). So I would be very thankful if you could list aspects, even whole subjects that are important in this field. I know quite well, circuits theory (norton thevenin, superposition etc,) I know how to solve RLC circuits, (find voltages and currents, as well as their derivatives), I know basics of AC, frequency, etc. From digital electronics I understand the basics of uC architecture, common peripherals, I know how transistor, ADC, PWM works. Definitely I am worst in analogue area, so here are my main interests ...I know what op-amp is and RLC components. What else should I understand ?
    So, summing things up, what concepts from both digital and analogue side should I know to be fluent in embedded area ?


    PS: I mentioned mainly high level concepts like circuits theory, RLC and so on, I would be very very thankful if you could specify more detailed aspects important in this field (i.e transisorts conf behind uC pins, etc).


    Thanks!

  2. #2
    Registered User MartinR's Avatar
    Join Date
    Dec 2013
    Posts
    183
    Nobody have a clue ?

  3. #3
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    This is not exactly an electronics forum. If you find something, you could post it here so others could know.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  4. #4
    Registered User MartinR's Avatar
    Join Date
    Dec 2013
    Posts
    183
    Quote Originally Posted by Elysia View Post
    This is not exactly an electronics forum. If you find something, you could post it here so others could know.
    This is definitely true but, from my point of view this forum is very much focused on C programming. Now ask yourself, where you can use C and for what is C good nowadays ? Windows app with C , Games written in C ? Rather no, there are better laguages for these tasks. So the only thing that comes to my mind when I think about programming in C is microcontrollers and embedded software in general. But on the other hand, doing so requires knowledge of electronics, both digital and analog. So thats why I asked such question here


    Pitty, nobody wants to share opinions ;/

  5. #5
    and the hat of int overfl Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    38,114
    It's an awfully wide field from analog electronics to a web browser.

    You might want to consider your area of specialisation. Things move so fast that it's hard to keep up with everthing, nevermind being able to master it.

    Sure, if you want to specialise in bare-board C programming interfacing to digital and analog circuitry, then knowing say where to stick an oscilloscope probe to verify that your program is setting a line correctly will be an advantage.

    I'd like to think I could look at a circuit diagram, be able to pinpoint significant points of interest on a physical circuit board and deduce that "if this happens here, that happens there". But for sure I don't remember anywhere near enough electronics experience to be able to come up with the circuit design in the first place.

    But if chips and components are your thing, then basic MCU programming will help you. At least you'll be able to show the pure s/w devs how to control your hardware via the software interface.

    You might for example be able to design and program all the electronics and s/w for say a university project. But in employment land, there are usually teams of people on both sides, with varying degrees of foothold in either camp.

    FWIW, the hardware side always has a tendency to be reduced. If it can be done in s/w, it will be done in s/w. If h/w can be made simpler or cheaper, it will be. If you're selling millions of copies of your gadget, then every cent saved on hardware goes straight to the bottom line. But s/w is essentially free at the point of manufacture, so the amortised cost of a few weeks work on some software can be a fraction of what it would take to fix it in hardware.
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.

  6. #6
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413
    Noise considerations and filtering, circuit protection, practical usage of FETs and op-amps

  7. #7
    Registered User
    Join Date
    Sep 2015
    Location
    Australia
    Posts
    63
    Hi all...

    A perfect example of what Salem is tallking about.....check out Amateur Radio forums....there is plenty of developement in SDR, Software Defined Radios....it takes just 3/4-chips and you have a direct sampling radio, where the signal is put into the USB port for the computer to decode all the modes (FM,AM,SSB,RTTY,WSPR..decode Satelite Telemetry and the rest), also modifying certain USB devices that can be used to listen across a wide range of frequencies.. Radio is slowly going from analogue to digital..with faster computers and software.

    John

  8. #8
    Registered User MartinR's Avatar
    Join Date
    Dec 2013
    Posts
    183
    Thank you guys for opinions

  9. #9
    and the hat of int overfl Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    38,114
    Any old cheap hardware
    https://www.raspberrypi.org/blog/raspberry-pi-zero/

    I wonder how well they cluster....
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.

  10. #10
    Registered User
    Join Date
    Jun 2011
    Posts
    4,509
    If you haven't done so already, you should also learn about serial communication protocols.

    This is a very necessary skill to have in the embedded programmer tool-kit. Writing code to run on the computer is important. Writing code to run on an embedded device is important. Writing code to run on the computer and interact with the embedded device is very important. Whether you're designing a circuit that requires a serial user interface, or just implementing a boot-loader in your device, you want to be able to write computer programs that interact with MCU programs on some level.

    You might also want to learn about device-to-device communication (e.g RS-485), so one MCU can coordinate the actions of many.

    If your understanding of circuit theory is as sound as you claim, then there probably isn't much further for you to go for the most common types of applications. You probably don't need to go into the bias point of transistors, unless you're working on very specialized applications.

    You should also familiarize yourself with interfacing of peripheral devices, such as off-chip EEPROM, real-time clocks, digital potentiometers, etc.

  11. #11
    Registered User MartinR's Avatar
    Join Date
    Dec 2013
    Posts
    183
    Matticus, fair point, serial communications is important, actually I've done PC - uC communication using RS-232. Now I have a feeling like I know many things but nothing really in depth...

  12. #12
    Ticked and off
    Join Date
    Oct 2011
    Location
    La-la land
    Posts
    1,728
    Adding to what Matticus wrote, I'd also add USB to the mix, on both the host and the client sides. It's not complicated, but there is a lot of standardized stuff, like generic devices (Human Interface Devices for example), and knowing how to implement the kind of USB device that can interface to any host without specialized drivers makes it much easier to develop hardware with computer connectivity.

    Many Arduinos only implement an USB-RS232 bridge, so that they're always USB-serial devices. Due, Yun, Leonardo, Esplora, Micro, and Zero do seem to have a native USB port; many microcontrollers like Teensies, ATmega32u4 boards, and most ARM ones also provide native USB interfaces. A native USB port allowing a microcontroller to appear to a host as normal keyboards, mice, joysticks, gamepads, or just about any basic USB device (or multiple devices), without requiring any drivers to be installed on the host. This, and the ubiquity of USB, makes it very useful to grok.

    (My first true microcontroller project was an arcade-style joystick and buttons mounted on a birch plank, like an oversized gamepad, with a Teensy 2.0++ as the microcontroller. No drivers needed, works on any computer that supports USB keyboards and/or gamepads -- I used a 16-position encoder to switch between modes, so that it can appear as a keyboard too when I want to play Flash games with it.. The heavy-duty arcade joystick cost as much as the Teensy; all components and parts together about 50 euros or so.)

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Becoming An Embedded Software Engineer
    By zhangz64 in forum General Discussions
    Replies: 7
    Last Post: 09-21-2014, 10:29 PM
  2. Becoming An Embedded Software Engineer
    By zhangz64 in forum Windows Programming
    Replies: 0
    Last Post: 09-16-2014, 11:24 PM
  3. Searching for an Embedded Software Engineer
    By VCSinc in forum Projects and Job Recruitment
    Replies: 0
    Last Post: 03-20-2013, 11:50 AM
  4. Embedded Software Developers UK
    By nicholsonuk in forum Projects and Job Recruitment
    Replies: 0
    Last Post: 02-28-2012, 04:02 PM
  5. Embedded Software development
    By sumit_gautam in forum C Programming
    Replies: 0
    Last Post: 02-16-2005, 04:58 AM