曦's profileSunignol's CalmmPhotosBlogLists Tools Help
Photo 1 of 78

Sunignol's Calmm

August 30

Embedded System Keyboard design

When designing the main board, I had not yet decided if to use a slave processor for a matrix-scanning-keyboard with SPI connection to the master embedded MCU, or to use the cascaded priority encoders for botton arrays with a parallel GPIO connection, so I prepared a port for them both. As shown in Graph 1, the nWA and nWB signals were prepared for a rotary encoder.

G4.0

Graph 1 : The keyboard port

----------------------------------------------------------------------------------------------------------------------------

As soon as I had the OS programming done, I made a very small board which can generate an external interrupt pulse by a botton and a simulated output of a 256-8 priority encoder from DIP Switches. This helped me practicing revising the original WinCE keyboard driver and enabled another application programmer testing her codes before the real keyboard was available.

G4.1

Graph 2 : The small keyboard PCB

----------------------------------------------------------------------------------------------------------------------------

G4.2

Graph 3 : Can you believe this little thing can input characters?

----------------------------------------------------------------------------------------------------------------------------

G4.3

Graph 4 : I bet this is the smallest keyboard on earth

----------------------------------------------------------------------------------------------------------------------------

This is the real keyboard that will be used in the data generator.

G4.4

Graph 5 :  The full functional keyboard

----------------------------------------------------------------------------------------------------------------------------

Don't get confused for its weird shape, you'll see how it will be installed together with the LCD driving board on the front panel.

G4.5

Graph 6 : Putting together with the LCD board

----------------------------------------------------------------------------------------------------------------------------

This real keyboard is based on an ATMEL 51 chip and use the SPI interface to communicate with master MCU. I designed the circuit and someone else finished the PCB. I'm now writing the assembly codes to make it work. It's also my job to revise the WinCE driver.

August 27

Embedded System Main Board Design

The main board design was more complicated and less fault-tolerable, as the bootloader and OS needed an effective hardware environment to be programmed in. I revised the schematic of the evaluate board, omitting unused functions and made necessary changes.

-------------------------------------------------------------------------------------------------------------------------------

3.1

Graph 1 : One page of the schematics

-------------------------------------------------------------------------------------------------------------------------------

It was really time-consuming in drawing decals, especially for irregular ones, like an SD-Card port. It was a good idea to print them on paper to check the real size.

-------------------------------------------------------------------------------------------------------------------------------

3.1.1

Graph 2 : SD Card Decal

-------------------------------------------------------------------------------------------------------------------------------

As for the FBGA-272 packaged MCU with pretty small pin-to-pin distance, and the high-speed signal flows, I decided to use a 6-layer design. Same again, I had to go back changing schematic from time to time. I did consider about test-points, although still conservative in number.

-------------------------------------------------------------------------------------------------------------------------------

3.2

Graph 3 : The FBGA 272 package

-------------------------------------------------------------------------------------------------------------------------------

3.2.1

Graph 4 : Routing under way

-------------------------------------------------------------------------------------------------------------------------------

3.3

Graph 5 : Main Board PCB

-------------------------------------------------------------------------------------------------------------------------------

The board would work in an expectable way only after the programming-in of initialization code. Thus it was smart to mount components for smallest requirements at first.

-------------------------------------------------------------------------------------------------------------------------------

3.4

Graph 6 : I myself soldered all components but the FBGA one

-------------------------------------------------------------------------------------------------------------------------------

I suffered failure in programming from the JTAG port, as announced the error on SDRAM R/W check. I noticed that the mismatch always happened on 1 or 2 of the total lower 16 bits, so I re-soldered every pin of this chip but it did not help. Then I added the number of decoupling capicators from the original 4 to maximum 7 (as positions prepared on PCB) and had this problem fixed. I was long been told the importance of such capacitors but this was the first time I felt it myself.

Another problem was that I mistook the order of RS-232 pins, this handicapped the connection to a PC UART. The solving of this is simple, that I made a cable myself by re-ordering the wires.

