OVMS3/OVMS.V3/main/ovms_peripherals.h

196 lines
5.6 KiB
C++

/*
; Project: Open Vehicle Monitor System
; Date: 14th March 2017
;
; Changes:
; 1.0 Initial release
;
; (C) 2011 Michael Stegen / Stegen Electronics
; (C) 2011-2017 Mark Webb-Johnson
; (C) 2011 Sonny Chen @ EPRO/DX
;
; Permission is hereby granted, free of charge, to any person obtaining a copy
; of this software and associated documentation files (the "Software"), to deal
; in the Software without restriction, including without limitation the rights
; to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
; copies of the Software, and to permit persons to whom the Software is
; furnished to do so, subject to the following conditions:
;
; The above copyright notice and this permission notice shall be included in
; all copies or substantial portions of the Software.
;
; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
; THE SOFTWARE.
*/
#ifndef __PERIPHERALS_H__
#define __PERIPHERALS_H__
#include "pcp.h"
#include "spi.h"
#include "esp32system.h"
#ifdef CONFIG_OVMS_COMP_ADC
#include "esp32adc.h"
#endif // #ifdef CONFIG_OVMS_COMP_ADC
#ifdef CONFIG_OVMS_COMP_MCP2515
#include "mcp2515.h"
#endif // #ifdef CONFIG_OVMS_COMP_MCP2515
#ifdef CONFIG_OVMS_COMP_EXTERNAL_SWCAN
#include "swcan.h"
#endif // #ifdef CONFIG_OVMS_COMP_EXTERNAL_SWCAN
#ifdef CONFIG_OVMS_COMP_ESP32CAN
#include "esp32can.h"
#endif // #ifdef CONFIG_OVMS_COMP_ESP32CAN
#ifdef CONFIG_OVMS_COMP_MAX7317
#include "max7317.h"
#endif // #ifdef CONFIG_OVMS_COMP_MAX7317
#ifdef CONFIG_OVMS_COMP_BLUETOOTH
#include "esp32bluetooth.h"
#endif // #ifdef CONFIG_OVMS_COMP_BLUETOOTH
#ifdef CONFIG_OVMS_COMP_WIFI
#include "esp32wifi.h"
#endif // #ifdef CONFIG_OVMS_COMP_WIFI
#ifdef CONFIG_OVMS_COMP_SDCARD
#include "sdcard.h"
#endif // #ifdef CONFIG_OVMS_COMP_SDCARD
#ifdef CONFIG_OVMS_COMP_CELLULAR
#include "ovms_cellular.h"
#endif // #ifdef CONFIG_OVMS_COMP_CELLULAR
#ifdef CONFIG_OVMS_COMP_OBD2ECU
#include "obd2ecu.h"
#endif // #ifdef CONFIG_OVMS_COMP_OBD2ECU
#ifdef CONFIG_OVMS_COMP_EXT12V
#include "ext12v.h"
#endif // #ifdef CONFIG_OVMS_COMP_EXT12V
#define MODULE_GPIO_SW2 0 // SW2: firmware download / factory reset
#define VSPI_PIN_MISO 19
#define VSPI_PIN_MOSI 23
#define VSPI_PIN_CLK 18
#define VSPI_PIN_MCP2515_1_CS 5
#define VSPI_PIN_MAX7317_CS 21
#define VSPI_PIN_MCP2515_2_CS 27
#define VSPI_PIN_MCP2515_1_INT 34
#define VSPI_PIN_MCP2515_2_INT 35
#define SDCARD_PIN_CLK 14
#define SDCARD_PIN_CMD 15
#define SDCARD_PIN_D0 2
#define SDCARD_PIN_CD 39
#define ESP32CAN_PIN_TX 25
#define ESP32CAN_PIN_RX 26
#define MAX7317_MDM_EN 0
#define MAX7317_SW_CTL 1
#define MAX7317_CAN1_EN 2
#define MAX7317_MDM_DTR 3
#define MAX7317_EGPIO_1 2
#define MAX7317_EGPIO_2 3
#define MAX7317_EGPIO_3 4
#define MAX7317_EGPIO_4 5
#define MAX7317_EGPIO_5 6
#define MAX7317_EGPIO_6 7
#define MAX7317_EGPIO_7 8
#define MAX7317_EGPIO_8 9
#ifdef CONFIG_OVMS_COMP_EXTERNAL_SWCAN
#define MAX7317_SWCAN_MODE0 4 // EGPIO_3
#define MAX7317_SWCAN_MODE1 5 // EGPIO_4
#define VSPI_PIN_MCP2515_SWCAN_CS 33 // EXP2
#define VSPI_PIN_MCP2515_SWCAN_INT 32 // EXP1
#define MAX7317_SWCAN_STATUS_LED 7 // EGPIO_6
#define MAX7317_SWCAN_TX_LED 8 // EGPIO_7
#define MAX7317_SWCAN_RX_LED 9 // EGPIO_8
#endif // #ifdef CONFIG_OVMS_COMP_EXTERNAL_SWCAN
#ifdef CONFIG_OVMS_HW_BASE_3_0
#define MODEM_GPIO_RX 16
#define MODEM_GPIO_TX 17
#endif // #ifdef CONFIG_OVMS_HW_BASE_3_0
#ifdef CONFIG_OVMS_HW_BASE_3_1
#define MODEM_GPIO_RX 13
#define MODEM_GPIO_TX 4
#endif // #ifdef CONFIG_OVMS_HW_BASE_3_1
#define MODEM_EGPIO_PWR 0
#define MODEM_EGPIO_DTR 3
class Peripherals : public InternalRamAllocated
{
public:
Peripherals();
~Peripherals();
public:
esp32system* m_esp32;
spi* m_spibus;
#ifdef CONFIG_OVMS_COMP_MAX7317
max7317* m_max7317;
#endif // #ifdef CONFIG_OVMS_COMP_MAX7317
#ifdef CONFIG_OVMS_COMP_ESP32CAN
esp32can* m_esp32can;
#endif // #ifdef CONFIG_OVMS_COMP_ESP32CAN
#ifdef CONFIG_OVMS_COMP_WIFI
esp32wifi* m_esp32wifi;
#endif // #ifdef CONFIG_OVMS_COMP_WIFI
#ifdef CONFIG_OVMS_COMP_BLUETOOTH
esp32bluetooth* m_esp32bluetooth;
#endif // #ifdef CONFIG_OVMS_COMP_BLUETOOTH
#ifdef CONFIG_OVMS_COMP_ADC
esp32adc* m_esp32adc;
#endif // #ifdef CONFIG_OVMS_COMP_ADC
#ifdef CONFIG_OVMS_COMP_MCP2515
mcp2515* m_mcp2515_1;
mcp2515* m_mcp2515_2;
#endif // #ifdef CONFIG_OVMS_COMP_MCP2515
#ifdef CONFIG_OVMS_COMP_EXTERNAL_SWCAN
swcan* m_mcp2515_swcan;
#endif // #ifdef CONFIG_OVMS_COMP_EXTERNAL_SWCAN
#ifdef CONFIG_OVMS_COMP_SDCARD
sdcard* m_sdcard;
#endif // #ifdef CONFIG_OVMS_COMP_SDCARD
#ifdef CONFIG_OVMS_COMP_CELLULAR
modem* m_cellular_modem;
#endif // #ifdef CONFIG_OVMS_COMP_CELLULAR
#ifdef CONFIG_OVMS_COMP_OBD2ECU
obd2ecu* m_obd2ecu;
#endif // #ifdef CONFIG_OVMS_COMP_OBD2ECU
#ifdef CONFIG_OVMS_COMP_EXT12V
ext12v* m_ext12v;
#endif // #ifdef CONFIG_OVMS_COMP_EXT12V
};
extern Peripherals* MyPeripherals;
#endif //#ifndef __PERIPHERALS_H__