Servo Motor Controller 1 by pptfiles

VIEWS: 83 PAGES: 15

									Servo Motor Controller




                   Ed Hannigan
                   Embedded Systems
                   12-8-04
Table of Contents

1.0 Servo Motor Controller Overview…………………………………………… 3

2.0 Features………………………………………………………………………                       3
2.1 Servo Pulses………………………………………………………………….                    3
2.2 Position and Current Feedback………………………………………………           3
2.3 Low Battery Detector………………………………………………………..               4
2.4 Onboard Servo Power Supply……………………………………………….             4

3.0 PIC Software…………………………………………………………………                     4
3.1 Main Loop……………………………………………………………………                       4
3.2 Servicing the Servo Motors Algorithm………………………………………       4
3.3 Reading and Interpreting ADC readings……………………………………..     5
3.3.1 Current Readings and Calculations…………………………………………       5
3.3.2 Position Readings…………………………………………………………..               5
3.4 Calibrating Position…………………………………………………………...             6
3.5 Low Priority Interrupts………………………………………………………..            6
3.5.1 Receive Serial Byte Interrupt………………………………………………..       6
3.5.2 Pulse Period Timer Overflow Interrupt……………………………………..   6
3.6 High Priority Timer Interrupt…………………………………………………          6

4.0 VB Servo Demo……………………………………………………………… 7

5.0 Serial Communication Protocol………………………………………………           7
5.1 Sending Commands to the Controller………………………………………...      7
5.1.1 Recommended Command Set………………………………………………               7
5.1.2 Old Command Set…………………………………………………………..                 8
5.2 Receiving the Feedback packet……………………………………………….          8

6.0 Circuit Descriptions and Schematics………………………………………….      9
6.1 Power Supplies………………………………………………………………..                  9
6.2 Current Sensing Circuit……………………………………………………….             10
6.3 External ADC…………………………………………………………………                     10
6.4 Main PIC Schematic…………………………………………………………..                10
6.5 Battery Level Detector………………………………………………………...            10

7.0 Parts List……………………………………………………………………… 13

Figures
Figure 1: HLD of Servo Controller………………………………………………..         11
Figure 2: Power Supplies………………………………………………………….               11
Figure 3: Current sensing circuit………………………………………………….         11
Figure 4: External ADC…………………………………………………………...               12
Figure 5: Battery Level Detector………………………………………………….          12
Figure 6: Main PIC Schematic……………………………………………………              13



                                2
Servo Motor Controller Overview
    The servo motor controller is based on Microchip’s PIC18F442. This is a high end
PIC microcontroller with many extra features available such as a built in 8 channel 10-bit
ADC and enough digital I/O pins to make pulses to position servos. The servo motor
controller controls eight hobby servomotors which each having position feedback and
current sensing. It connects to a standard RS-232 serial port.

1.0 Features
    Included in the PIC servo controller are many features including able to supply pulses
to position servo motors, get current readings of the servos, actual positions of the servos,
has a low battery detector, and includes an on-board power supply for the servos.

2.1 Servo Pulses
    Servos require a pulse to be sent every so often to them typically at rates of 20 to 50
times per second to update there commanded position. The pulse is typically around 1
ms to 2 ms. A minimum pulse of 1 ms will tell the servo to go all the way in one
direction whereas a 2 ms pulse would have it go all the way in the other direction. Pulses
that lie in between these two pulse lengths will position the servo in between the two
extremes in position proportional to the difference in the maximum and minimum pulse
length. The PIC is able to supply these kinds of pulses to servomotors.
    The PIC creates servo pulses ranging from 0-5 V that determine the position of the
servo. These pulses are not generated during startup. All servo outputs are held high
until enabled except for servo numbers 2 and 6, which are held low. It was determined
that certain servos don’t startup “nicely” meaning that sometimes they twitch when
power is applied or when enabled the first time. The servo pulse line is held low or high
depending on what servos need which startup voltage.
    The PIC must first receive an Enable Servos command over the RS232 port in order
