Not too long ago, it was sort of a mandatory practice to have an IC (Integrated Circuit) burner (sometimes also called a hardware programmer) at hand if anyone needed to work with microcontrollers.
Whereby, the customary practice in the hardware development would be something like writing code in Assembly or C language and generating a binary file. Then giving the binary file to a hardware specific IC programmer software to finally burn the instructions into a given microcontroller installed in a ZIF (Zero Insertion Force) socket of the burner.
IC programmers could either be IC specific, or some better ones supported many different microcontrollers and EEPROMs (Electrically Erasable and Programmable Read Only Memory).
In any case, after programming the device a minimum circuit was patched to supply the microcontroller with power, clock signal through an oscillator circuit, and finally adding a simple reset circuit – all this to just get the program running.
And for other input and output ports of the microcontroller, further connections were patched to complete a basic working circuit.
As a sidenote: IC Burning devices are also available in the form wherein multiple ICs are burnt in a single go, as is required for mass production.
Additionally, to just patch a minimal circuit for testing, sometimes component selection itself posed or still poses quite tricky challenges in certain scenarios. For example, when a Serial RS-232 Port is required to be used for communication with an 8051 microcontroller, the external oscillator crystal is chosen having a precise value like 11.0592 Megahertz. Otherwise, you can only expect to get garbage data at both ends of communication.
Still this kind of development is a significant improvement over previous generations of embedded development.
As a sidenote: Modern microcontrollers support multiple communication channels and allow different internal devices to operate at different frequencies. Therefore, a variety of high and low speed communication channels can be operated on a single chip.
Now that time has changed quite a lot within a few years. Thus, making much better options available that speed up an overall development cycle and facilitate in finding any problems much easily.
Now, we no longer have to go through a long development cycle anymore, until and unless there are some specific requirements like of supporting some legacy systems.
Arduino software development kit with hardware development boards, and some other such solutions are quite special in this regard and are worth mentioning. Without any doubts, it is one kind of a thing that shortens developing and prototyping cycle, facilitates in quick idea validation, and even helps tremendously in deploying quick solutions alongside developing hobbyist-grade projects.
On the hardware side, users readily get pre-patched minimal circuit for IC programming to literally enjoy a head-start.
Which thing do you like the best about Arduino?
Do you also know of some other boards for developing microcontroller applications? Please don't name Raspberry Pi in this regard, because they lie in the category of System-on-Chip (SoC) not in typical microcontroller category.

Comments
Post a Comment