Fez Domino
This development board was developed by GHI Electronics. It use 32 bit ARM7 (LPC2388FBD144 run at 72 Mhz) as the main microcontroller. It also the same as other general embedded development board except
that it use Visual C# 2008 Express Edition as compiler (so you must able to write the C# language) and use Microsoft .Net Micro Framework as the template for development the program on this microcontroller.
This IDE provide the full function of debugging capability. It also provide
an emulator mode , so you can run your developed program
without burning it into the real development board.
The extra capability of FEZ Domino is that its IOs port are correspond with
the hardware standard of Arduino (Pin compatible with Arduino) ,
so it can be used together with Arduino shield board.
For more information about Fez Domino , please visit TinyCLR.com

Picture of Fez Domino board
Below are videos introduce about how to develop program on Fez domino
Thanks,
If you have some questions or want to suggest something to me , please send an email to admin@embedsoftdev.com
Admin
jitkasem pintaya
RS-485 is name of standard for data transmission that use only 2 wires.
One wire for sending the data (TxD) and another wire for receiving data (RxD).
RS-485 can be configured to work in Half-duplex or Full-duplex mode.
The example of equipments that use Half-duplex communication are
Fax, Printer, Intercom , walkie-talkie , etc.
Full-duplex equipments such as Telephone or Mobile phone.
RS-485 standard was specified by EIA (Electronics Industries Association)
since 1983.
The advantage of RS-485.
Nowadays, the data transmission used in industrial sector are almost RS-485 bus.
The reasons that people use RS-485 bus in industry instead of RS232 bus are as
follow…
1. Price of equipment to create RS-485 bus system is cheap and it require
only +5V (VDD) power supply.
2. The ability of inter-connection, RS-485 can connect with a large number of
internal equipments and it also support the work like networking system.
It can support up to 32 drivers (transmitter) and 32 receivers while RS-232 can
connect to only 1 transmitter and 1 receiver.
3. The distance that RS-485 bus can connect to the equipment is as far as 4,000 feet
or 1.2 kilometre while RS-232 is limit to only 50 to 100 feet.
4. Baud rate of RS-485 is up to 10 Mbps (in theory only) compare to the baud rate
of RS-232 that is only 20 Kbps. At the longest signal-carrier line, the data will be
transmitted at the slowest baud rate.
Characteristic of RS-485 bus.
- The longest range of signal line is 4,000 feet with baud rate of 90 Kbps and
and with the length of 50 feet , the baud rate can be up to10 Mbps.
RS-485 wire
The signal carrier wire that can be used on RS-485 bus system are
twisted pair and triaxial.Twisted pair line is work fine on RS-485 bus and it also cheap. It comprise
of 2 signal wires that covered by an insulator.Below is picture of twisted pair cable.

Twisted pair cable
Twisted pair can decrease low-frequency noise that arise from magnetic induction
of the carrier wire because twisting two wires cause the confutation of magnatic field
produced from each wire.Otherwise twisted pair also help to decrease the effect that come from external noise too.
Another wire that admired to use on RS-485 bus is Triaxial.
It can protect the noise from the external system but its price is more expensive
than Twisted pair.Triaxial cable is similar to coaxial cable except that it consist of two shield-layers
(inner shield and outer shield) while coaxial is consist of one shield layer.
(shield layer is used for prevent the external noise that may disturb signal transmission)
Both triaxial and coaxial have the “center conductor” that is a wire used for transmit
the signal. Below are the pictures of Triaxial cable and Coaxial cable.

Inner structure of coaxial cable