for pulses to be generated. Whenever a Disable Servos Command is received, all servo
pulse lines will be held low. Pulses will continue to be generated when an Enable
Command is received.
    The length of a pulse width is set by sending a position command to the servo
controller containing a number in the range of 0-254. The number represents a pulse
width between the minimum and maximum pulse width and proportional to the
difference in the maximum and minimum pulse width. The minimum pulse width is 0.1
ms and 3.0 ms is the maximum pulse width. The minimum and maximum pulse width is
configurable as a constant in the source code and the PIC can be reprogrammed.

2.2 Position and Current Feedback
    Positional and current feedback are sent out through the serial port in packets
whenever power is turned on. Packets are sent as fast as possible when the servos are
disabled which is about 350 per second and sends 320 packets per second when enabled.
When enabled a packet is sent starting when the corresponding servo pulse is being
generated and will be finished sending the packet 1/320th of a second after it started
sending the servo pulse. So eight packets, one for each servomotor, gets sent 40 times
each second, each containing position and current for that particular servomotor.




                                              3
    Position is sent as a number 0 – 254 in the same format in which it is received. In
order to achieve position feedback the center tap output of the potentiometer needs to be
tapped and read by the ADC on the PIC. This output needs to be in the range of 0 to 5
volts in to meet the requirements of the PIC.
    A position calibration phase is required for each position feedback. Whenever the
PIC is reprogrammed or a new servo is attached, it needs to be calibrated. Calibration
gets initiated when a Calibration command is received.
    An 11 bit representation of current, including sign, is included in the feedback packet.
Originally, it was designed to represent current of each servo in milliamps however the
op-amp circuit appears to be nonlinear even though theoretically it should be linear. It is
set so that a 100 mA current is read as a value of 100 and calibrated with a standard
Volt/Amp meter. Continuous currents of up to 2 Amps can be measured.

2.3 Low Battery Detector
    A level detector circuit is included so that when incoming power supply voltage drops
below 11.0 V an LED will go out showing that the battery is getting low. It’s normally
on during regular use.

2.4 On Board Servo Power Supply
   Included on the servo motor controller is a PTH12010WAH switching power supply
capable of supplying up to 12 A of continuous current and operating at a 5.5 Volts. The
controller is able to run from a battery able to supply any voltage in the range of 10.8V
and 13.2 V. The PIC runs from a 7805 also powered from the same voltage source as
well as a negative voltage converter IC powering the op-amp circuitry. Requiring only
one voltage source simplifies external wiring.

2.0 PIC Software
    The PIC software is written in assembly language using MPLAB IDE 6.60. It
contains a main loop and uses three interrupts. The code is commented and documented
where necessary but over commenting (putting comments on every line) was avoided
since it makes it more difficult to read and understand what’s going on.

3.1 Main Loop
    The PIC operates in one main loop servicing each servo one after another. Three
interrupts are used which interrupt upon receiving a serial byte, a set timer overflows
bringing all servo pulse lines low, and a timer which overflows and interrupts every
1/320th of a second for regular periods between pulses of the servo motors.
    The main loop checks whether servos are enabled or disabled. If the servos are
disabled, then feedback packets are transmitted continuously as fast as possible over the
serial port. After eight packets, one for each servo, are sent it goes back to the start of the
loop. If the servos are enabled, then each servomotor is serviced in order, which takes
1/320th of a second. Also, at the beginning of the loop, it checks whether a calibration bit
gets set and if so, it goes into a position calibration mode.

3.2 Servicing the Servo Motors Algorithm
   Each servo gets serviced as the following algorithm outlines:



                                               4
       1) Initialization:
          - Set servo pin HI
          - Start Clear all servo pins timer
          - Start wait 1/320th second timer (set a flag bit and interrupt clears the flag)
       2) Send packet header byte
       3) Read current (from external ADC) and position (from internal ADC)
          - Save readings to registers
       4) Use polling to determine when header byte is finished being sent
       5) Send rest of feedback packet using polling to wait until previous byte is sent
       6) An interrupt will occur sometime during steps 2 – 7 and bring all servo lines
          low
       7) Wait until flag bit is clear

