Dot-Display Matrix Module The dot-display matrix module is aimed to provide an interface to control the function of a step motor. Thus, it is necessary to understand how dot-displays are directed in order to provide the correct stimulus. Definitions used in this webpage have been extracted from Wikipedia. Please refer to this website for further information. What is a Dot-Display Matrix? Dot-Display matrix are devices designed to represent "human" readable information from different purposes such as clocks, indicators or messages. They are build by arranging similar sources of light (for example LED) in a matrix. Several types of constructions can be found, although the most frequent is a rectangular distribution. The device provides the capability to switch on/off each element so different light shapes can be constructed: Numbers, characters or other forms. To do so, it is necessary to translate the command produced by any system in orders understandable by the dot-matrix controller. How does it work? LED dot-display matrix are constructed taking advantages of diode principle of function, allowing light emission when polarized or remaining dark otherwise. LEDs in the same row maintain the negative terminal (cathode) while LEDs in the same column are interconnected through the positive terminal (anode). The reverse distribution is also to be found. Therefore, LEDs which are feed/activated through the anode and deactivated through the cathode are induced to emit light, in other case the LED remains dark. So, it is possible to activate LEDs in the display matrix by encoding row/column words at the terminals based on their interconnection. If a "complex" configuration is desired to be displayed in the dot-display matrix, it is necessary to feed the encoding words in a row/column sequence. The sequence of encoding words will light up LEDs on section without disturbing the remainder LEDs. The sequence's realization is required to be "fast" enough to trick the human eye and produce the effect of being all LEDs light up. Accordingly to studies, the human eye retains an image for a tenth of a second, so it would be necessary to complete the sequence at a rate interval or approximately 40 Hz. How are they controlled? Dot-display matrix are quite straight forward to control one it is known their structure. The main issue arises once it is necessary to control display with a considerable size. Bear in mind that a new row/line means a new output bit (a 5x7 display has 12 pins to control). Thus, it is possible to find dot-display matrix with wrapper IC circuits that ease the number of pins by adding a new level of complexity, for example bit addressing. In this section is explained a simple approach to control a display matrix without the wrapper IC, though some advise on other type of modules will be given. Plain dot-display matrix require the combination of row/column encoding with column/row addressing. It has already mentioned that as all sources of light share connection with others, it is not possible to address the display in a dot by dot basis. Thus, the normal operation requires to feed an address and an encoding word for each row/column in the display. Note that addressing is achieved by only activating one bit at a time (one hot) rather than using a complete binary number. Even so, modules such as decoders can be used to reduce the number of bits in the addressing section (#bit address <= 2^N, being N bits for encoder). Regardless of the implementation used for addressing, the dot-display matrix is feed with the sequence of encoding words to light up the dots. There is no restriction in the sequence, but obviously a straight forward/backward sequence is easier to manage. An example of a displayed character and the sequence to achieve it is shown in figure TODO. Figure TODO: Character display and coding Extrictly speaking, only one column is activated at a time, but it is taken advantage from the "flaws" in the human vision to deceive it and produce a stable image. Normally, a complete sequence should be achieved within a tenth of a second rate. A higher rate is recommended to lessen flickering or capability to introduce further actions (if required) Dot-Matrix Display Module Design Once it has been explained how dot-matrix display work and how they are controlled, there is few things left to describe a possible design for a control module. A FSM construction proves well enough to handle addressing and word coding towards the dot-matrix display. Even so, it is detailed in the following design a few features which are interesting to include on the module capabilities. Multiple states will be introduced for actions of interest, though fewer states (even only one) can be used increasing the actions/complexity within each state(s). Let's begin with the basics by defining the states that represent each one of the addressed columns. It is defined for each one of the columns to have its own state when forcing the coded word for that column to ease design. The decision of taking into account columns for addressing will be made clear later in the design. Thus, if it is taken the dot-matrix display of 5x7 distribution, there are five states dedicated to column configuration feeding. Each of this states activates at the dot-matrix display required column and coding word. An additional state, for example "idle", can be used to revise configuration on dot-matrix display, feed data for the new figure and indicate when a new sequence is going to take place. So far, it would only be necessary to update registers holding coded words for each column so the figure is modified on the next sequence. Changing the configuration within a single clock would require a wide parallel communication channel of 5x7 (35) bits. A construction which is not advisable in terms of resources. An alternative is to feed the new figure one column at a time taking advantage of the state sequence. This way, the register containing the coded word is updated prior to be displayed as shown in figure TODO. A load input port would provide the command to load the new figure configuration into the module taking advantage of the already built in sequence. This approach would require to configure an "update" sequence activated while idle state, held active until the last column is displayed and feed the new sequence during the update sequence. It also provides the chance to build a module which can be cascaded so the configuration is passed from one module to the next. Bear in mind that up to this point, cascaded configuration would jump complete figures from one to the next one. More subtle configuration shifting would require a different approach to "update" sequence. This alternative approach would require the configuration registers to be shift-cascaded so when activated a load signal, the coded word would pass from one register to the next in sequence. The first register would acquire the configuration word held on the input port, while the last register would held its configured word towards an output port. The shifting rate can, then, be controlled by fixing the intervals at which a new encoded word is inserted in the sequence. Rotating messages on displays would only require closing the loop between modules feeding the output of the last module to the first. Expenses on this low resource approach are paid by losing flexibility to change a single coded word in a module as the whole character needs to be feed while disabling the transfer towards other modules. Thus, a new control port is required to activate/disable the module configuration input/output ports. Figure TODO is used to summarized all points discussed so far. TODO figure Accordingly to the scheme presented, the highest rate at which the complete figure corresponds to #Columns+1 times the clock frequency of the system. This value should be taken into consideration when deciding at which rate the figure should scroll along the matrix or other displays. Either way, it is from this point on, a design problem to select which coded words and sequence would achieve the proper figure on display. Dot-Matrix Display Module Add-ons Further development in this section is targeting other features available in display in the market. In this case, it has been selected as interesting development features, the one listed here: Underlining Negative Blinking Other notes It has not been detailed how figures should be formed or stored within the system. It is obvious, though, that it is required a system to store and feed properly the encoded words to the dot-display matrix module. Normally, market products are build with a RAM memory module to store desired configuration and a ROM memory to store encoded figures. The proper figure is sent towards the module based on the address (pointer) stored in the RAM memory. A similar scheme could be used for this implementation, if it is known a priori which sort of figures are to be displayed and encode them within read only memory. Other possible implementations could use market dot-matrix displays with wrapped controllers. These implementations are more likely to focus on a command scheme to configure each one of the figure spaces available in the display. Thus, the present explanation is only useful for comprehension purposes and should not me used to drive those modules. Please refer to the manufacturer module handbook to determine which are preferable commands and how should they be sent towards the display controller. Bear in mind that this modules required a start up sequence that should be respected to ensure correct function. |