Inner structure of Triaxial cable
Pictures of this article are come from
1.http://www.gore.com/en_xx/products/cables/copper/networking/shieldedtwisted/index.html
2.http://www.camplex.com/PX1CableFAQrB.shtml
What are FPGA and CPLD?
A FPGA or Field Programmable Gate Array is an integrated circuit designed to be configured after manufacturing, hence it is called field programmable. FPGAs contain programmable logic components termed as “logic blocks”, and a hierarchy of reconfigurable interconnects that allow the blocks to be “wired together”. This logic blocks can be configured to perform complex combinational functions or merely simple logic gates. In most FPGAs, the logic blocks also include memory elements. The FPGA has this definite advantage that it can be programmed or updated by the user at site for which the recurring cost remains insignificant in reference to an ASIC design. The ASIC designs also have a unit price tag in the higher side. Therefore FPGAs offer various advantages to numerous applications.
The full form of CPLD is Complex Programmable Logic Device. It is a programmable logic device. It has the architectural features of both PAL and FPGA but less complex than FPGA. Macro cell is the building block of CPLD, which contains logic implementing disjunctive normal form expressions and more specialized logic operations.
The difference between FPGA and CPLD
The primary differences between CPLD and FPGA are architectural. A CPLD has a restrictive structure which results in less flexibility. The FPGA architecture is dominated by interconnect which makes them not only far more flexible but also far more complex to design.
Most FPGAs have higher-level functions like adders, multipliers and embedded memories, also logic blocks, which implement decoders or mathematical functions. This is not the case with CPLDs.
The major difference between the architecture of FPGA and CPLD device is that FPGAs are internally based on Look-up tables (LUTs) while CPLDs form the logic functions with sea-of-gates.
The difference between FPGA and Microcontroller.
A microcontroller is computing system. Microcontroller has lots of hierarchical rules and commands over its input and output. It has its own processing unit. Microprocessor can perform loops, timings, conditioned branching, and calculations like a small PC under program control. Microprocessors are used where the operation is relatively complex but processing speed relatively less than FPGA. FPGA is only an array of gate that can be connected as the user wishes. FPGA is no computing system. FPGA are used for relatively simpler operations but higher processing speed in comparison to microcontrollers.
The applications of FPGA in Embedded System.
The part played by FPGA in context of embedded system is getting more crucial every day. This is due to the reason that capability of FPGA is on the rise and now it has powerful FPGA design software as well. The digital video application domain is the main consumer for FPGA systems and is instrumental in increasing its market share as well as forcing development in FPGA for bigger spectrum of applications. In current years FPGA is finding its application for fast signal processing. FPGA is an embedded platform with soft processors. This makes it possible to design FPGA based system on design applications. The decreasing price and increasing size and capability combined with an easier designing software tools is positioning FPGA in the embedded system context to take up a crucial role.
In-Circuit Emulator
For debugging an embedded system’s software, a certain kind of hardware tool is used, which is termed as in-circuit emulator (ICE). It is first among the embedded system debugging tools and is still one of the most popular one.
Example of In-Circuit Emulator
The peculiar problem with embedded systems is it doesn’t have a terminal or in most of the cases, a display unit, therefore, making it difficult to probe the system to find what is wrong and debug. ICEs provide a solution to this typical problem of debugging embedded systems. The Emulator can track all the operations going inside a CPU under observation and brings it to the direct observation of the user through its interactive terminal. The ICEs not only provide the information about the targeted embedded systems working procedure, but it also provides a huge debugging resource. The ICEs are still one of the most popular tools as it is still unrivalled for its power and capability.
The house of Microchip offers In-Circuit Emulators in three variants. MPLAB ICE 2000, MPLAB ICE 4000 and REAL ICE. All three of them are full circuit emulators and can be used with MPLAB IDE.
The MPLAB ICE 2000 has a parallel interface along with USB converter, and it requires an emulator module. The drawback with MPLAB ICE 2000 is that the hardware to be tested must have a socket for production device or emulator module.
I will not discuss about MPLAB ICE 4000, as Microchip is phasing it out. It is no longer advertised by Microchip and Microchip also does not recommended it for new designs.The REAL ICE is the most recently launched product in the market. It works on almost all flash based processors like PIC24, dsPIC, PIC etc.
The advantages of ICE
All embedded systems have two parts, software and hardware. Though both of them are separate they are interlinked. The ICE makes it possible to run and check the software on the hardware it was meant to run. While doing so, the ICE also helps the user to identify the faulty codes.
Nowadays, the debugging circuit integrated into the CPU can be accessed by the JTAG or BDM provided on the CPU. This new option helps the programmer to conveniently debug an embedded system with ease.The Integrated Circuit Emulator gets its name as it does emulate the CPU. Though it has a real processor fitted, the programmer still finds the system under test to be in his full control, and he can identify faulty codes, debug as well as load directly. This real time trouble shooting on a live system gives ICE an edge in the sphere of accuracy and comfort in use.The CPU used for development is not necessarily related to the host systems.The ICEs gives the option of debugging by single stepping. The phrase single stepping means that the programmer can run and observe the lines of a program step by step to find and modify error.The ICEs also gives the option of source level debugging where the programmer can see the program as it was drafted and identify the errors.
JTAG stands for Joint Test Action Group and it is a standard to test integrated circuit (IC) connections. Suppose on a board, you have used integrated circuit and similar devices where each IC has hundreds of pins, it becomes very essential to examine connections and confirm the operation. For this purpose, you need a small tool called JTAG. Therefore, JTAG can be defined as a process to test connections on PCBs that are applied at the level of integrated circuit. JTAG is very useful for testing such connections and there are quite a few reasons for that. Using the customary in-circuit testers, it is quite tough to test the intricate circuits. These testers are unable to access BGA devices and small components and the physical space required by these devises also plays a limitation factor. On top of that, board testing has become quite expensive and all these factors ensure that JTAG is the best solution to triumph over the intricacies related with physical in-circuit testers.There is no need to use any physical probes for testing interconnects amid a board’s built-in circuits. This is definitely a great plus for using JTAG, as there is no need for any added personalized testing tool.
How JTAG works
If you have a JTAG enabled device with a boundary-scan cell for every pin, you can test the interconnects between integrated circuits easily. A boundary-scan cell is capable of reading and setting data of all the pins. With the device, you can connect the boundary-scan cells and start to transfer the data serially into the cells. Scan chain or scan path controls this process of serial shifting of data and this is the major functionality of JTAG interface.
JTAG interface
Generally, huge number of test vectors is required to initialize the entire devices. If you are using JTAG, there is no such need. The three major benefits of using JTAG devices are bigger diagnostic competence and higher test coverage, shorter time for testing, and minimum cost of equipments. This is not all, JTAG is also very useful in the electronics industry. JTAG has great usage in the filed of programming and debugging. Several FLASH memories, microcontrollers, FPGAs and comparable devices can be programmed by using the JTAG interface. Same interface can be used for the debugging purpose as well. Therefore, JTAG interface is a boon to the electronics industry. Even though plenty of variations abound with the JTAG header on the board, it is not a complex process. Any JTAG interface is compatible with the standard JTAG signals and boundary-scan software.
JTAG connectors for games
You can also use JTAG connector to play Xbox 360. Playing game is loved by almost everyone as it is one of the best pass-time activities and stress buster. You can choose from a diverse selection of games, but the problem could be high price factor. You can make use of JTAG connector and play full games without playing full money. The JTAG cable can establish connection with USB or any parallel port of your computer for excellent connectivity and access.
Below is the video introduce about JTAG boundary scan
This article is only the introduction of JTAG , if you want to study in deep about jtag , please visit the following urls…
- The Role of JTAG in system debug & test throughout the embedded system development lifecycle
- JTAG FAQ
- JTAG tutorial from Corelis
- JTAG tutorial in PDF format from Amontec
Thank you very much
Pyxis OS for Arduino.
It is open source OS for Arduino. The OS and other applications can be run from sdcard as it store the OS and application in “.bin” file (like the image file on computer or mobile phone).Pyxis also provide the FAT library
called “PFAT” for read or write EEPROM card (turn the EEPROM into a harddrive).
The demo project use two microcontrollers. One for manage the user interface part
(use arduino mega) and another one use mega2560 + dataflash for handle the whole display
(it’s on the touch screen shiled board).Visit Pyxis for more information about this interesting OS.
Below is video from youtube for the demo of Pyxis OS
Thank you,
Jitkasem Pintaya.
Reference site:
1. http://www.skewworks.com/
2. http://www.electoday.com/bbs/viewthread.php?tid=4233&extra=page%3D1
More on Arduino part one.
- Arduino-tone
It is the library for produce square-ware tones.It can use with ATmega8,ATmega168/328 and ATmega1280
microcontroller series.With this library,you don’t need to use DAC (Digital to Analog onverter) for building the
tones.This library use timer and PWM of microcontroller, so it will affect the usage of other PWM outputs.
- Dataflash
It is the library for make your Arduino be able to interface to the external memory chip.It’s suitable for
use in storing the voice file or use in datalogging application.The original code of this library is come
from Atmel butterfly.
- Arduino contest
Finished contest from Instructables website.This contest has a lot of interesting Arduino projects and
also contain the instruction to describe about how to make each project too ( but I don’t know that it give the
source code relate to each Arduino project or not).
- ArbotiX Robocontroller
It is control board for robots.It use AVR (ATMEGA644p) as main microcontroller and also contain the Xbee module in order to communicate with the robot by wireless radio signal.The designer of ArbotiX board also designed the library that used for interfacing with the motor of Bioloid System (this will help in controlling the motor easier).This board can be used with various Bioloid motor series (Bioloid motor is “digital servo” motor, it can be commanded via RS485 or even can communicate via Xbee too).
- Multi-touch Technology
This technology is very interesting.The person who inspire this technology is Jefferson Y. Han.He is researcher at NYU (New York University).To know more about him, please visit these links.
1. http://en.wikipedia.org/wiki/Jeff_Han
2. http://cs.nyu.edu/~jhan/
This is Multi-touch presentation video.
The theory that used in Multi-touch is Total internal reflection.
Multi-touch Do-It-Yourself projects.
1. http://www.maximumpc.com/article/features/maximum_pc_builds_a_multitouch_surface_computer
2. http://www.instructables.com/id/S1D8LVAF3ER7VNE/
Reference site :
1. Ayarafun
2. Electoday webboard
Bluetooth
Bluetooth is communication system of electronics device in short-range (about 5-6 metre) and without wire.It support Full duplex.Bluetooth was designed to be high speed communication. It can be used for sending the data between computer and mobile phone , mobile phone and smalltalk , etc…
Bluetooth use 2.4 Ghz radio frequency signal and the rate for sending the data is about 1 Mbps (one Mega-bit per second).This communication rate (1Mbps) make it suitable for sending digital sound signal with a little delay. Compare with wireless lan (WLAN), WLAN can send the signal within wider range than Bluetooth can but the advantage of Bluetooth over WLAN are “it is smaller,easy to install to the device and it consume less energy (about 0.1 watt)”.However Bluetooth is suitable for sending the streaming data signal more than other types of signal (such as sending the voice data signal from mobile phone to bluetooth headset).
Look at the video below for the pros and cons of Bluetooth.
Xbee is one of popular wireless module in the world. It support two-ways communication (one Xbee
module can send or receive the data to/from other modules).The different between Zigbee
and Xbee is Zigbee is name of industry standard while Xbee is name of Zigbee standard
module produced by Digi.Xbee can communicate via UART (TX,RX signal) and sending the signal (data) within the short range is very accurate.Xbee module have an internal IC that help
in encoding the data.The main advantage of this module is it consume low watt (low
electric power),small size and cheap.Although it is restricted to send data within short
distance, it can send data from one node to another node and this feature make it
appropriate for making wireless sensor network.
The below image is the picture of xbee module
Picture of Xbee module
Below is useful links for doing Xbee on Arduino
Programming Arduino Wirelessly
Arduino Xbee Interface Circuit (AXIC)
Thank you.
easyGUI
It is GUI tool for embedded system that support various kinds of microcontroller and display controllers.The recommend microcontroller for use with easyGUI library should has a performace more than 10 MIPS.easyGUI support Monochrome , Grayscale and color display with different color level (i.e. Grayscale with 4,16,32 and 256 gray level or RGB color with 8, 12, 16, or 24 bits/pixel).It also support all sorts of compilers (the compilers of its supported-microcontroller) and its library is in C language only.You can view more information at easyGUI Website.