3.3 Reading and Interpreting ADC readings
    Reading each ADC’s takes a small amount of time 2-6 µS for each reading. Each
ADC is read 9 times in total to come up with a final result. Actually the median of three
sets of the median of three readings is used to determine the actual reading sent in the
feedback packet. This is to reduce the chance of getting an incorrect error and achieve
better readings.

3.3.1 Current Readings and Calculations
    Current gets a reading from the 12 bit ADC in the range of 0 V to 5 V corresponding
to a 12 bit number in the range of 0 to 4095. A center (zero current) position is stored as
a raw number in between 0 to 4095. Each servo has an additional compile-time constant
that can adjust the zero current reading. For example, when the circuit is built, all
components have certain tolerances and when the circuit is first powered up these small
current offsets can be observed in the included VB Servo Demo program and the zero
offset currents can be adjusted.
    A constant at compile-time also specifies the mVolts/Amp (set to 1400 mV/Amp). If
a center-zero-offset voltage of the current sensing Op Amp was 2.500 V and includes a
1400 mV/Amp then a 3.2 V voltage would be a reading of 500 mA, 3.9 V would be 1000
mA, 1.8 would be –500 mA, etc. So these compile time constants allow the ADC to
interpret voltages based on the gain and offset of the Op Amp. Below is a formula used
to determine current and then an ideal example as above:
    I = (1/(CmV/Amp))(V – VZeroCurrentOffset + VZeroCurrentOffset)
    I = (1/(1400 mV/Amp))(V - 2.500 V + 0.000 V)

3.3.2 Position Readings
    A 512-byte lookup table created during calibration is used to extract position
information. The lookup table is 255 entries, each entry 2 bytes long holding the 10-bit
position value of the ADC while at each of the 255 different positions. The table will be
sorted already during calibration based on position. The new position value is known so
performing a linear search over the entire table, given a position it can be compared and
the servo position can be known based on which entry had the closest position entry.
    If needed to be faster, this algorithm could be sped up to an O(log n) searching
algorithm but that would be messy coding it in assembly language. Another, faster



                                             5
method, would be to create a larger lookup table based on all 1023 possible ADC
readings, return the servo position (1 byte number). A 1024 byte lookup table could have
been created and index based on the ADC reading could read the servo position which
would be O(1). The PIC only has 16 kB of program memory and this strategy would use
half the memory available just for position lookup tables.

3.4 Calibrating Position
    When receiving a calibration command in the serial receive byte interrupt a
calibration bit gets set for a particular servomotor. Within 1/40th of a second after
receiving the command, the PIC will enter into a calibration mode. The calibration bit is
checked on each iteration of the main loop.
    The goal of the calibration phase is to create a lookup table that can be searched later
on for the servo position based on the ADC reading. So for calibrating a servo, it gets
sent to position 0 and records the ADC reading for position 0. Then gets sent two
positions ahead, back one position, and records the position. When reaching servo
position 254, it actually goes to position 255 which is unattainable in software anywhere
else, goes back to position 254 and records position. Now the lookup table is complete
and the servo gets sent back to center position 127.

3.5 Low Priority Interrupts
    The receive interrupt is a low priority interrupt on the PIC. Whenever a byte from the
serial port is received a receive bit gets set and execution jumps to the low priority
interrupt vector (a special location in program memory) of the PIC. The same goes for
the interrupt that occurs every 1/320th of a second. Program execution branches
depending on which low priority interrupt flag bits are set.

3.5.1 Receive Serial Byte Interrupt
    This keeps track of which bytes have been received in the packet, keeps a running
checksum count, and performs actions when commands are received as long as the
checksum matches. Whenever, a value of 255 is received it is recognized as a new
packet coming in. Upon receiving a certain byte number of a packet, it checks whether a
complete command has arrived and if so it executes actions if the checksum is matched.
Actions include simple things like storing commanded servo positions into registers,
setting a calibration bit, or setting/clearing enable bits.

3.5.2 Pulse Period Timer Overflow Interrupt
    This interrupt happens once every 320th of a second. It simply clears a flag so that in