-------------------------------------------------------------------------------------------------------------------------------

3.5

Graph 7 : Watch the UART Cable

-------------------------------------------------------------------------------------------------------------------------------

After the programming, the PCB worked well as I hoped.

August 22

LCD Module Adjustment

The data generator project asks for a LCD screen short but wide to satisfy the case size.

I initially choosed the SUMSANG LTV350QV-F04 LCD, a 3.5 inch product with resolution 320x240. It was not applied eventually as the requirement on front panel size changed, but it helped me greatly in understanding the LCD principal and revising related WinCE driver.

G2.1

Grahp 1:  The seller provided the driving board for LTV350QV-F04, thus it took me hours making this cable

----------------------------------------------------------------------------------------

G2.2

Graph 2: even with correct signal connection, the driver affected the display

----------------------------------------------------------------------------------------

g2.3

Graph 3: expected display with revised driver, the crosstalk was because of the cable

----------------------------------------------------------------------------------------

 

Then I choosed another LCD ,the SHARP LQ043T3DX02, a 4.3 inch widescreen product providing a 480x272 resolution. This one is used on SONY PSP, thus I bought it from a TV game house.

G2.4

Graph 4: the outlook of SHARP LQ043T3DX02

----------------------------------------------------------------------------------------

This LCD needed a logic voltage transfer from CMOS 3.3V(from MCU) to CMOS 2.5V(into LCD), an 5V analog power, the control of power-on sequence , the backlight driving current, and the connection to evaluate board. These were what a driving board provided.

It was hard to buy all components needed in many areas in China, with the long several-day delivery. Faciliated by detailed datasheets, I felt easy in designing the schematic. However, when laying out the PCB, I had to revise the schematic serveral times for better and easier routing.

G2.5

Graph 5: I used Orcad to design the schematic

----------------------------------------------------------------------------------------

g2.6

Graph 6: PADS Router greatly faciliated the PCB laying-out and routing

----------------------------------------------------------------------------------------

g2.7

Graph 7: This is the driving board PCB

----------------------------------------------------------------------------------------

After the necessary checking of powers on PCB with multimeter, it was relatively safer for soldering components. I used the digital oscilloscope to test signals on the pads of LCD FPC connector and did found failures on one 74LVCC3245A chip, pitiful a logic analyser was not available in my lab for more direct timing graph.

G2.8

Graph 8: PCB with all components, the wires were not because of failure in design but unavailability of suitable connector

----------------------------------------------------------------------------------------

G2.9

Graph 9: the dot clock waveform

----------------------------------------------------------------------------------------

G2.10

Graph 10: Hsync signal

----------------------------------------------------------------------------------------

g2.11

Graph 11: one signal on video data bus

----------------------------------------------------------------------------------------

Because of specific requirements of LCD power-on process, the LCD did not display at this step, so it was really important to know the usefulness of design by the oscilloscope.

I then revised the WinCE driver for LQ043T3DX02, referring the datasheets. Thus the MCU can give out the correct power-on sequence and signal timing for an expected display.

g2.12

Graph 12: LCD connected to evaluate board

----------------------------------------------------------------------------------------

g2.13

Graph 13: WinCE desktop

August 20

A brief introduction of my current project

My current project is to design a data generator, by working together with several teammates. The data editing and parameter setting are implemented by the human interface based on ARM 9 series embedded MCU (SAMSUNG S3C2410X). My task is to prepare this hardware system for another application programmer. In detail, my jobs includes the designing and adjusting of:

(1) LCD module driving board suitable for the data generator front panel;
(2) my main board with reduced functions from the evaluate board;
(3) a keyboard containing 29 keys and a rotary encoder suitable for front panel.

This embedded system provides accesses of data editing and parameter setting to users, but it does not generate data ouput. It will be connected to other boards, with functions including clock generating, data generating, signal transmitting and output logic manipulating.