Sample picture from EasyGUI website.
It is the software for building GUI (windows application) in various platforms (platforms of Target System) such as Linux,Windows,T-Engine,Solaris,MacOS X,uCLinux and others (visit here for support platform of WideStudio).It can create application using C/C++,Perl,Java,Python and Ruby.It also support OpenGL (Include OpenGL library,see its features here).WideStudio application builder (Its development environment) can be run on Windows,Linux,MacOS X,Solaris, etc.
WideStudio is open source and free (under MIT/X Consortium license).WideStudio Application Builder can be installed as Eclipse plugin too.You can view the example applications (windows/GUI) that was built by WideStudio by visiting here.
In my opinion I think WideStudio is suitable for building GUI application that will be run on Japanese Embedded Platform due to it support T-Engine and ITRON target system but not support other western embedded platforms.

WideStudio running on T-Engine Platform
MiniGUI
It is embedded graphics library designed for use in real-time embedded system based on linux such as eCos,uClinux and other embedded linux kernels.It is light-weight GUI system that can be used on low-performace embedded platform too (refer to the website,it can run on 30MHz system with 4 MB of RAM).MiniGUI is one of widely used embedded gui system (you can see it on various types of electronics product from China or other countries).It also has both free version and commercial version.Please visit miniGUI.org for the free version but if you want to pay for it, you can visit miniGUI.com for commercial version.
It is graphics library intended to use on rather high performance embedded system like Renesas SH7722 or others (see this page for 3rd party embedded hardware that support DirectFB).It’s high performance graphics library run on Linux platform only.DirectFB also provide Renesas SH7722 driver in order to use with this graphics library.