the main loop the next servo can be serviced so that servo pulses happen with a
predictable period of 1/40th of a second.

3.6 High Priority Timer Interrupt
    Occurs after a set amount of time determined in the servicing routine for each servo.
It brings all servo lines low. This interrupt is called high priority since it can interrupt a
low priority interrupt which means there is low latency since it doesn’t need to wait for
any other interrupts to complete. This is important so that the pulse length is stable. If




                                               6
there were a high latency the pulse would jitter and the servo wouldn’t keep a
commanded position.


4.0 VB Servo Demo
    Included with the servo controller is a Visual Basic .NET Demo program that
illustrates the servo controller’s functionality. The program can enable and disable all
servos. It can send position commands to each servo by moving a scroll bar. Feedback
including current and position is also shown for each servo. Each servo has a calibrate
button so that a calibration is performed for that servo.
    The requirements for this software are a Windows machine with the .NET framework
installed. It has been tested in Windows XP Home Edition only. It also requires that the
NETCommOCX control is installed and a standard 9 pin serial port is available.

5.0 Serial Communication Protocol
   The PIC sends and receives packets over an RS232 serial link configured at 19200
bps, with 1 start bit and 1 stop bit. There is no flow control or handshaking. Packets
always begin with a header byte of 255 and no packet can contain a byte of 255 or it
would signal the start of a new packet.

5.1 Sending Commands to the Controller
   There is an older command set still included for compatibility but the newer
command set is recommended since packets get rejected if they are corrupt meaning the
checksum fails to match the calculated checksum for the packet.

5.1.1 Recommended Command Set
    All the recommended commands have a checksum attached to the end of each
command. The four types of commands that the servo controller can be given are
commands to enable, disable, calibrate, and position the servos. A header byte of 255
always denotes that start of a new packet followed by an op-code, a variable number of
other bytes, and finally a checksum. The checksum contains the bitwise “and” of 255
and of the sum of all previous bytes in the packet excluding the header byte and the
checksum itself with 17 being subtracted from the checksum if it’s equal to 255. This is
because sending 255 would mark the start of a new packet. Here are the commands:

Enable Servos: 255 18 checksum
   Ex: Sending 255, 18, and 18 will enable the servos.

Disable Servos: 255 19 checksum
   Ex: Sending 255, 19, 19 will disable the servos.

Calibrate Servos: 255 16 servoNum checksum
    The value of servoNum must be in the range of 0 to 7 corresponding to the servo to
calibrate.
    Ex: Sending 255, 16, 1, 17 will calibrate servo number 1.




                                            7
Position Servos: 255 17 p0 p1 p2 p3 p4 p5 p6 p7 checksum
   The positions p0-p7 are positions for servo numbers 0-7 and are values from 0-254.
   Ex: Sending 255, 17, 1, 2, 3, 4, 5, 6, 7, 8, and 53 will send all servos to their
positions.

5.1.2 Old Command Set
    An older command set is still available but isn’t recommended because it doesn’t
have support for checksums and doesn’t have a chance to reject corrupted packets. The
older commands are left in just so that older software still works but probably should be
taken out since is the op-code ever got corrupted and changed to 0-9 bad old commands
will execute and be unpredictable results will follow. The old set of commands consisted
of a header byte of 255 followed by an op-code and possibly a data byte as shown in the
table below.

                   Servo Controller Serial Communication Protocol
  Opcode        Data byte   Action
    0              P        If P < 255 then updates servo #1 with position P
    1              P        If P < 255 then updates servo #2 with position P
    2              P        If P < 255 then updates servo #3 with position P
    3              P        If P < 255 then updates servo #4 with position P
    4              P        If P < 255 then updates servo #5 with position P
    5              P        If P < 255 then updates servo #6 with position P
    6              P        If P < 255 then updates servo #7 with position P
    7              P        If P < 255 then updates servo #8 with position P
    8           Don’t care  Disable sending position pulses to all servo motors
    9           Don’t care  Enable sending position pulses to all servo motors

5.2 Receiving the Feedback packet
    Position feedback is sent out through the serial port in a packet with an op-code
