![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
work in progress
Dependencies: FastAnalogIn FastIO USBDevice mbed FastPWM SimpleDMA
Fork of Pinscape_Controller by
Diff: config.h
- Revision:
- 36:6b981a2afab7
- Parent:
- 35:d832bcab089e
- Child:
- 38:697e10d8fb80
--- a/config.h Wed Oct 21 21:53:07 2015 +0000 +++ b/config.h Thu Dec 03 07:34:57 2015 +0000 @@ -425,9 +425,10 @@ // Number of TLC5940 chips you're using. For a full LedWiz-compatible // setup, you need two of these chips, for 32 outputs. The software -// will handle up to 8. The expansion board uses 4 of these chips; if -// you're not using the expansion board, we assume you're not using -// any of them. +// will handle up to 8. +// If you're using the expansion board, the main KL25Z interface board +// has 2 chips and the MOSFET board has 2 more, for a total of 4. If +// you add extra daisy-chained MOSFET boards, add 2 more per board. #ifdef EXPANSION_BOARD # define TLC5940_NCHIPS 4 #else @@ -440,25 +441,41 @@ // outputs, respectively, which effectively limits them to the default // selections, and that the GSCLK pin must be PWM-capable. These defaults // all match the expansion board wiring. -#define TLC5940_SIN PTC6 // Must connect to SPI0 MOSI -> PTC6 or PTD2 -#define TLC5940_SCLK PTC5 // Must connect to SPI0 SCLK -> PTC5 or PTD1; however, PTD1 isn't - // recommended because it's hard-wired to the on-board blue LED -#define TLC5940_XLAT PTC10 // Any GPIO pin can be used -#define TLC5940_BLANK PTC7 // Any GPIO pin can be used -#define TLC5940_GSCLK PTA1 // Must be a PWM-capable pin +#define TLC5940_SIN PTC6 // Serial data - Must connect to SPI0 MOSI -> PTC6 or PTD2 +#define TLC5940_SCLK PTC5 // Serial clock - Must connect to SPI0 SCLK -> PTC5 or PTD1, + // but don't use PTD1 because it's hard-wired to the on-board + // blue LED +#define TLC5940_XLAT PTC10 // XLAT (latch) signal - Any GPIO pin can be used +#define TLC5940_BLANK PTC7 // BLANK signal - Any GPIO pin can be used +#define TLC5940_GSCLK PTA1 // Grayscale clock - Must be a PWM-capable pin + -// TLC5940 output power enable pin. This is a GPIO pin that controls -// a high-side transistor switch that controls power to the optos and -// LEDs connected to the TLC5940 outputs. This is a precaution against -// powering the chip's output pins before Vcc is powered. Vcc comes -// from the KL25Z, so when our program is running, we know for certain -// that Vcc is up. This means that we can simply enable this pin any -// time after entering our main(). Un-comment this line if using this -// circuit. -// #define TLC5940_PWRENA PTC11 // Any GPIO pin can be used -#ifdef EXPANSION_BOARD -# define TLC5940_PWRENA PTC11 -#endif +// -------------------------------------------------------------------------- +// +// 74HC595 digital output setup - "Chime Board" module +// +// The 74HC595 is an 8-output serial-to-parallel shift register IC. This lets +// us add extra digital outputs (on/off only, not PWM), 8 at a time, similar +// to the way the TLC5940 lets us add extra PWM outputs. The 74HC595 requires +// four control signals, so one chip gives us 8 outputs using only 4 GPIOs. +// The chips can be daisy-chained, so by adding multiple chips, we can add +// any number of new outputs, still using only 4 GPIO pins for the whole chain. +// +// The TLC5940 is more useful for general-purpose outputs because of its PWM +// capabilities, but digital-only outputs are better for some special cases. +// +// The Expansion Board "Chime" module uses these chips to add timer-protected +// outputs. The timer triggers are edge-sensitive, so we want simple on/off +// signals to control them; a PWM signal wouldn't work properly because it's +// constantly switching on and off even when nominally 100% on. +// + +#define HC595_NCHIPS 0 // Number of chips == number of Chime boards connected +#define HC595_SIN PTA5 // Serial data - use any GPIO pin +#define HC595_SCLK PTA4 // Serial clock - use any GPIO pin +#define HC595_LATCH PTA12 // Latch signal - use any GPIO pin +#define HC595_ENA PTD4 // Enable signal - use any GPIO pin + #endif // CONFIG_H - end of include-once section (code below this point can be multiply included) @@ -488,14 +505,15 @@ // "NC" entries below to the reallocated pin name. The limit is 32 // buttons total. // -// (If you're using TLC5940 chips to control outputs, ALL of the -// LedWiz mapped ports can be reassigned as keys, except, of course, -// those taken over for the 5940 interface.) +// (If you're using TLC5940 chips to control outputs, many of the +// GPIO pins that are mapped to LedWiz outputs in the default +// mapping can be reassigned as keys, since the TLC5940 outputs +// take over for the GPIO pins. The exceptions are the pins that +// are reassigned to control the TLC5940 chips.) // // Note: PTD1 (pin J2-12) should NOT be assigned as a button input, // as this pin is physically connected on the KL25Z to the on-board -// indicator LED's blue segment. This precludes any other use of -// the pin. +// indicator LED's blue segment. PinName buttonMap[] = { PTC2, // J10 pin 10, joystick button 1 PTB3, // J10 pin 8, joystick button 2 @@ -503,7 +521,11 @@ PTB1, // J10 pin 4, joystick button 4 PTE30, // J10 pin 11, joystick button 5 +#ifdef EXPANSION_BOARD + PTC11, // J1 pin 15, joystick button 6 +#else PTE22, // J10 pin 5, joystick button 6 +#endif PTE5, // J9 pin 15, joystick button 7 PTE4, // J9 pin 13, joystick button 8 @@ -635,7 +657,7 @@ // // Note: Don't assign PTD1 (pin J2-12) as an LedWiz output. That pin // is hard-wired on the KL25Z to the on-board indicator LED's blue segment, -// which pretty much precludes any other use of the pin. +// which pretty precludes other uses of the pin. // // ACTIVE-LOW PORTS: By default, when a logical port is turned on in // the software, we set the physical GPIO voltage to "high" (3.3V), and @@ -648,21 +670,33 @@ // affected port. // // TLC5940 PORTS: To assign an LedWiz output port number to a particular -// output on a TLC5940, set tlcPortNum to the non-zero port number, -// starting at 1 for the first output on the first chip, 16 for the -// last output on the first chip, 17 for the first output on the second -// chip, and so on. TLC ports are inherently PWM-capable only, so it's -// not necessary to set the PORT_IS_PWM flag for those. +// output on a TLC5940, set the port type to TLC_PORT and set the 'pin' +// value to the index of the output port in the daisy chain. The first +// chip in the daisy chain has ports 1-16, the second has ports 17-32, +// and so on. +// +// 74HC595 PORTS: To assign an LedWiz output port to a 74HC595 port, +// set the port type to HC595_PORT and set 'pin' to the index of the port +// in the daisy chain. The first chip has ports 1-8, the second has +// 9-16, etc. // -// ledWizPortMap 'flags' bits - combine these with '|' -const int PORT_IS_PWM = 0x0001; // this port is PWM-capable -const int PORT_ACTIVE_LOW = 0x0002; // use LOW voltage (0V) when port is ON +// ledWizPortMap 'typ' values +enum LWPortType { + NO_PORT = -1, // Not connected + DIG_GPIO = 0, // DigitalOut I/O pin (not PWM capable) + PWM_GPIO = 1, // AnalogOut I/O pin (PWM capable) + TLC_PORT = 2, // TLC5940 output port + HC595_PORT = 3 // 74HC595 output port +}; + +// flags - combine with '|' +const int PORT_ACTIVE_LOW = 0x0001; // use LOW voltage (0V) when port is ON struct { - PinName pin; // the GPIO pin assigned to this output; NC if not connected or a TLC5940 port + int pin; // Pin name/index - PinName for GPIO, pin index for TLC5940 or 74HC595 + LWPortType typ; // type of pin int flags; // flags - a combination of PORT_xxx flag bits (see above) - int tlcPortNum; // for TLC5940 ports, the TLC output number (1 to number of chips*16); otherwise 0 } ledWizPortMap[] = { #if TLC5940_NCHIPS == 0 @@ -683,39 +717,39 @@ // We commented each PWM pin with its hardware channel number to help you keep // track of available channels if you do need to rearrange any of these pins. - { PTA1, PORT_IS_PWM }, // pin J1-2, LW port 1 (PWM capable - TPM 2.0 = channel 9) - { PTA2, PORT_IS_PWM }, // pin J1-4, LW port 2 (PWM capable - TPM 2.1 = channel 10) - { PTD4, PORT_IS_PWM }, // pin J1-6, LW port 3 (PWM capable - TPM 0.4 = channel 5) - { PTA12, PORT_IS_PWM }, // pin J1-8, LW port 4 (PWM capable - TPM 1.0 = channel 7) - { PTA4, PORT_IS_PWM }, // pin J1-10, LW port 5 (PWM capable - TPM 0.1 = channel 2) - { PTA5, PORT_IS_PWM }, // pin J1-12, LW port 6 (PWM capable - TPM 0.2 = channel 3) - { PTA13, PORT_IS_PWM }, // pin J2-2, LW port 7 (PWM capable - TPM 1.1 = channel 13) - { PTD5, PORT_IS_PWM }, // pin J2-4, LW port 8 (PWM capable - TPM 0.5 = channel 6) - { PTD0, PORT_IS_PWM }, // pin J2-6, LW port 9 (PWM capable - TPM 0.0 = channel 1) - { PTD3, PORT_IS_PWM }, // pin J2-10, LW port 10 (PWM capable - TPM 0.3 = channel 4) - { PTD2, 0 }, // pin J2-8, LW port 11 - { PTC8, 0 }, // pin J1-14, LW port 12 - { PTC9, 0 }, // pin J1-16, LW port 13 - { PTC7, 0 }, // pin J1-1, LW port 14 - { PTC0, 0 }, // pin J1-3, LW port 15 - { PTC3, 0 }, // pin J1-5, LW port 16 - { PTC4, 0 }, // pin J1-7, LW port 17 - { PTC5, 0 }, // pin J1-9, LW port 18 - { PTC6, 0 }, // pin J1-11, LW port 19 - { PTC10, 0 }, // pin J1-13, LW port 20 - { PTC11, 0 }, // pin J1-15, LW port 21 - { PTE0, 0 }, // pin J2-18, LW port 22 - { NC, 0 }, // Not connected, LW port 23 - { NC, 0 }, // Not connected, LW port 24 - { NC, 0 }, // Not connected, LW port 25 - { NC, 0 }, // Not connected, LW port 26 - { NC, 0 }, // Not connected, LW port 27 - { NC, 0 }, // Not connected, LW port 28 - { NC, 0 }, // Not connected, LW port 29 - { NC, 0 }, // Not connected, LW port 30 - { NC, 0 }, // Not connected, LW port 31 - { NC, 0 } // Not connected, LW port 32 - + { PTA1, PWM_GPIO }, // pin J1-2, LW port 1 (PWM capable - TPM 2.0 = channel 9) + { PTA2, PWM_GPIO }, // pin J1-4, LW port 2 (PWM capable - TPM 2.1 = channel 10) + { PTD4, PWM_GPIO }, // pin J1-6, LW port 3 (PWM capable - TPM 0.4 = channel 5) + { PTA12, PWM_GPIO }, // pin J1-8, LW port 4 (PWM capable - TPM 1.0 = channel 7) + { PTA4, PWM_GPIO }, // pin J1-10, LW port 5 (PWM capable - TPM 0.1 = channel 2) + { PTA5, PWM_GPIO }, // pin J1-12, LW port 6 (PWM capable - TPM 0.2 = channel 3) + { PTA13, PWM_GPIO }, // pin J2-2, LW port 7 (PWM capable - TPM 1.1 = channel 13) + { PTD5, PWM_GPIO }, // pin J2-4, LW port 8 (PWM capable - TPM 0.5 = channel 6) + { PTD0, PWM_GPIO }, // pin J2-6, LW port 9 (PWM capable - TPM 0.0 = channel 1) + { PTD3, PWM_GPIO }, // pin J2-10, LW port 10 (PWM capable - TPM 0.3 = channel 4) + { PTD2, DIG_GPIO }, // pin J2-8, LW port 11 + { PTC8, DIG_GPIO }, // pin J1-14, LW port 12 + { PTC9, DIG_GPIO }, // pin J1-16, LW port 13 + { PTC7, DIG_GPIO }, // pin J1-1, LW port 14 + { PTC0, DIG_GPIO }, // pin J1-3, LW port 15 + { PTC3, DIG_GPIO }, // pin J1-5, LW port 16 + { PTC4, DIG_GPIO }, // pin J1-7, LW port 17 + { PTC5, DIG_GPIO }, // pin J1-9, LW port 18 + { PTC6, DIG_GPIO }, // pin J1-11, LW port 19 + { PTC10, DIG_GPIO }, // pin J1-13, LW port 20 + { PTC11, DIG_GPIO }, // pin J1-15, LW port 21 + { PTE0, DIG_GPIO }, // pin J2-18, LW port 22 + { NC, NO_PORT }, // Not connected, LW port 23 + { NC, NO_PORT }, // Not connected, LW port 24 + { NC, NO_PORT }, // Not connected, LW port 25 + { NC, NO_PORT }, // Not connected, LW port 26 + { NC, NO_PORT }, // Not connected, LW port 27 + { NC, NO_PORT }, // Not connected, LW port 28 + { NC, NO_PORT }, // Not connected, LW port 29 + { NC, NO_PORT }, // Not connected, LW port 30 + { NC, NO_PORT }, // Not connected, LW port 31 + { NC, NO_PORT } // Not connected, LW port 32 + #elif defined(EXPANSION_BOARD) // *** EXPANSION BOARD MODE *** @@ -733,80 +767,100 @@ // damaged, so they don't require such elaborate precautions.) // // The specific device assignments in the last column are just - // recommendations - you can assign any port to any device with + // recommendations. You can assign any port to any device with // compatible power needs. The "General Purpose" ports are good to - // at least 5A, so you can use these for virtually anything. The - // "Button light" ports are good to about 1.5A, so these are most - // suitable for smaller loads like lamps, flashers, LEDs, etc. The - // flipper and magnasave ports will only provide 20mA, so these are - // only usable for small LEDs. + // at least 5A, so you can use these for virtually anything; put + // your heavy-duty devices, such as solenoids and motors, on these + // outputs. You can also put lighter loads like lamps and LEDs + // on these if you have ports left over after connecting all of + // your high-power devices. The "Flasher" and "Button light" ports + // are good to about 1.5A, so they work for medium loads like lamps, + // flashers, high-power LEDs, etc. The flipper and magnasave ports + // only provide 20mA; use these only for small LEDs. + // + // The TLC5940 outputs on the expansion board are hard-wired to + // specific output drivers - that's what determines the power + // limits described above. You can rearrange the ports in the + // list below to change the LedWiz port numbering to any order + // you prefer, but the association between a TLC5940 port number + // and the output circuit type can't be changed in the software. + // That's a function of how the TLC5940 port is physically wired + // on the board. Likewise, the PTC8 output is hard-wired to the + // knocker time limiter. + // TLC ports 1-20 and 44-47 = Darlington outputs, 1.5A max + // TLC ports 21-44 = MOSFET outputs (limit depends on MOSFET chosen) + // TLC ports 49-64 = direct outputs, limited to 20mA // The first 32 ports are LedWiz-compatible, so they're universally // accessible, even to older non-DOF software. Attach the most common // devices to these ports. - { NC, 0, 1 }, // TLC port 1, LW output 1 - Flasher 1 R - { NC, 0, 2 }, // TLC port 2, LW output 2 - Flasher 1 G - { NC, 0, 3 }, // TLC port 3, LW output 3 - Flasher 1 B - { NC, 0, 4 }, // TLC port 4, LW output 4 - Flasher 2 R - { NC, 0, 5 }, // TLC port 5, LW output 5 - Flasher 2 G - { NC, 0, 6 }, // TLC port 6, LW output 6 - Flasher 2 B - { NC, 0, 7 }, // TLC port 7, LW output 7 - Flasher 3 R - { NC, 0, 8 }, // TLC port 8, LW output 8 - Flasher 3 G - { NC, 0, 9 }, // TLC port 9, LW output 9 - Flasher 3 B - { NC, 0, 10 }, // TLC port 10, LW output 10 - Flasher 4 R - { NC, 0, 11 }, // TLC port 11, LW output 11 - Flasher 4 G - { NC, 0, 12 }, // TLC port 12, LW output 12 - Flasher 4 B - { NC, 0, 13 }, // TLC port 13, LW output 13 - Flasher 5 R - { NC, 0, 14 }, // TLC port 14, LW output 14 - Flasher 5 G - { NC, 0, 15 }, // TLC port 15, LW output 15 - Flasher 5 B - { NC, 0, 16 }, // TLC port 16, LW output 16 - Strobe/Button light - { NC, 0, 17 }, // TLC port 17, LW output 17 - Button light 1 - { NC, 0, 18 }, // TLC port 18, LW output 18 - Button light 2 - { NC, 0, 19 }, // TLC port 19, LW output 19 - Button light 3 - { NC, 0, 20 }, // TLC port 20, LW output 20 - Button light 4 - { PTC8, 0, 0 }, // PTC8, LW output 21 - Replay Knocker - { NC, 0, 21 }, // TLC port 21, LW output 22 - Contactor 1/General purpose - { NC, 0, 22 }, // TLC port 22, LW output 23 - Contactor 2/General purpose - { NC, 0, 23 }, // TLC port 23, LW output 24 - Contactor 3/General purpose - { NC, 0, 24 }, // TLC port 24, LW output 25 - Contactor 4/General purpose - { NC, 0, 25 }, // TLC port 25, LW output 26 - Contactor 5/General purpose - { NC, 0, 26 }, // TLC port 26, LW output 27 - Contactor 6/General purpose - { NC, 0, 27 }, // TLC port 27, LW output 28 - Contactor 7/General purpose - { NC, 0, 28 }, // TLC port 28, LW output 29 - Contactor 8/General purpose - { NC, 0, 29 }, // TLC port 29, LW output 30 - Contactor 9/General purpose - { NC, 0, 30 }, // TLC port 30, LW output 31 - Contactor 10/General purpose - { NC, 0, 31 }, // TLC port 31, LW output 32 - Shaker Motor/General purpose + { 1, TLC_PORT }, // TLC port 1, LW output 1 - Flasher 1 R + { 2, TLC_PORT }, // TLC port 2, LW output 2 - Flasher 1 G + { 3, TLC_PORT }, // TLC port 3, LW output 3 - Flasher 1 B + { 4, TLC_PORT }, // TLC port 4, LW output 4 - Flasher 2 R + { 5, TLC_PORT }, // TLC port 5, LW output 5 - Flasher 2 G + { 6, TLC_PORT }, // TLC port 6, LW output 6 - Flasher 2 B + { 7, TLC_PORT }, // TLC port 7, LW output 7 - Flasher 3 R + { 8, TLC_PORT }, // TLC port 8, LW output 8 - Flasher 3 G + { 9, TLC_PORT }, // TLC port 9, LW output 9 - Flasher 3 B + { 10, TLC_PORT }, // TLC port 10, LW output 10 - Flasher 4 R + { 11, TLC_PORT }, // TLC port 11, LW output 11 - Flasher 4 G + { 12, TLC_PORT }, // TLC port 12, LW output 12 - Flasher 4 B + { 13, TLC_PORT }, // TLC port 13, LW output 13 - Flasher 5 R + { 14, TLC_PORT }, // TLC port 14, LW output 14 - Flasher 5 G + { 15, TLC_PORT }, // TLC port 15, LW output 15 - Flasher 5 B + { 16, TLC_PORT }, // TLC port 16, LW output 16 - Strobe/Button light + { 17, TLC_PORT }, // TLC port 17, LW output 17 - Button light 1 + { 18, TLC_PORT }, // TLC port 18, LW output 18 - Button light 2 + { 19, TLC_PORT }, // TLC port 19, LW output 19 - Button light 3 + { 20, TLC_PORT }, // TLC port 20, LW output 20 - Button light 4 + { PTC8, DIG_GPIO }, // PTC8, LW output 21 - Replay Knocker + { 21, TLC_PORT }, // TLC port 21, LW output 22 - Contactor 1/General purpose + { 22, TLC_PORT }, // TLC port 22, LW output 23 - Contactor 2/General purpose + { 23, TLC_PORT }, // TLC port 23, LW output 24 - Contactor 3/General purpose + { 24, TLC_PORT }, // TLC port 24, LW output 25 - Contactor 4/General purpose + { 25, TLC_PORT }, // TLC port 25, LW output 26 - Contactor 5/General purpose + { 26, TLC_PORT }, // TLC port 26, LW output 27 - Contactor 6/General purpose + { 27, TLC_PORT }, // TLC port 27, LW output 28 - Contactor 7/General purpose + { 28, TLC_PORT }, // TLC port 28, LW output 29 - Contactor 8/General purpose + { 29, TLC_PORT }, // TLC port 29, LW output 30 - Contactor 9/General purpose + { 30, TLC_PORT }, // TLC port 30, LW output 31 - Contactor 10/General purpose + { 31, TLC_PORT }, // TLC port 31, LW output 32 - Shaker Motor/General purpose // Ports 33+ are accessible only to DOF-based software. Older LedWiz-only // software on the can't access these. Attach less common devices to these ports. - { NC, 0, 32 }, // TLC port 32, LW output 33 - Gear Motor/General purpose - { NC, 0, 33 }, // TLC port 33, LW output 34 - Fan/General purpose - { NC, 0, 34 }, // TLC port 34, LW output 35 - Beacon/General purpose - { NC, 0, 35 }, // TLC port 35, LW output 36 - Undercab RGB R/General purpose - { NC, 0, 36 }, // TLC port 36, LW output 37 - Undercab RGB G/General purpose - { NC, 0, 37 }, // TLC port 37, LW output 38 - Undercab RGB B/General purpose - { NC, 0, 38 }, // TLC port 38, LW output 39 - Bell/General purpose - { NC, 0, 39 }, // TLC port 39, LW output 40 - Chime 1/General purpose - { NC, 0, 40 }, // TLC port 40, LW output 41 - Chime 2/General purpose - { NC, 0, 41 }, // TLC port 41, LW output 42 - Chime 3/General purpose - { NC, 0, 42 }, // TLC port 42, LW output 43 - General purpose - { NC, 0, 43 }, // TLC port 43, LW output 44 - General purpose - { NC, 0, 44 }, // TLC port 44, LW output 45 - Button light 5 - { NC, 0, 45 }, // TLC port 45, LW output 46 - Button light 6 - { NC, 0, 46 }, // TLC port 46, LW output 47 - Button light 7 - { NC, 0, 47 }, // TLC port 47, LW output 48 - Button light 8 - { NC, 0, 49 }, // TLC port 49, LW output 49 - Flipper button RGB left R - { NC, 0, 50 }, // TLC port 50, LW output 50 - Flipper button RGB left G - { NC, 0, 51 }, // TLC port 51, LW output 51 - Flipper button RGB left B - { NC, 0, 52 }, // TLC port 52, LW output 52 - Flipper button RGB right R - { NC, 0, 53 }, // TLC port 53, LW output 53 - Flipper button RGB right G - { NC, 0, 54 }, // TLC port 54, LW output 54 - Flipper button RGB right B - { NC, 0, 55 }, // TLC port 55, LW output 55 - MagnaSave button RGB left R - { NC, 0, 56 }, // TLC port 56, LW output 56 - MagnaSave button RGB left G - { NC, 0, 57 }, // TLC port 57, LW output 57 - MagnaSave button RGB left B - { NC, 0, 58 }, // TLC port 58, LW output 58 - MagnaSave button RGB right R - { NC, 0, 59 }, // TLC port 59, LW output 59 - MagnaSave button RGB right G - { NC, 0, 60 } // TLC port 60, LW output 60 - MagnaSave button RGB right B + { 32, TLC_PORT }, // TLC port 32, LW output 33 - Gear Motor/General purpose + { 33, TLC_PORT }, // TLC port 33, LW output 34 - Fan/General purpose + { 34, TLC_PORT }, // TLC port 34, LW output 35 - Beacon/General purpose + { 35, TLC_PORT }, // TLC port 35, LW output 36 - Undercab RGB R/General purpose + { 36, TLC_PORT }, // TLC port 36, LW output 37 - Undercab RGB G/General purpose + { 37, TLC_PORT }, // TLC port 37, LW output 38 - Undercab RGB B/General purpose + { 38, TLC_PORT }, // TLC port 38, LW output 39 - Bell/General purpose + { 39, TLC_PORT }, // TLC port 39, LW output 40 - Chime 1/General purpose + { 40, TLC_PORT }, // TLC port 40, LW output 41 - Chime 2/General purpose + { 41, TLC_PORT }, // TLC port 41, LW output 42 - Chime 3/General purpose + { 42, TLC_PORT }, // TLC port 42, LW output 43 - General purpose + { 43, TLC_PORT }, // TLC port 43, LW output 44 - General purpose + { 44, TLC_PORT }, // TLC port 44, LW output 45 - Button light 5 + { 45, TLC_PORT }, // TLC port 45, LW output 46 - Button light 6 + { 46, TLC_PORT }, // TLC port 46, LW output 47 - Button light 7 + { 47, TLC_PORT }, // TLC port 47, LW output 48 - Button light 8 + { 49, TLC_PORT }, // TLC port 49, LW output 49 - Flipper button RGB left R + { 50, TLC_PORT }, // TLC port 50, LW output 50 - Flipper button RGB left G + { 51, TLC_PORT }, // TLC port 51, LW output 51 - Flipper button RGB left B + { 52, TLC_PORT }, // TLC port 52, LW output 52 - Flipper button RGB right R + { 53, TLC_PORT }, // TLC port 53, LW output 53 - Flipper button RGB right G + { 54, TLC_PORT }, // TLC port 54, LW output 54 - Flipper button RGB right B + { 55, TLC_PORT }, // TLC port 55, LW output 55 - MagnaSave button RGB left R + { 56, TLC_PORT }, // TLC port 56, LW output 56 - MagnaSave button RGB left G + { 57, TLC_PORT }, // TLC port 57, LW output 57 - MagnaSave button RGB left B + { 58, TLC_PORT }, // TLC port 58, LW output 58 - MagnaSave button RGB right R + { 59, TLC_PORT }, // TLC port 59, LW output 59 - MagnaSave button RGB right G + { 60, TLC_PORT }, // TLC port 60, LW output 60 - MagnaSave button RGB right B + { 61, TLC_PORT }, // TLC port 61, LW output 61 - Extra RGB LED R + { 62, TLC_PORT }, // TLC port 62, LW output 62 - Extra RGB LED G + { 63, TLC_PORT }, // TLC port 63, LW output 63 - Extra RGB LED B + { 64, TLC_PORT } // TLC port 64, LW output 64 - Extra single LED #else @@ -838,16 +892,17 @@ // in this set. This leaves the following ports from the basic mode output // set available for other users: PTA13, PTD0, PTD2, PTD3, PTD5, PTE0. - { PTC8, 0 }, // pin J1-14, LW port 1 - { PTC9, 0 }, // pin J1-16, LW port 2 - { PTC0, 0 }, // pin J1-3, LW port 3 - { PTC3, 0 }, // pin J1-5, LW port 4 - { PTC4, 0 }, // pin J1-7, LW port 5 - { PTA2, PORT_IS_PWM }, // pin J1-4, LW port 6 (PWM capable - TPM 2.1 = channel 10) - { PTD4, PORT_IS_PWM }, // pin J1-6, LW port 7 (PWM capable - TPM 0.4 = channel 5) - { PTA12, PORT_IS_PWM }, // pin J1-8, LW port 8 (PWM capable - TPM 1.0 = channel 7) - { PTA4, PORT_IS_PWM }, // pin J1-10, LW port 9 (PWM capable - TPM 0.1 = channel 2) - { PTA5, PORT_IS_PWM } // pin J1-12, LW port 10 (PWM capable - TPM 0.2 = channel 3) + { PTC8, DIG_GPIO }, // pin J1-14, LW port 1 + { PTC9, DIG_GPIO }, // pin J1-16, LW port 2 + { PTC0, DIG_GPIO }, // pin J1-3, LW port 3 + { PTC3, DIG_GPIO }, // pin J1-5, LW port 4 + { PTC4, DIG_GPIO }, // pin J1-7, LW port 5 + { PTC11, DIG_GPIO }, // pin J1-15, LW port 6 + { PTA2, PWM_GPIO }, // pin J1-4, LW port 7 (PWM capable - TPM 2.1 = channel 10) + { PTD4, PWM_GPIO }, // pin J1-6, LW port 8 (PWM capable - TPM 0.4 = channel 5) + { PTA12, PWM_GPIO }, // pin J1-8, LW port 9 (PWM capable - TPM 1.0 = channel 7) + { PTA4, PWM_GPIO }, // pin J1-10, LW port 10 (PWM capable - TPM 0.1 = channel 2) + { PTA5, PWM_GPIO } // pin J1-12, LW port 11 (PWM capable - TPM 0.2 = channel 3) // TLC5940 ports start here! // First chip port 0 -> LW port 12