directFB
Microchip Graphics Design Resources
I don’t know much about graphics library from Microchip. I know it only used for Microchip PIC series, however you can view more information by visiting MICROCHIP website.
Today I only update some news relate to Embedded System. You can view the news by clicking the tab Embedded News above or clicking this link.
Nowadays Fat storage device has an important role for Embedded System.Many
electronics manufacturers also integrate the unit for read Fat file system with their
products such as digital camera , mobile phone , MP3/MP4 player , GPS receiver , etc…
There are many storage device on the market that use Fat file system such as harddisk,
SD card,MMC card,SDHC,Micro SD card,Mini SD card, etc. This article mention about
only SD card.
SD Card (Secure Digital Card)
It is storage equipment that use nand flash memory to store the data (non volatile
memory).SD Card was developed from MMC card.Its body is slightly thicker than MMC card.
It can have a capacity up to 4 GB while MMC card has a maximum capacity of 512 MB.The
speed of reading and writing of SD Card is faster than MMC card.Furthermore SD card can
be locked to disable any data-writing to the card by implement security system to the
card.SD Card also has high capacity version called “SDHC”.SDHC can have the capacity from
4 GB – 32GB.Mini SD or Micro SD card also has the same principle as SD card but its size
is smaller than normal SD card.

OK, now back to the story corresponding to this article topic “Arduino FAT”. For
anyone who want to develop FAT project and don’t want to spend too much money I
suggest you develop your project with Arduino because its development enviroment is very
cheap (the board and programmer is cheap and easy to find, the compiler is free).Below is
the resource on the internet that concern with FAT project for Arduino.I think they are
practicable up until now.
1.S65-Shield
It is SDFAT library for arduino to make vfat sd-card (library of SDFat is come from
elm-chan project).
2.Arduinonut
Another Far file system for Arduino that use u-fat file system.
3.Forums from arduino.cc that I found interesting.
3.1 SD card interface
3.2 SD card read/write with Arduino
4.MicroSD module for Arduino
4.1 wireless sensor networks
4.2 blushingboy
7.FatFs Module Application Note
I also have another article about FAT library for STM32, you can view it here.
Thank you,
Jitkasem Pintaya.
Reference site:
1. http://www.ayarafun.com/2009/04/howto-interface-arduino-with-vfat32/#more-252
2. http://www.electoday.com/cgi-bin/yabb2/YaBB.pl?num=1232963016
3. Picture from http://www.interfacebus.com/Secure_Digital_Card_Pinout.html
I continue writing this article from the last article.You can scroll down this page to see the article about RTOS for AVR part one.
1.Femto OS
It is the real RTOS for AVR.It had been ported to many series of AVR microcontroller
(44 AVR devices).The task can be specified to be preemptive or cooperative task.It has
lots of example code and its documents is very good (The document is integrated into the
source code as comment).
2.pico os
It is the RTOS that support large set of features and can be ported to various type
of microcontroller other than AVR.Currently it only support MegaAVR 32 (8 bit
microcontroller) but may be can config to support other AVR devices too.The source code
for AVR can use with WinAVR or AvrStudio 4.
3.Protothreads
Protothreads can use on AVR too.Please click here to read my last article about
Protothreads.
4.Contiki
Contiki is one of widely used RTOS.It is multi-tasking operating system that designed
for microcontroller with small memory.
It is suitable for implement wireless sensor networks because it provide IP
communication.Its processes use protothreads to provide threadlike programming style.
5.TinyOS
It is RTOS designed for wireless sensor network.This RTOS was written in the nesC
programming language.The task is non-preemptive and task is run depend upon FIFO order.
6.iRTOS
It support Atmel AVR 8 bit (also support Atmega128).It has preemptive and cooperative
scheduling mechanism.The disadvantage of this RTOS is that it is not well tested (may be
there are some bugs).The website said that this RTOS can be installed in 16 bit and 32
bit microcontroller too.
7. µC/OS-II
This is well-known RTOS used widely in the world, so I don’t talk about it.
You can find the information relate to µC/OS-II at its website by yourself.
8.csRTOS or 4AvrOS
This RTOS is cooperative schduler.
It support ATmega88/168/16 and other AVR series.It is single-stack RTOS that require
small memory area.This RTOS was written using WinAVR C compiler.4AvrOS is the new version
of csRTOS (Most features are remain the same).
9.XMK (eXtreme Minimal Kernel)
It is a preemptive and multithread kernal suitable for small microcontrollers (8 bit).However it can run on 16 or 32 bit microcontroller.This RTOS implemented the features such as mailboxes, memory pools, file descriptors, hardware device drivers, and TCP/IP networking.
And this is the end of the two series “RTOS for AVR” microcontroller.
Thank you so much,
Jitkasem Pintaya.
Reference site : Electoday
This article is concern with the rtos that can port to AVR microcontroller.I list only rtos that is open source
and free for donwload.You can look for them as below…
1.AvrX Real Time Kernel
It is lightweight and support important features of RTOs such as Message Queues, Semaphores , fully
preemption etc.It is cooperative kernel too.You can download the document of AvrX here or here.
2.CocoOS
CocoOS is also lightweight and it is cooperative kernel.It can use with ATmega8/16/32.It is a cooperative task scheduler and its structure is small and easy.You can download the documents of this RTOS here
or here.
3.FreeRTOS
This is a popular RTOS is this world.It can port to various kinds of microcontroller , so I don’t talk about
it.You can find the information at its website yourself.
4.YAVRTOS (Yet Another Atmel® AVR® Real-Time Operating System)
This RTOS is only suitable with ATmega32 (It was tested only with ATmega32).It implemented mailboxes,
semaphores and mutexes.The disadvantage of YAVRTOS is that it’s not support defining task prioriy and the mutex mechanism of this RTOS is weak.I think disabling interrupt every time when want to access a shared resource is not a good way to do and you should avoid doing that.
5.pC/OS
pC/OS is RTOS that was developed base on uC/OS 1.00 (Its kernal based on uC/OS 1.00).It can port to ATMega32, AVR32 and ATMega128.Its document is easy to read.
6.uSmartX
It is non-preemptive kernel.It has memory management function together with task and time control functions.uSmartX is very old (it exist since 2006).This RTOS is suitable for small-footprint embedded system because of it consume little memory of the system.
7.COMATOS
COMATOS is the RTOS for ATMEL microcontroller (COMATOS is abbreviated from “COrnell Miniature ATmel Operating System “).It is simple,lightweight (Use memory not exceed 2K of program memory) and also non-preemptive RTOS.The source code has boht Assembly version and C version (THE C version is written for AT90S8515 ).Its website has a tutorial for using this RTOS but in Assembly language.
8.Jennaron
It is the project of Task Dispatcher.It contain C source code for implement this project and it also have
a PDF document to describe the souce code too.
9.OPEX
It is the unique operating system for AVR.It was written in C for WinAVR (GCC) that can use optinally with Atman IDE.It contain the Scheduler for control each process (Cause process to run when desired) and inter-process communication like Semaphore.
The article “RTOS of AVR” is not end by this post.In the next post I will write about RTOS for AVR again as the episode two.
Want to know more about IPC (Inter-Process Communication , please visit wikipedia)
Reference site : http://www.electoday.com/bbs/viewthread.php?tid=1451&extra=&highlight=avr&page=1 (This topic started by wlasoi)
Thank you very much,
Admin.
RTOS is part of program (Or source code) that was written for manage the CPU
usability of microcontroller and it help to improve the efficiency of CPU in
managing the tasks or process.RTOS is somehow make the coding more complex ,hard to read
and hard to understand, so some people don’t like to use RTOS on their embedded
project but it has some advantages too.The general RTOS features are as
follow…
1.RTOS is a normal program so it must use RAM and program memory of your
microcontroller.
2.RTOS has an important role in time management of embedded system because
our simple program run sequentially command by command from the top to
bottom and then cyclic to the top again (it usually operate like this all the
time you run the program) but if I assume there are some tasks that aren’t
necessay to run often as the main loop run or there are some tasks that require
the certain period of time to run, so if these two conditions correspond to your
program requirement I suggest to use RTOS , it will help you so much (at
least it better than you write the code to handle these situation yourself).
RTOS is not so hard.If you understand its mechanism then it is a fun thing. I
think RTOS is not more difficult than we can learn.
3.The importance of RTOS is depend on the number of features your application
have to do.I will show you an example of temperature data logger that have
features like this…
- Need to store the measurement data into SD-Card.
- Show the measurement data on the color lcd screen.
- Can communicate with PC via USB while datalogger is working to send data to
the program that running on PC and plot the graph.
- It can specify the alarm temperature in real-time by using the touch screen
as the input device to input the temperature.
If you design above datalogger by using only general ISR (Interrupt
Service Routine), maybe you will got stuck and your code will look
cumbersome.The using of RTOS is suitable for handle this kind of datalogger
because RTOS can apply the feature of multitasking for separate the code into
3-4 task such as DAQ_task , UI_task , USB_task etc.Each task has a specific
responsibility and run asynchronously with other tasks.Every task communicate
with each other by using the message such as mailbox , message queue (They
are data structure normally declared as global variable and used for store an
information that each module in the system can obtain and use together).
The name below is open source and non-commercial RTOS that you can use and
modify them to make your embedded project more reliable and powerful.
1.FreeRTOS
2.µC/OS-II Kernel from Micrium
3.FreeOSEK
4.Tnkernel
5.eCos
6.CooCox CoOS
7.TinyOS
8.PICos18
9.AvrX
10.RTEMS
List above is only some examples of popular RTOS but there are hundred or
thousand RTOSes exist in the world.
For more information about RTOS please visit
1.http://www.embedded.com
2.http://www.dedicated-systems.com
3.http://www.eg3.com/report-rtos/index.htm
4.http://www.eg3.com
5.http://www.edaboard.com
Reference site : http://www.electoday.com/bbs/archiver/?tid-1644.html
Thank you,
Admin
FAT Library that normally used for developing small embedded system project
in nowadays are FATFs and EFSL.
The story for today is about FAT Library for ARM STM32 (Sorry for the person who want to use FAT Libray with AVR, I think articles relate to FAT Library with AVR is much more than STM32).
Let’s start with FATFs.FATFs support FAT32, Long File Name but you have to write Disk I/O mechanism by
yourself (Disk I/O is the part of Low level interface).There are two examples for FATFs that are ready to
use.
1.Project by Martin Thomas.This project is a complete project to access FAT memory card with STM32 via SPI-
interface. And you can also download the code here.
2.FAT project from Domen Puncer.Domen had posted his answer to the STM32 Forum (Topic about SDcard code).You can view the original source forum that he posted his answer here.And you can also download the source code here.
Domen described that his code was separated into three parts as follow
- SPI Interface
- SD card code
- FATFs interface (It is the Disk I/O part for FATFs)
I’ve ever looked at his code and I think that his code is easy to understand than others.
For the person who use EFSL I have an example project that use EFSL from Newnesr.Newnesr also posted his project to the STM32 Forum too, and you can look for the original forum that he posted his article here.The source code for his post can download here.
You can arbitrarily choose the above two FAT Libraries.But I have one thing to tell you that EFSL is not
continue to update anymore and it is not support SDHC while FATFs is continuously developed for
improve its features and it has a test result with SDHC too. FATFs have a lite version that is sub-set of FATFs
call “Petit FAT”.You can use Petit FAT as a read only FAT File System only. For more information about it , visit here.
I got this article from http://www.electoday.com/bbs/viewthread.php?tid=2094
Thank you,
Written by
Admin…
For the person who love Arduido, web list below is the resource related to Arduido I found they are very useful.
Arduino Interfacing SD / MMC Card with SPI ( Arduino FAT library )
1. Arduino Stand Alone
2.Adding a MicroSD flash card module to a SquidBee
3. SDMMC learning from arduino.cc
4. Wavehc (Arduino Library for the Adafruit Wave Shield)
5. SD card read/write with Arduino Forum
6. Download SD library at this link
7. SDcard.zip on MediaFire
Arduino development software
1. Arduino 0017
xbee for arduino
1.Xbee Arduino from Google Code
GPS Arduino
1. GPS shield download stuff
2. TinyGPS A Compact Arduino GPS/NMEA Parser
Arduino Web
1. Webduino (Simple and extensible web server for Arduino and Ethernet Shield)
2. Arduino.cc
Others
1. Arduino Command in PDF
2. Squidbee board
3. Arduino on the clothes
4. Top 40 Arduino Projects on the web
5. Infrared receiver module
6. Setting up an Arduino on a breadboard
7. Burning the Bootloader without external AVR-Writer
8. Arduino board from Sparkfun
9. Using Arduino with Wiznet I
10. Using Arduino with Wiznet II
11. Funnel (The Arduino competitor)
12. Arduino forum
13. Arduino Bootloader
14.Download the ebook for Arduino experimenter (Arduino for Beginner) Source : Adafruit
Reference site : Electoday.com
Thank you,
Jitkasem Pintaya.
Arduino is the tool used together with computer to cause the computer can receive
external signal and also make computer can send signal to control the external device
more effective than using computer alone.
The Arduino board is designed from single-chip microcontroller (Normally use AVR 8-bit
microcontrooler).It also have a software used for writing the program or command to
control the board.
Arduino can be adapted to make an intelligent tools such as the tool that can receive the
signal from switch or sensor,tool for control the lamp or motor,tool for communicate with
wireless device etc.Arduino project can work alone or work joinly with PC (work by
interaction with the program that run on PC).The board can be assembled by yourself or
buy the ready-to-use development board from vendor.It is the open hardware so everyone
are able to clone it but must use other label name.The purpose of Arduino project is to
make the low cost and easy-to-use tools for hobbyists who want to develop their simple embedded
project and don’t want to use the expensive microcontroller with complicated development
environment.
Why Arduino??
In market of microncontroller, their are many choice such as Parallax Basic
Stamp,Funnel,Pidgets,MIT’s Handyboard and from other vendors that have characteristics
similar to Arduino (That is making the board easy for develop project and underline on
programming for control the microcontroller).But Arduino has an obvious different points
from the others as you can see below…
1. Board is not expensive when compare with other boards.The cheapest Arduino board can
be obtained by making it ourselve.If you want to buy it,I think ready-to-use Arduino
board is not over $30.
2.The software used for develop Arduino can work on many platforms (Windows,Macintosh OSX
and Linux).It is easy to use for beginner and have fully capability with respect to the
professional developer’s requirement.
3.Arduino software was published as an open source.You can modify the software to
increase its capability via C++ library.If you want to deeply study its software, you can
go across to use AVR C (AVR C is prototype of Arduino) and you can add AVR-C code
directly if you want.
4.Arduino is open circuit (Open Hardware).It use the microcontroller from Atmel (ATMEGA8
and ATMEGA168).You can extend the hardware according to your demand.The circuit of Arduino board was published under the Creative Commons License so you can study about its machanism for free.
Reference site : 1. www.logicthai.net
2. http://store.fungizmos.com
3. www.10logic.com