containing the servo number, a position of the servo, current the servo is drawing, and a
checksum. The packets are always being sent except when a servomotor is being
calibrated. These feedback packets will be sent one for each of the eight servomotors 40
times per second when enabled and as fast as possible when disabled.

   The packet looks like:

   255 OpcodeAndCurrentMSB CurrentLSB Position Checksum

   The OpcodeAndCurrentMSB contains a byte containing an op-code as well as 3 bits
   of current. It has the following format:

   Bits 4-7: contains an op-code for which servo packet is being sent

   Examples of all op-codes currently used:
    0000xxxx has op-code of 0 - servo 0 is sending a packet
    0001xxxx has op-code of 1 - servo 1 is sending a packet



                                            8
     0010xxxx has op-code of 2 - servo 2 is sending a packet
     0011xxxx has op-code of 3 - servo 3 is sending a packet
     0100xxxx has op-code of 4 - servo 4 is sending a packet
     0101xxxx has op-code of 5 - servo 5 is sending a packet
     0110xxxx has op-code of 6 - servo 6 is sending a packet
     0111xxxx has op-code of 7 - servo 7 is sending a packet

   Bit 3: is an unused bit (will always be zero)

   Bit 2: contains the sign bit for current
   Bit 1: contains the current bit9
   Bit 0: contains the current bit8

    CurrentLSB contains the least significant byte of the current and it will always be in
the range of 0 to 254 and never be 255 since this would signal the start of a new packet.
A value of 255 will instead be sent as 254. This leaves out a few of the values of current,
which are the values of 256k + 255 where k is 0, 1, or 2.
    The final result of current will always be limited to the range of -1000 to 1000
inclusive unless of course it gets corrupted but the checksum should catch this.

   The position byte contains a number in the range of 0 to 254. This is in the same
format in which it is received.

    A checksum will contain the bitwise “and” result of 255 and the sum of
OpcodeAndCurrentMSB, CurrentLSB, and Position with 17 being subtracted from this
number if it turns out to be 255. Sending a 255 would indicate a new packet being sent.
Now after receiving a packet, the received packet can be rejected if it fails the checksum.
Having a checksum match inside of a packet could doesn't guarantee that the packet isn't
corrupted but it's unlikely.

6.0 Circuit Descriptions and Schematics
    A high level design of the project is shown in Figure 1. The PIC is the
microcontroller in the servo controller, which interfaces with most devices such as the
MAX232 for serial communication, position inputs from servos, an external ADC for
current readings, and most importantly, it sends position pulses to the servos.

6.1 Power Supplies
    A regulated five-volt power supply is needed for the PIC, external ADC, and
MAX232. A7805 linear voltage regulator was chosen since they are one of the more
common voltage regulators able to supply up to one amp of current and are easy to hook
up.
    Op-amps require a negative voltage source and so a negative voltage converter is
required. Both channels of the LM1458 dual op-amp together require a maximum of 5.6
mA. There are four of these op-amps total, which draw less than 60 mA of output current
from the NJU7662 negative voltage generator.




                                              9
    From the motors group the servos require at least 6 amps of current at a voltage
between 4-6 V. The chip that was chosen for this purpose is the PTH12010W which
provides a regulated 5.5 V with the chosen 47 Ohm resistor and up to 12 A of current
output. All this is powered by a single power supply of 12 V (minimum of 10.8 V and
maximum of 13.2 V). A four Amp fuse is put inline with the incoming power. The
servos should put the heaviest load on the circuit drawing about 6 A at 5.5 V or 33 W. A
four-amp fuse at 10.8 V should be able to carry at least 43.2 W. Assuming the
PTH12010W is 94 % efficient means that at least 90 % of 43.2 W of power can be
delivered to this servos or 38.9 W.

6.2 Current Sensing Circuit – TODO: Add Rich’s description here, can refer to my
schematic if you’d like

6.3 External ADC
    More analog inputs were needed then the PIC offered directly so an external ADC is
