I2C hang recover function added
Dependencies: UniGraphic mbed vt100
In this version, check_i2c_pins function was added in edge_mgr.cpp.
プログラムの起動時、I2Cモジュールを初期化する前に、I2Cに使用するピンの電位を確認し
もし一方でも Low に張り付いていた場合、SCL を GPIO 出力に設定して
所定回数 (I2C_UNLOCK_TRIAL_CYCLE) 反転させることにより、疑似リセットクロックを生成します。
その後は、通常の起動手順に復帰し、以降はこれまでと同様の動作をします。
edge_utils/edge_pin.h
- Committer:
- Rhyme
- Date:
- 2018-04-03
- Revision:
- 0:d895cd1cd897
File content as of revision 0:d895cd1cd897:
#ifndef _EDGE_PIN_H_ #define _EDGE_PIN_H_ #if defined (TARGET_KL25Z) #define PIN_INTR PTD4 #define PIN_ASR_RESET PTA13 #define PIN_SCK PTD1 #define PIN_MOSI PTD2 #define PIN_MISO PTD3 #define PIN_CS PTD0 /* ILI9341 */ #define PIN_CS_TFT PTC7 #define PIN_RESET_TFT PTC4 #define PIN_DC_TFT PTC0 #define PIN_BL_TFT PTC3 #define PIN_FRDM_LEDR PTB18 #define PIN_FRDM_LEDG PTB19 #define PIN_FRDM_LEDB PTD1 /* conflict with SCK orz */ /* on board I2C0 */ // #define PIN_I2C0_SCL PTE24 // #define PIN_I2C0_SDA PTE25 /* external I2C0 */ #define PIN_I2C0_SCL PTC8 #define PIN_I2C0_SDA PTC9 #define PIN_I2C1_SCL PTE1 #define PIN_I2C1_SDA PTE0 #define PIN_AN0 PTB0 #define PIN_AN1 PTB1 #define PIN_AN2 PTB2 #define PIN_LED_R PTA5 #define PIN_LED_G PTA4 #define PIN_LED_B PTA12 #define PIN_PRESS_EN PTC5 #endif /* TARGET_KL25Z */ #endif /* _EDGE_PIN_H_ */