Thank you,
Written by
Jitkasem Pintaya.
Protothreads was designed to use and work in the system that have limitation
in memory such as Embedded System or Sensor Node.It exclude the Stack
(Stack is used for store the working status of each thread) and it also support
the code that working in linear style on system that operation is base on event
(Event-driver).Otherwise it can work in cooperate with RTOS or work stand-alone
without RTOS.
Protothreads is the thread that cut out the Stack (Stackless), so it is very
small but it remain the top context of working in the system.The responsibility
of Protothreads is managing the status of complicated system or doing Multi-threading
because Protothreads have the instruction set for handling the thread.
The qualification of Protothreads are as follow…
1.Protothreads was written in pure C and no Assembly.
2.Can be used with OS or used without OS.
3.There is no error in manipulation part,use no error-prone functions.
4.Use very small RAM size.
5.Support waiting or blocking the execution part without doing Multi-threading or
Stack-switching
For more information about Protothreads please visit
- Wikipedia
- Protothreads website
- Protothreads document in PDF
- Download from Sourceforge
Thank you,
Jitkasem Pintaya
TNKernal is the RTOS (real time operating system)
that was developed by Yuri Tiomkin (Russian).
The distinctive point of this RTOS is its APIs
that similar to µITRON 4.0 (Japanese RTOS developed
by Prof.Ken Sagamura).TNKernal can be ported to various
kind of micro controller such as Microchip PIC24/dsPIC,
ARM Cortex-M3,ARM LPC21xx/22xx,Freescale Coldfire,etc.
It also compatible with many Toolchanins from the free one
(Such as GNU Toolchanins) unto the expensive commercial
Toolchains.The current version of TNKernal is 2.5 and you
can download it at here or visit its website here.
TNKernal is open source and it is FREE!!!.
I think this RTOS was suitable for the small series
micro controller especially ARM and PIC.So if you’re looking
for the small RTOS that flexible for every small embedded
task and has complete basis mechanism of ordinarily RTOS,
TNKernal is your choice.
Salvo RTOS is RTOS suitable for low performance and low cost
embedded system because it requires little
program and data memory, without task stacks.
It was written in C.It support various kind of micro controller
(look for the supported micro controller here).Salvo is not
free but it has a demo version to download.It supported
many kinds of compilers (depend on the platform).It’s
not only can use on embedded platform but also x86 platform
(Using MS Visual C++ as compiler).In my opinion I think
Salvo is easy to use.It hide the complicate structure of
RTOS mechanism and provide you the easy to understand interface
that you can use for build your project (So you can emphasis on
your project without worry about the RTOS structure).
The current version of Salvo RTOS is 4 and you can find more information about it here.