diff options
author | Ben V. Brown <[email protected]> | 2023-06-18 21:58:20 +1000 |
---|---|---|
committer | GitHub <[email protected]> | 2023-06-18 21:58:20 +1000 |
commit | d3d8e3d2d5dca26cec8824e6cbe67e771bf3c0cc (patch) | |
tree | 39a2d0fa7dd4864904128ecbf01d64b08e71e0cc /source/Core/BSP/Miniware/Software_I2C.h | |
parent | a1b9e40f673e530038d1859013d2135fafdfde87 (diff) | |
download | IronOS-d3d8e3d2d5dca26cec8824e6cbe67e771bf3c0cc.tar.gz IronOS-d3d8e3d2d5dca26cec8824e6cbe67e771bf3c0cc.zip |
TS101 (#1695)
* Refactor I2C_SOFT to new #define
* Stitch in some of TS101
Update ShowStartupWarnings.cpp
Update OLED.hpp
Update stm32f1xx_hal_msp.c
Update Setup.cpp
Update Power.cpp
Update Pins.h
Update configuration.h
Power Muxing
Working dual input Voltage handler
Scan mode required for differing injected channels
Inject both dc readings
Update configuration.h
Update configuration.h
Use htim4 for adc control on TS101
Refactor htim names
Add ADC_TRIGGER
Speed up BB I2C a lil
Update configuration.h
Update startup_stm32f103t8ux.S
Update configuration.h
Add LIS2DH clone
LIS2DH gains another clone
Create tooling to allow mapping accelerometers onto different buses
Update startup_stm32f103t8ux.S
Ensure PD IRQ is pulled up
* Stitch in some of TS101
Update ShowStartupWarnings.cpp
Update OLED.hpp
Update stm32f1xx_hal_msp.c
Update Setup.cpp
Update Power.cpp
Update Pins.h
Update configuration.h
Power Muxing
Working dual input Voltage handler
Scan mode required for differing injected channels
Inject both dc readings
Update configuration.h
Update configuration.h
Use htim4 for adc control on TS101
Refactor htim names
Add ADC_TRIGGER
Speed up BB I2C a lil
Update configuration.h
Update startup_stm32f103t8ux.S
Update configuration.h
Add LIS2DH clone
LIS2DH gains another clone
Create tooling to allow mapping accelerometers onto different buses
Update startup_stm32f103t8ux.S
Ensure PD IRQ is pulled up
Allow toggle which button enters PD debug
* Update Pins.h
* Fix hard coded IRQ Pin
Update stm32f1xx_it.c
* Enable EPR
* Tip resistance measurement
* TS101 is a direct drive tip
Update BSP.cpp
* Add S60 and TS101 to builds
Update push.yml
* Update MOVThread.cpp
* Refactor power menu handler
* Correct prescaler
Forgot to update since I changed the period
* Tune in the timer divider for tip control to make PWM less audible
---------
Co-authored-by: discip <[email protected]>
Diffstat (limited to 'source/Core/BSP/Miniware/Software_I2C.h')
-rw-r--r-- | source/Core/BSP/Miniware/Software_I2C.h | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/source/Core/BSP/Miniware/Software_I2C.h b/source/Core/BSP/Miniware/Software_I2C.h index 5b2924ab..3b40f517 100644 --- a/source/Core/BSP/Miniware/Software_I2C.h +++ b/source/Core/BSP/Miniware/Software_I2C.h @@ -10,22 +10,34 @@ #include "BSP.h"
#include "configuration.h"
#include "stm32f1xx_hal.h"
-#ifdef I2C_SOFT
-
-#define SOFT_SCL_HIGH() HAL_GPIO_WritePin(SCL2_GPIO_Port, SCL2_Pin, GPIO_PIN_SET)
-#define SOFT_SCL_LOW() HAL_GPIO_WritePin(SCL2_GPIO_Port, SCL2_Pin, GPIO_PIN_RESET)
-#define SOFT_SDA_HIGH() HAL_GPIO_WritePin(SDA2_GPIO_Port, SDA2_Pin, GPIO_PIN_SET)
-#define SOFT_SDA_LOW() HAL_GPIO_WritePin(SDA2_GPIO_Port, SDA2_Pin, GPIO_PIN_RESET)
-#define SOFT_SDA_READ() (HAL_GPIO_ReadPin(SDA2_GPIO_Port, SDA2_Pin) == GPIO_PIN_SET ? 1 : 0)
-#define SOFT_SCL_READ() (HAL_GPIO_ReadPin(SCL2_GPIO_Port, SCL2_Pin) == GPIO_PIN_SET ? 1 : 0)
+#ifdef I2C_SOFT_BUS_2
+
+#define SOFT_SCL2_HIGH() HAL_GPIO_WritePin(SCL2_GPIO_Port, SCL2_Pin, GPIO_PIN_SET)
+#define SOFT_SCL2_LOW() HAL_GPIO_WritePin(SCL2_GPIO_Port, SCL2_Pin, GPIO_PIN_RESET)
+#define SOFT_SDA2_HIGH() HAL_GPIO_WritePin(SDA2_GPIO_Port, SDA2_Pin, GPIO_PIN_SET)
+#define SOFT_SDA2_LOW() HAL_GPIO_WritePin(SDA2_GPIO_Port, SDA2_Pin, GPIO_PIN_RESET)
+#define SOFT_SDA2_READ() (HAL_GPIO_ReadPin(SDA2_GPIO_Port, SDA2_Pin) == GPIO_PIN_SET ? 1 : 0)
+#define SOFT_SCL2_READ() (HAL_GPIO_ReadPin(SCL2_GPIO_Port, SCL2_Pin) == GPIO_PIN_SET ? 1 : 0)
+
+#endif
+
+#ifdef I2C_SOFT_BUS_1
+#define SOFT_SCL1_HIGH() HAL_GPIO_WritePin(SCL_GPIO_Port, SCL_Pin, GPIO_PIN_SET)
+#define SOFT_SCL1_LOW() HAL_GPIO_WritePin(SCL_GPIO_Port, SCL_Pin, GPIO_PIN_RESET)
+#define SOFT_SDA1_HIGH() HAL_GPIO_WritePin(SDA_GPIO_Port, SDA_Pin, GPIO_PIN_SET)
+#define SOFT_SDA1_LOW() HAL_GPIO_WritePin(SDA_GPIO_Port, SDA_Pin, GPIO_PIN_RESET)
+#define SOFT_SDA1_READ() (HAL_GPIO_ReadPin(SDA_GPIO_Port, SDA_Pin) == GPIO_PIN_SET ? 1 : 0)
+#define SOFT_SCL1_READ() (HAL_GPIO_ReadPin(SCL_GPIO_Port, SCL_Pin) == GPIO_PIN_SET ? 1 : 0)
+
+#endif
+
#define SOFT_I2C_DELAY() \
{ \
- for (int xx = 0; xx < 15; xx++) { \
+ for (int xx = 0; xx < 10; xx++) { \
asm("nop"); \
} \
}
-#endif
// 40 ~= 100kHz; 15 gives around 250kHz or so which is fast _and_ stable
#endif /* BSP_MINIWARE_SOFTWARE_I2C_H_ */
|