AddThis Social Bookmark Button

allankliu's blog

Timer and Timers

The question is how to find extra timers in a complex application while a standard microcontroller usually has only two or three timers?

Touch Screen

Touch Screen

The touch screen technology is widely used in PDA, smart phone, PMP, ATM, information kiosk and many other equipments in industrial, medical and commercial environment. Actually the technology enables these devices are not new, which was invented by Dr. Samuel C. Hurst in 1971. But it becomes more hotter after the release of popular iPhone and iPod. With new patents filed for the touch screen technology, Apple brings a new wave to this mature segment and more companies are involved in this revolution with improved interactive UI, silicons, assembly modules and software components.

Conventional Touch Screen

The implementation of a touch screen includes resistive, capacitive, infrared, surface acoustic wave, optical imaging, acoustic pulse, and other technologies. The kit usually is made up of panel module, and a controller, which measures the touch events by frequency, voltage or current, encodes and transmits to the host controller and drivers in host controller. Different touch screen technologies are suitable for different environments.

Software Development Automation with Scripting Languages

The Scripting languages are deployed in many operation systems, either in UNIX/Linux or Windows. These languages are developed for general purpose process automation and web programming. But you can consider using them for the software development process in many ways. Among these languages, awk and Perl are suitable for automate and speed up software development for embedded systems. Because many embedded systems only have cross tool chain, without powerful IDE supports for process automation. Here I will show you why we need them and how these tools help us.

Makefile

When I first visited one of our famous TV manufacturers in China, I had no idea about the software capability of their software team. When I demonstrated my company's TV software for their evaluation, the software leader was surprised to see the modular software programming in many individual files. The software manager even commented, "Your software structure is very stupid, why do you put all of these functions into smaller files, instead of one single file? It is very head to find the variables in different files and requires longer compiling time." I was almost choked by his words. But I could not argue with our customer face to face, it is very harmful to our business. So I let him to find the real answer, which way is stupid anyway?

Integrating MMC/SDIO Support in Design

This blog describes my idea about integrating MMC/SDIO in embedded systems, including software in host controller and card controller running in SPI mode. Although I do not have full source code to demonstrate, theoretically it is realizable.

Standard Mobile Phone Charger with USB Port

Standard ChargerThe Ministry Information Industry (MII) of China enforced all mobile phone manufacturers to comply with new issued standard for phone charger interface, which is called YD/T 1591-2006 mobile phone charger and interface requirement and testing method. Before launching this standard, every mobile phone manufacturer has own power adapter interface with different electrical and physical specifications. Due to business and technical reasons, some vendors even offer different power adapters for same brand! This standard unifies the AC/DC power adapter interface with standard USB type A output on 5V DC, therefore new mobile phones from different vendors can share common adapters or be charged with standard PC USB port. The Mobile users can just carry one USB cable and phones on the go, since the USB port is available anywhere. It is anticipated that this approach can reduce power adapters in retail package, and reduce overall BOM cost and the pollution with the abandoned mobile phones.

Virtual Machines Running on Microcontrollers

A lot of users have the experience of virtual machines. These VMs are quite useful for developers who have to working on multiple OS platforms. There are many VMs running on embedded microcontrollers, too. These embedded VMs are dedicated for specific purpose. A lot of embedded applications leverage them to reduce system complexity, memory usage, and depoly the custom design. It sounds incorrect, since running VM requires extra resource of embedded microcontroller, and demands extra programming effort, either. However embedded VM indeed can help developers to achieve those goals.

Solid State Lighting

Incandescent light bulbIncandescent Light Bulb
Thomas Alva Edison was one of the greatest inventors. The light bulb was the brightest one among his inventions. Another great invention vacuum tube was also inspired from the light bulb. The goal was only to provide a method of supplying the world with inexpensive, widely available commercial lighting. It was a great achievement, but some flaws were revealed in coming centuries.

Incandescent light bulb has maintained the lowest cost than any other lighting technology. But part of the electrical energy has wasted in the form of heat, rather than light. Some applications such as incubators and heaters are utilizing this feature of heating radiation, however incandescent light bulbs are being replaced in many occasions by CFL (compact fluorescent lights) and HID (high-intensity discharge lamps) , which give more visible light for the same amount of electrical energy input. These alternative lighting technologies are called as cold light source. Some jurisdictions are attempting to ban the use of incandescent light bulbs in favor of more energy-efficient lighting.

Why did the TV set show up the retrace lines randomly ?

Retrace LinesWhen I developed a TV project, something strange really bothered me for weeks. The CRT (Cathode Ray Tube) TV project was based upon a Philips 8051 TV microcontroller with on-chip OSD (On Screen Display) and Tuning features. The software was running on my emulator without any problems. So our customer decided to launch pilot production. The QA team found something strange in the internal audit procedure and notified me urgently. Among 12 TV sets, about 5 TV sets randomly shown the retrace scanning lines after AC switching on. The occurrence was unpredictable.


Code Patching for OTP microcontroller

5 years ago, one of my colleagues developed a project upon 8051 platform. Unfortunately, there was a fatal bug in the firmware which would lead to a business fiasco and damage company's goodwill. Our boss asked us if there was any means to save the business and escape from the crisis. I knew that the microcontroller' intermal memory was actually using OTP (One Time Programming) EPROM technology, so I promised to study the code and try to hack it.

After a short survey, I found we can save the chips even these parts had already been programmed .

So I told boss that the code could be patched. The distributors called back the microcontrollers and reprogrammed with the patched code. Everybody was grateful. However, nobody even mentioned me or expressed their appreciation. It seems that code was self-healing. But after that, many project managers who have bug issues will ask my help. Unfortunately not all the microcontrollers can saved if

Bulb must die, and CFL too?

t.b.f.

Stay tuned. A comprehensive resource overview is on its way.

Why AVR's EEPROM will be erased randomly?

Some AVR developers reported that the AVR's EEPROM will be erased randomly. And these poor people are driven crazy because they have no clue about the real cause for it. Is AVR micro's embedded EEPROM not stable at all? Well, there are not perfect products in the world. But I would rather say the real cause might be yourself.
Do you have any idea what AVR is doing during reset?