used. The MCP3304 is an 8 channel 12-bit ADC made by Microchip and talks to the PIC
through an SPI interface through a four-wire connection. The CS line selects the external
ADC when brought low before sending it commands. The SCK line clocks out bits on
the Dout and Din line.

6.4 Main PIC Schematic
    The PIC requires a 5-volt supply and that it’s master clear pin be tied high. Included
are a few resistors and capacitors to filter noise on this line so that the PIC doesn’t reset
suddenly. A 20 MHz Ceramic oscillator is used which is less accurate than a crystal but
they are typically smaller and cheaper but accurate to within only a few percent. The PIC
must use a MAX232 so that it can do RS232 communication. This chip inverts logic
signals into a different range from –12 to 12 V on the out going line and to 0 to 5 V for
the PIC on the incoming line. Position inputs from the potentiometers are connected to
the PICs analog input lines. The addition of 0.001 uF capacitors were added because
readings were flickering by more then 10 numbers in each direction over a range of 255
and this was the smallest capacitor found that would reduce the flicker. It didn’t appear
to affect the position of the servo motor whether or not these capacitors were connected.

6.5 Battery Level Detector
     There is a led output turned on displaying that battery voltage is above 11.0 V. This
is a level detector circuit from Forest Mims, “Engineer’s Notebook” (pg 93, 1992).
Whenever the voltage on the negative input is greater then the positive input (see Figure
5) the LED glows. The positive input is set to 2.5 volts with a resistor divider circuit with
two equal resistors. The trip voltage to be set on the negative input is 2.5 V. With R2
and R3 chosen to be 20 kOhm, a current equal to I = V/(R1+R2) = 2.5V/20kOhm = 0.125
mA flows through R2 and R3. It’s desired to have 11 V across a third resistor in series
(with 8.5 volts across this resistor) with these two resistors to have a current of 0.125 mA.
Resistance equals V/I = 8.5V/0.125mA = 68kOhm = R1.




                                             10
Figure 1: HLD of Servo Controller            Figure 2: Power Supplies




                         Figure 3: Current sensing circuit



                                        11
    Figure 4: External ADC




Figure 5: Battery Level Detector




              12
                             Figure 6: Main PIC Schematic
7.0 Parts List
    Most of the parts can be purchased from Digikey or other suppliers like Jameco if
equivalent parts are found. Many common resistors and capacitors were supplied from
the school and part numbers are not listed for those common items or included in the final
price. Sometimes more than one item was purchased in case a part failed but included is
only a list of the minimum number of components for a single servo controller and
doesn’t include extras. Some items such as 100’ of wire are included which contains a
lot more than is needed for a single controller.



                                           13
                                 Parts List of the Servo Controller
Main Cicuit (PIC, Serial, External ADC)
Symbol        Desc                           Supplier   Part Num.          Price  Qty Total
U1            PIC18F442                      Digikey    PIC18F442-I/P-ND   $ 8.65     1 $ 8.65
U2            MAX232                         Digikey    296-1402-5-ND      $ 0.78     1 $ 0.78
U5            12 bit serial ADC              Digikey    MCP3304-CI/P-ND    $ 4.35     1 $ 4.35
OSC1          20 MHz Ceramic Resonator       Digikey    X909-ND            $ 0.54     1 $ 0.54
C1            0.47 uF Ceramic Cap.           School                                   1
C2            10 uF Electrolytic Cap.        School                                   1
C3-6          1 uF Electrolytic Cap.         School     493-1099-ND        $ 0.20     5 $ 1.00
C7-C13        0.001 uF Ceramic Cap.          School                                   8
C14           0.1 uF Ceramic Cap.            School                                   1
C15           0.68 uF Tantalum Cap.          Digikey    399-1353-ND        $ 0.48     1 $ 0.48
C24           0.47 uF Ceramic Cap.           School                                   1
R1            100 Ohm, 1/4 W Resistor        School                                   1
R2            4.7 kOhm, 1/4 W Resistor       School                                   1
              DB9 Female PCB Mount
CONN1         Connector                      Jameco     104977             $ 0.89       1 $ 0.89
                                                                                    Total: $ 16.69
