CAHM
CAHM
CAHM
What is a Motherboard?
A motherboard is one of the most essential parts of a computer system. It holds
together many of the crucial components of a computer, including the central
processing unit (CPU), memory and connectors for input and output devices. The
base of a motherboard consists of a very firm sheet of non-conductive material,
typically some sort of rigid plastic. Thin layers of copper or aluminium foil,
referred to as traces, are printed onto this sheet. These traces are very narrow
and form the circuits between the various components. In addition to circuits, a
motherboard contains a number of sockets and slots to connect the other
components.
Parts of a Motherboard
If you were to open up your computer and take out the motherboard, you would probably
get pretty confused about all the different parts. Depending on the make and model of your
computer, it might look something like this.
To understand how computers work, you
don't need to know every single part of the
motherboard. However, it is good to know
some of the more important parts and how
the motherboard connects the various parts of
a computer system together. Here are some of
the typical parts:
2. Hardware Requirements
The USB keyboard application requires the following hardware:
1. AVR USB evaluation board (STK525, AT90USBKey, STK526...or your own board)
2. AVR USB microcontroller
3. USB cable (Standard A to Mini B)
4. PC running on Windows® (98SE, ME, 2000, XP, Vista), Linux® or MAC® OS with USB 1.1 or
2.0 host.
Please refer to FLIP(1) help content to see how to install the USB driver and program the
device through the USB interface.
Note: 1. Flip is a software provided by atmel to allow the user to program the AVR USB
devices through the USB interface (No external hardware required) thanks to the factory DFU
bootloader.
4. Quick start
Once your device is programmed with usb_keyboard.a90 file, you can start the keyboard
demonstration. Check that your device is enumerated as keyboard (see Figure 4-1), then you
can use the kit to send characters to the PC.
The figure below shows the STK525 used by the demo (you may use another kit:
AT90USBKey, STK526, depending on the AVR USB product you are working with):
5. Application overview
The USB Keyboard application is a simple data exchange between the PC and the keyboard.
The PC asks the keyboard if there is new data available each P time (polling interval time),
the keyboard will send the data if it is available, otherwise, it will send a NAK (No
Acknowledge) to tell the PC that there is no data available.
The data exchanges between the PC and the keyboard are called reports. The report which
contains the keys pressed is the report IN (Keyboard to PC). The report which contains the
LEDs status (NUM LOCK, CAPS LOCK, SCROLL LOCK...) is the report OUT (PC to Keyboard). The
figure below shows the structure of these reports:
6. Firmware
As explained in the USB Software Library for AT90USBxxx Microcontrollers (Doc
7675), all USB firmware packages are based on the same architecture (please refer to
this document for more details).
6.1 keyboard_task.c
This file contains the functions to initialize the hardware which will be used as a keyboard,
collect the report data and put it in the endpoint FIFO to be ready to be sent to the PC.
6.1.1 keyboard_task_init
This function performs the initialization of the keyboard parameters and
hardware resources (joystick...).
6.1.2 kbd_test_hit
This function checks if there is a key pressed and sets the key_hit variable to
true.
6.1.3 keyboard_task
This function checks if any key is pressed (key_hit == true). If it is the case, the
report IN is filled out with the related values and loaded in the USB endpoint FIFO
to be transmited to the host.
6.2 stk_52x.c
This file contains all the routines to manage the STK52x board resources (Joystick,
potentiometer, Temperature sensor, LEDs...).The user should not modify this file
when using the STK52x board. Otherwise he has to build his own hadware
management file.
6.3 How to manage the CAPS, NUMLOCK... LEDs
The keyboard LEDs (CAPS, NUMLOCK...) are managed by the host when the
corresponding key is pressed. When receiving the keycode of CAPS or NUMLOCK...
the host sends a Set_Report request (Out Report) to turn on/off the related LED of
the keyboard. This request is send through the endpoint 0 (control transfer) and has
to be managed as a Set_Configuration request, as shown below:
First the host will send the set_report as showing below:
This request is specific to the HID class, this is why it is not managed by the
usb_standard_request.c file but with the usb_specific_request.c. In this file the
request is decoded following the value of the bmRequest and the bRequest using the
usb_user_read_request() function. The report type (0x02) corresponds to an Out
Report. To handle this request the usb_user_read_request() will call the
hid_set_report() function. This function will acknowledge the setup request and than
allow the user to get the one byte data (you can check the size using the wLength
parameter) to know which LED has to be turned on/off (please refer to the HID
specification for further information regarding the LEDs usage values).
6.4 How to modify my device from non-bootable to bootable
device
Please note that HID device may be bootable or non-bootable. By default,
the HID demo provided by Atmel are non-bootable device. If your application need
to be bootable, you have to modify the sub-class parameter (usb_descriptors.h):
7. PC Software
The USB keyboard application doesn’t require any PC software. Limitations The
demonstration does not manage the OUT report. You have to add the required code
to handle this feature (refer to the section 6.3 for further details)
8. Related Documents
• AVR USB Datasheet (the related to the part number you are using)
• USB Software Library for AT90USBxxx Microcontrollers (Doc 7675)
• USB HID class specification
Assemble a PC
Introduction:
Conclusion
The build should now be completed. Plug in a mouse and keyboard and connect the
monitor to the PC, after it is all connected plug in the PSU into an outlet and turn it
on. If it does not turn on review all steps and make sure all cords are connected to
the right place.
Troubleshooting And Repair
Sometimes while you try to print using Dot Matrix Printer, it may not display a output. At this
point, you can try the following troubleshooting steps:
Case 1:
Error: “The system cannot find the file specified”.
Solution: Please make sure that “Test.txt” file exists in the folder.
Case 2:
Error: “The network path was not found.”
Printer not exists in the path \\localhost\DotPrinter
Solution: Please make sure to provide the right details \\[[Computer Name]]\[[Printer Share
Name]]
Case 3:
Error: “Network location cannot be reached”
Solution: In ‘Network’ > ‘Ethernet’ > ‘Adapter options’, right Click ‘Ethernet Adapter’ & click
‘Properties’ & enable “Client for Microsoft Networks” (if it is not listed, click on the ‘Install’
button & select). Finally, restart “Windows”.
Case 4:
Error: “Access Is Denied”
Solution: You will have to delete the corrupted files in ‘Spool’ Folder. In ‘Control Panel’ >
‘Services’, please stop the “Print Spooler Service”. Then, delete all the files in “C:\Windows\
System32\Spool\Printer” folder or move it to other folder. Finally, restart the “Print Spooler
Service”.
Very Common problem with dot matrix printers is the formatting of white lines is
printouts these line are mostly horizontal and occur between lines of text or image .This
may occurs due to the problem in the print head
How to fix
1) Check the print head to see if all the pins are working properly
2) Collection of residue on the print head can lead to printing problem .Clean the print head
with alcohol
4) physically check the head cable for any sign of damage and
connect the cable to the head and logical board properly
5) Ensure that the print ribbon is in good condition and installed properly