Expose ISO jumper state over USB.
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "i2c_addresses.h"
|
#include "i2c_addresses.h"
|
||||||
#include "i2c.h"
|
#include "i2c.h"
|
||||||
|
#include "iso_jumper.h"
|
||||||
|
|
||||||
void SetError(uint8_t error);
|
void SetError(uint8_t error);
|
||||||
void SetGenericError();
|
void SetGenericError();
|
||||||
@@ -36,5 +37,8 @@ void BridgeProtocolHandler()
|
|||||||
BridgeTxSize = 0;
|
BridgeTxSize = 0;
|
||||||
TEST_LED_SET(BridgeRxBuffer[1]);
|
TEST_LED_SET(BridgeRxBuffer[1]);
|
||||||
break;
|
break;
|
||||||
}
|
case BRIDGE_COMMAND_GET_ISO_JUMPER_STATE:
|
||||||
|
BridgeTxBuffer[0] = IsoJumperState;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
#define BRIDGE_COMMAND_GET_KEY_STATES 0
|
#define BRIDGE_COMMAND_GET_KEY_STATES 0
|
||||||
#define BRIDGE_COMMAND_SET_LED 1
|
#define BRIDGE_COMMAND_SET_LED 1
|
||||||
|
#define BRIDGE_COMMAND_GET_ISO_JUMPER_STATE 2
|
||||||
|
|
||||||
// Variables:
|
// Variables:
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
#include "fsl_i2c.h"
|
#include "fsl_i2c.h"
|
||||||
#include "fsl_clock.h"
|
#include "fsl_clock.h"
|
||||||
#include "i2c.h"
|
#include "i2c.h"
|
||||||
|
#include "iso_jumper.h"
|
||||||
|
|
||||||
void InitI2c() {
|
void InitI2c() {
|
||||||
port_pin_config_t pinConfig = {
|
port_pin_config_t pinConfig = {
|
||||||
@@ -41,5 +42,6 @@ void InitPeripherials(void)
|
|||||||
{
|
{
|
||||||
InitLedDriver();
|
InitLedDriver();
|
||||||
InitTestLed();
|
InitTestLed();
|
||||||
|
InitIsoJumper();
|
||||||
InitI2c();
|
InitI2c();
|
||||||
}
|
}
|
||||||
|
|||||||
14
left/src/iso_jumper.c
Normal file
14
left/src/iso_jumper.c
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
#include "iso_jumper.h"
|
||||||
|
#include "fsl_port.h"
|
||||||
|
|
||||||
|
void InitIsoJumper() {
|
||||||
|
CLOCK_EnableClock(ISO_JUMPER_INPUT_CLOCK);
|
||||||
|
PORT_SetPinConfig(ISO_JUMPER_INPUT_PORT, ISO_JUMPER_INPUT_PIN,
|
||||||
|
&(port_pin_config_t){.pullSelect=kPORT_PullDown, .mux=kPORT_MuxAsGpio});
|
||||||
|
GPIO_PinInit(ISO_JUMPER_INPUT_GPIO, ISO_JUMPER_INPUT_PIN, &(gpio_pin_config_t){kGPIO_DigitalInput});
|
||||||
|
|
||||||
|
CLOCK_EnableClock(ISO_JUMPER_OUTPUT_CLOCK);
|
||||||
|
PORT_SetPinConfig(ISO_JUMPER_OUTPUT_PORT, ISO_JUMPER_OUTPUT_PIN,
|
||||||
|
&(port_pin_config_t){.pullSelect=kPORT_PullDisable, .mux=kPORT_MuxAsGpio});
|
||||||
|
GPIO_PinInit(ISO_JUMPER_OUTPUT_GPIO, ISO_JUMPER_OUTPUT_PIN, &(gpio_pin_config_t){kGPIO_DigitalOutput, 1});
|
||||||
|
}
|
||||||
30
left/src/iso_jumper.h
Normal file
30
left/src/iso_jumper.h
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
#ifndef __ISO_JUMPER_H__
|
||||||
|
#define __ISO_JUMPER_H__
|
||||||
|
|
||||||
|
// Includes:
|
||||||
|
|
||||||
|
#include "fsl_gpio.h"
|
||||||
|
|
||||||
|
// Macros:
|
||||||
|
|
||||||
|
#define ISO_JUMPER_INPUT_GPIO GPIOB
|
||||||
|
#define ISO_JUMPER_INPUT_PORT PORTB
|
||||||
|
#define ISO_JUMPER_INPUT_CLOCK kCLOCK_PortB
|
||||||
|
#define ISO_JUMPER_INPUT_PIN 13
|
||||||
|
#define ISO_JUMPER_INPUT_IRQ PORTB_IRQn
|
||||||
|
#define ISO_JUMPER_INPUT_IRQ_HANDLER PORTB_IRQHandler
|
||||||
|
|
||||||
|
#define ISO_JUMPER_OUTPUT_GPIO GPIOA
|
||||||
|
#define ISO_JUMPER_OUTPUT_PORT PORTA
|
||||||
|
#define ISO_JUMPER_OUTPUT_CLOCK kCLOCK_PortA
|
||||||
|
#define ISO_JUMPER_OUTPUT_PIN 6
|
||||||
|
#define ISO_JUMPER_OUTPUT_IRQ PORTA_IRQn
|
||||||
|
#define ISO_JUMPER_OUTPUT_IRQ_HANDLER PORTA_IRQHandler
|
||||||
|
|
||||||
|
#define ISO_JUMPER_IS_ENABLED !GPIO_ReadPinInput(ISO_JUMPER_INPUT_GPIO, ISO_JUMPER_INPUT_PIN)
|
||||||
|
|
||||||
|
// Functions:
|
||||||
|
|
||||||
|
extern void InitIsoJumper();
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -9,6 +9,7 @@
|
|||||||
#include "i2c.h"
|
#include "i2c.h"
|
||||||
#include "init_peripherials.h"
|
#include "init_peripherials.h"
|
||||||
#include "bridge_protocol_handler.h"
|
#include "bridge_protocol_handler.h"
|
||||||
|
#include "iso_jumper.h"
|
||||||
|
|
||||||
key_matrix_t keyMatrix = {
|
key_matrix_t keyMatrix = {
|
||||||
.colNum = KEYBOARD_MATRIX_COLS_NUM,
|
.colNum = KEYBOARD_MATRIX_COLS_NUM,
|
||||||
@@ -30,6 +31,7 @@ key_matrix_t keyMatrix = {
|
|||||||
{PORTA, GPIOA, kCLOCK_PortA, 4}
|
{PORTA, GPIOA, kCLOCK_PortA, 4}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
uint8_t IsoJumperState;
|
||||||
|
|
||||||
i2c_slave_config_t slaveConfig;
|
i2c_slave_config_t slaveConfig;
|
||||||
i2c_slave_handle_t slaveHandle;
|
i2c_slave_handle_t slaveHandle;
|
||||||
@@ -63,6 +65,7 @@ int main(void)
|
|||||||
{
|
{
|
||||||
InitClock();
|
InitClock();
|
||||||
InitPeripherials();
|
InitPeripherials();
|
||||||
|
IsoJumperState = ISO_JUMPER_IS_ENABLED;
|
||||||
|
|
||||||
I2C_SlaveGetDefaultConfig(&slaveConfig);
|
I2C_SlaveGetDefaultConfig(&slaveConfig);
|
||||||
slaveConfig.slaveAddress = I2C_ADDRESS_LEFT_KEYBOARD_HALF;
|
slaveConfig.slaveAddress = I2C_ADDRESS_LEFT_KEYBOARD_HALF;
|
||||||
|
|||||||
@@ -13,5 +13,6 @@
|
|||||||
// Variables:
|
// Variables:
|
||||||
|
|
||||||
extern key_matrix_t keyMatrix;
|
extern key_matrix_t keyMatrix;
|
||||||
|
extern uint8_t IsoJumperState;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ void WriteEeprom();
|
|||||||
void ReadEeprom();
|
void ReadEeprom();
|
||||||
void ReadMergeSensor();
|
void ReadMergeSensor();
|
||||||
void ReadLedJumper();
|
void ReadLedJumper();
|
||||||
|
void ReadIsoJumper();
|
||||||
|
|
||||||
// Functions for setting error statuses
|
// Functions for setting error statuses
|
||||||
|
|
||||||
@@ -69,6 +70,9 @@ void UsbProtocolHandler()
|
|||||||
case USB_COMMAND_READ_LED_JUMPER:
|
case USB_COMMAND_READ_LED_JUMPER:
|
||||||
ReadLedJumper();
|
ReadLedJumper();
|
||||||
break;
|
break;
|
||||||
|
case USB_COMMAND_READ_ISO_JUMPER:
|
||||||
|
ReadIsoJumper();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -196,3 +200,14 @@ void ReadLedJumper()
|
|||||||
{
|
{
|
||||||
SetResponseByte(LED_JUMPER_IS_ENABLED);
|
SetResponseByte(LED_JUMPER_IS_ENABLED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ReadIsoJumper()
|
||||||
|
{
|
||||||
|
uint8_t txBuffer[] = {2};
|
||||||
|
I2cWrite(I2C_MAIN_BUS_BASEADDR, I2C_ADDRESS_LEFT_KEYBOARD_HALF, txBuffer, sizeof(txBuffer));
|
||||||
|
|
||||||
|
uint8_t rxBuffer[1];
|
||||||
|
I2cRead(I2C_MAIN_BUS_BASEADDR, I2C_ADDRESS_LEFT_KEYBOARD_HALF, rxBuffer, sizeof(rxBuffer));
|
||||||
|
|
||||||
|
SetResponseByte(rxBuffer[0]);
|
||||||
|
}
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
#define USB_COMMAND_READ_EEPROM 6
|
#define USB_COMMAND_READ_EEPROM 6
|
||||||
#define USB_COMMAND_READ_MERGE_SENSOR 7
|
#define USB_COMMAND_READ_MERGE_SENSOR 7
|
||||||
#define USB_COMMAND_READ_LED_JUMPER 8
|
#define USB_COMMAND_READ_LED_JUMPER 8
|
||||||
|
#define USB_COMMAND_READ_ISO_JUMPER 9
|
||||||
|
|
||||||
// Functions:
|
// Functions:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user