Make the LED driver power every LED at full blast.
This commit is contained in:
@@ -3,4 +3,8 @@
|
|||||||
|
|
||||||
#define LEFT_KEYBOARD_HALF_I2C_ADDRESS_7BIT 8
|
#define LEFT_KEYBOARD_HALF_I2C_ADDRESS_7BIT 8
|
||||||
|
|
||||||
|
// The 7-bit I2C addresses of the IS31FL3731 LED driver range from 0x74 to 0x77
|
||||||
|
#define LEFT_LED_DRIVER_ADDRESS_7BIT 0b1110100
|
||||||
|
#define RIGHT_LED_DRIVER_ADDRESS_7BIT 0b1110111
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -36,9 +36,9 @@ void BOARD_InitPins(void)
|
|||||||
{
|
{
|
||||||
// Ungate ports.
|
// Ungate ports.
|
||||||
CLOCK_EnableClock(kCLOCK_PortA); // LEDs
|
CLOCK_EnableClock(kCLOCK_PortA); // LEDs
|
||||||
CLOCK_EnableClock(kCLOCK_PortB); // SW3, I2C
|
CLOCK_EnableClock(kCLOCK_PortB); // SW3
|
||||||
CLOCK_EnableClock(kCLOCK_PortC); // SW2
|
CLOCK_EnableClock(kCLOCK_PortC); // SW2
|
||||||
CLOCK_EnableClock(kCLOCK_PortD); // LEDs
|
CLOCK_EnableClock(kCLOCK_PortD); // LEDs, I2C
|
||||||
CLOCK_EnableClock(kCLOCK_PortE); // UART1 for OpenSDA
|
CLOCK_EnableClock(kCLOCK_PortE); // UART1 for OpenSDA
|
||||||
|
|
||||||
// Set up UART1 for OpenSDA.
|
// Set up UART1 for OpenSDA.
|
||||||
@@ -78,9 +78,9 @@ void BOARD_InitPins(void)
|
|||||||
pinConfig.pullSelect = kPORT_PullUp;
|
pinConfig.pullSelect = kPORT_PullUp;
|
||||||
pinConfig.openDrainEnable = kPORT_OpenDrainEnable;
|
pinConfig.openDrainEnable = kPORT_OpenDrainEnable;
|
||||||
|
|
||||||
PORT_SetPinConfig(PORTB, 2, &pinConfig);
|
PORT_SetPinConfig(PORTD, 2, &pinConfig);
|
||||||
PORT_SetPinConfig(PORTB, 3, &pinConfig);
|
PORT_SetPinConfig(PORTD, 3, &pinConfig);
|
||||||
|
|
||||||
PORT_SetPinMux(PORTB, 2, kPORT_MuxAlt2);
|
PORT_SetPinMux(PORTD, 2, kPORT_MuxAlt7);
|
||||||
PORT_SetPinMux(PORTB, 3, kPORT_MuxAlt2);
|
PORT_SetPinMux(PORTD, 3, kPORT_MuxAlt7);
|
||||||
}
|
}
|
||||||
|
|||||||
56
right/main.c
56
right/main.c
@@ -3,10 +3,63 @@
|
|||||||
#include "include/board/board.h"
|
#include "include/board/board.h"
|
||||||
#include "include/board/pin_mux.h"
|
#include "include/board/pin_mux.h"
|
||||||
#include "usb_composite_device.h"
|
#include "usb_composite_device.h"
|
||||||
|
#include "i2c.h"
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
#include "fsl_common.h"
|
||||||
|
#include "fsl_port.h"
|
||||||
|
|
||||||
void main(void)
|
void tx(uint8_t txBuffer[], uint8_t size)
|
||||||
{
|
{
|
||||||
|
i2c_master_transfer_t masterXfer;
|
||||||
|
masterXfer.slaveAddress = LEFT_LED_DRIVER_ADDRESS_7BIT;
|
||||||
|
masterXfer.direction = kI2C_Write;
|
||||||
|
masterXfer.subaddress = 0;
|
||||||
|
masterXfer.subaddressSize = 0;
|
||||||
|
masterXfer.data = txBuffer;
|
||||||
|
masterXfer.dataSize = size;
|
||||||
|
masterXfer.flags = kI2C_TransferDefaultFlag;
|
||||||
|
I2C_MasterTransferBlocking(EXAMPLE_I2C_MASTER_BASEADDR, &masterXfer);
|
||||||
|
masterXfer.slaveAddress = RIGHT_LED_DRIVER_ADDRESS_7BIT;
|
||||||
|
I2C_MasterTransferBlocking(EXAMPLE_I2C_MASTER_BASEADDR, &masterXfer);
|
||||||
|
}
|
||||||
|
|
||||||
|
void write(uint8_t reg, uint8_t val)
|
||||||
|
{
|
||||||
|
uint8_t txBuffer[] = {0, 0};
|
||||||
|
txBuffer[0] = reg;
|
||||||
|
txBuffer[1] = val;
|
||||||
|
tx(txBuffer, sizeof(txBuffer));
|
||||||
|
}
|
||||||
|
|
||||||
|
void InitLedDisplay()
|
||||||
|
{
|
||||||
|
PORT_SetPinMux(PORTA, 2U, kPORT_MuxAsGpio);
|
||||||
|
|
||||||
|
gpio_pin_config_t led_config = {
|
||||||
|
.pinDirection = kGPIO_DigitalOutput,
|
||||||
|
.outputLogic = 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
GPIO_PinInit(GPIOA, 2U, &led_config);
|
||||||
|
GPIO_SetPinsOutput(GPIOA, 0 << 2U);
|
||||||
|
|
||||||
|
write(0xfd, 0x0b); // point to page 9
|
||||||
|
write(0x0a, 0x01); // set shutdown mode to normal
|
||||||
|
write(0xfd, 0x00); // point to page 0
|
||||||
|
|
||||||
|
uint8_t i;
|
||||||
|
for (i=0x00; i<=0x11; i++) {
|
||||||
|
write(i, 0xff);
|
||||||
|
}
|
||||||
|
for (i=0x12; i<=0x23; i++) {
|
||||||
|
write(i, 0x00);
|
||||||
|
}
|
||||||
|
for (i=0x24; i<=0xb3; i++) {
|
||||||
|
write(i, 0xff);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void main() {
|
||||||
BOARD_InitPins();
|
BOARD_InitPins();
|
||||||
BOARD_BootClockRUN();
|
BOARD_BootClockRUN();
|
||||||
BOARD_InitDebugConsole();
|
BOARD_InitDebugConsole();
|
||||||
@@ -18,6 +71,7 @@ void main(void)
|
|||||||
sourceClock = CLOCK_GetFreq(I2C_MASTER_CLK_SRC);
|
sourceClock = CLOCK_GetFreq(I2C_MASTER_CLK_SRC);
|
||||||
I2C_MasterInit(EXAMPLE_I2C_MASTER_BASEADDR, &masterConfig, sourceClock);
|
I2C_MasterInit(EXAMPLE_I2C_MASTER_BASEADDR, &masterConfig, sourceClock);
|
||||||
|
|
||||||
|
InitLedDisplay();
|
||||||
InitUsb();
|
InitUsb();
|
||||||
|
|
||||||
while (1);
|
while (1);
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ static usb_mouse_report_t UsbMouseReport;
|
|||||||
static uint8_t scrollCounter = 0;
|
static uint8_t scrollCounter = 0;
|
||||||
static volatile usb_status_t UsbMouseAction(void)
|
static volatile usb_status_t UsbMouseAction(void)
|
||||||
{
|
{
|
||||||
uint8_t i2cBuffer[I2C_DATA_LENGTH];
|
/* uint8_t i2cBuffer[I2C_DATA_LENGTH];
|
||||||
i2c_master_transfer_t masterXfer;
|
i2c_master_transfer_t masterXfer;
|
||||||
masterXfer.slaveAddress = LEFT_KEYBOARD_HALF_I2C_ADDRESS_7BIT;
|
masterXfer.slaveAddress = LEFT_KEYBOARD_HALF_I2C_ADDRESS_7BIT;
|
||||||
masterXfer.direction = kI2C_Read;
|
masterXfer.direction = kI2C_Read;
|
||||||
@@ -52,7 +52,7 @@ static volatile usb_status_t UsbMouseAction(void)
|
|||||||
masterXfer.dataSize = I2C_DATA_LENGTH;
|
masterXfer.dataSize = I2C_DATA_LENGTH;
|
||||||
masterXfer.flags = kI2C_TransferDefaultFlag;
|
masterXfer.flags = kI2C_TransferDefaultFlag;
|
||||||
I2C_MasterTransferBlocking(EXAMPLE_I2C_MASTER_BASEADDR, &masterXfer);
|
I2C_MasterTransferBlocking(EXAMPLE_I2C_MASTER_BASEADDR, &masterXfer);
|
||||||
|
*/
|
||||||
UsbMouseReport.buttons = 0;
|
UsbMouseReport.buttons = 0;
|
||||||
UsbMouseReport.x = 0;//i2cBuffer[1] - i2cBuffer[0];
|
UsbMouseReport.x = 0;//i2cBuffer[1] - i2cBuffer[0];
|
||||||
UsbMouseReport.y = 0;
|
UsbMouseReport.y = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user