Current Sensing Op Amp Circuitry
Symbol      Desc                             Supplier   Part Num.          Price    Qty     Total
            0.1 Ohm, 1/2 W Current Sensing
R1          Res.                             Digikey    605HR100-ND        $ 0.42          8$    3.36
R2-3        15 kOhm, 1/4 W Resistor          School
R4-R5       200 kOhm, 1/4 W, 1 % Resistor    Digikey    100KXBK-ND         $ 0.11         16 $   1.73
R6          10 kOhm, 1/4 W Resistor          School
R7          100 kOhm, 1/4 W, 1 % Resistor    Digikey    200KXBK-ND         $ 0.11          8$    0.86
U1          LM1458, Dual OpAmp               School
            10 uF Ceramic Surface Mount
C1          Cap.                             Digikey    490-1867-1-ND      $ 0.18       8$       1.42
                                                                                    Total: $     7.37
Battery Level Detector
Symbol       Desc                            Supplier   Part Num.          Price    Qty      Total
R1           68 kOhm, 1/4 W Resistor, 5%     School                                        1
R2-3         10 kOhm, 1/4 W Resistor, 5%     School                                        2
R4-R5        100 kOhm, 1/4 W Resitor, 1%     Digikey    100KXBK-ND         $ 0.11          2 $ 0.22
R6           330 Ohm, 1/4 W Resistor         School                                        1
D1           Yellow LED                      School                                        1
U1           741 OpAmp                       School
                                                                                    Total: $     0.22




                                               14
Power Supplies
Symbol       Desc                                    Supplier   Part Num.        Price  Qty Total
U3           DC/DC Converter 12V to 5.5 V            Digikey    393-1114-ND      $26.40     1 $ 26.40
U4           5 linear voltage regulator              Digikey    LM7805CT-ND      $ 0.53     1 $ 0.53
U6           Negative Voltage Generator IC           Digikey    NJU7662D-ND      $ 1.47     1 $ 1.47
F1           4 A Fastblow Fuse                       Digikey    WK4716-ND        $ 0.23     1 $ 0.23
Fuse Holders Need 2 for F1                           Digikey    F063-ND          $ 0.23     2 $ 0.46
C16          560 uF Electrolytic Cap.                Digikey    P10276-ND        $ 0.80     1 $ 0.80
             10 uF Ceramic Surface Mount
C17          Cap.                                    Digikey     490-1867-1-ND   $ 0.18       1$      0.18
C18          330 uF Electrolytic Cap.                Digikey     P10273-ND       $ 0.44       1$      0.44
C19          3300 uF Electrolytic Cap.               School
C20          1000 uF Electrolytic Cap.               School
C21          0.47 uF Ceramic Cap.                    School
C22-23       10 uF Electrolytic Cap                  School
Radj         47 Ohm                                  School
Rled         330 Ohm, 1/4 W                          School
                                                     All
CONN2         20 A, 2 terminal Connector             Electronics NA
D1            Yellow LED                             School
                                                                                          Total: $ 30.51
Misc. Supplies
             Desc                                    Supplier   Part Num.        Price  Qty Total
             7 pin connector housing                 Digikey    WM2606-ND        $ 0.45    10 $ 4.53
             7 pin header                            Digikey    WM4205-ND        $ 0.61    10 $ 6.12
             Pins for above connectors               Digikey    WM2200-ND        $ 0.05   100 $ 5.34
             6 Conductor, 22 Gauge, stranded
             wire                                    Digikey    A124-100-ND      $40.39       1    $ 40.39
             6" x 4" printed circuit board (1 oz )   Digikey    PC6-ND           $ 4.10       1    $ 4.10
             40 pin IC socket                        Digikey    2-641268-1-ND    $ 1.41       1    $ 1.41
             16 pin IC socket                        Digikey    2-641262-1-ND    $ 0.52       2    $ 1.04
             8 pin IC socket                         Digikey    A24807-ND        $ 0.27       6    $ 1.62
                                                                                          Total:   $ 64.55
                                                                                          Grand
                                                                                          Total:   $119.33




                                                       15

								
To top