Saturday, February 15, 2014

LCD: the multiplexing technique





Abstract
The multiplexing technique for LCD aims at reducing the number of pins that are necessary for driving segments of the display. This results in a simplified LCD design.


The principle

The basic idea is to group segments connections backplanes or segment commons. A group is affected to a unique backplane. Therefore, to address a given segment it is enough to ‘access’ to the given group and then specify which element of the group is desired.

The example
Consider a seven segments LCD (with decimal dot) and assume that it has 4 backplanes, named com1, com2, com3, com4. Then, the segments of a given digit can be grouped by 2 as follows: ah (com1), bg (com2), fe (com3), cd (com4). The following figure illustrates the wiring of the segments of a multiple digits display.

Wiring of the segments in the backplanes for a multiplexed LCD.
Moreover, the segments on the front conductive plane are grouped by 4: abfc and hged as pictured in the following figure.
Wiring of the frontplane in a multiplexed LCD.

What we gain
The attentive reader should already have remarked that these groups are not chosen randomly. Indeed, groups in the front plane are chosen so elements belonging to a group belongs to distinct backplanes. In this way, specifying a group and a backplane we uniquely address a segment. Moreover, remark that backplanes are common to all digits in the display. In this way if N is the number of digits in the display, one need only 2N+4 pins instead of 8N+1 as in static driving technique (to be seen in a next post).


What we loose

This great simplification in display design has not only advantages. Indeed, recall that each LCD must be driven by an alternated current. Multiplexing the backplanes makes more complex the AC driving section of the module. This will be explained in a next post.



What's next
- LCD: multiplexing and bias

Enjoy!

Saturday, February 1, 2014

avrdude: stk500(): programmer is not responding




Oh my god!

Is my beloved Arduino gone?

That was the question I was asking me when I saw those fatal words on the Arduino IDE. Indeed, I was trying to use some servos and I was afraid that there some current overload have occurred on some pins. I immediately unwired all the motors and started thinking.

The solution
After some trials I realized! I just connected the Arduino to the left usb port instead of the usual one on the right side of my Mac. These two are mapped to different ports of course and the IDE was still looking for the right one. Indeed, the IDE memorizes the last used port. I changed the name of the port in the menu "Tools" and that solved the problem! This time I was lucky...

Things to try
If you have the same error, you can try the following (increasing difficulty):

  1. verify the usb cable (one never knows ;-) )
  2. change the port in the menu "Tools"
  3. take off the ATMEL chip and verify if the chip is ok
  4. if the chip is ok, try to load the bootloader again

I'm afraid that if none of the above steps works you should replace your Arduino!

Hope it helps!