Commit Graph

153 Commits

Author SHA1 Message Date
Andrey G 04c7ad67aa Some fixes prior to board pull request (#2291)
* ChibiOS: add support for STM32F765

This chip is used on Subaru EG33 p'n'p RusEFI board from Dron_Gus

* drivers: gpio: mc33810: commulative update

- use BIT macro
- fix wake-up method
- fix order of arguments in _add function

* port: stm32f4/7: detectCanDevice check for enabled interfaces only

* ADC: fix internal array size

internalAdcIndexByHardwareIndex should be EFI_ADC_LAST_CHANNEL size
couse adc_channel_e is used as index

* status LEDs: support status LEDs that driven by low level
2021-02-06 12:22:57 -05:00
rusefillc d824f3d12a let's build for h7 2021-02-05 21:37:33 -05:00
Andrey G f962a7bd64 Gpio cleanup #2 (#1530)
* pin repository: PIN_USED size in now equal to brain_pin_e enum size

expect special values...

* smart gpios: register gpio chip to given base (no auto-allocation)

* drivers: gpio: core: add gpiochip_unregister()

* drivers: gpio: MC33810 intergation

* smart_gpio.cpp: cleanup ifdef mess, minor cleanups

* gpio: core: additional check for gpio ranges overlaps

* unit test: gpio chip: fixed and extended
2021-01-06 18:29:47 -05:00
Andrey G 119ac4f6f5 TLE8888: temp fix of #2065 (#2079) 2020-12-14 15:33:27 -05:00
Andrey G 4980fc49d9 Fixes after clenup (#2019)
* We still need consoleEventListener for boards with EFI_CONSOLE_SERIAL_DEVICE

* MC33810: add MC_ prefix for command defines

As CMD_PWM define is now used by console command
2020-12-05 11:54:09 -05:00
Matthew Kennedy 2792828dce Remove lockAnyContext, replace with CriticalSectionLocker (#1938)
* switch to CriticalSectionLocker

* that's just about all

* clean up last usage

* include hpp for sim

* need the cpp wrappers in the makefile too

* include dir

* include
2020-11-19 06:56:02 -05:00
Andrey G 39bc608ce5 TLE8888: disable diagnostic for OUTPUT8..13 (#1956)
Enabled pull-down affects analog inputs that shares same pins.
Disable it.
DOTO: enable diagnostic if ouput requested through tle8888_setPadMode
2020-11-17 18:33:37 -05:00
Andrey G 2f891cc23a Tle8888 stepper (#1936)
* TLE8888: enable PP mode for OUT21..24 in case of useTLE8888_stepper

* Lada Kalina is a test mule for stepper idle
2020-11-10 14:16:46 -05:00
Andrey G e14fa4b189 Tle8888 small update (#1908)
* TLE8888: add support MR switching from SW

Main Relay has limitation - it is always active while KEY=1. When
KEY=0 MR can be switched on from SW.

* TLE8888: support reading of KEY and WAKE inputs

* Rusefi enums: add new TLE8888 pins
2020-11-01 22:19:55 -05:00
Andrey G 88e830d635 Tle8888 big update 1 (#1892)
* smart gpio: fix tle8888 direct pin mapping for MRE

* MRE: use TLE8888 pins instead of MCU gpios that drives TLE8888

* TLE8888: cleanup

* TLE8888: do not reset driver private data on WD/undervoltage reset

* TLE8888: diagnostic updates

* TLE8888 driver: BIG driver rework

* TLE8888: check SPI answers for abnormal states

Reply with other than requested register can be a sign of:
-Power-On-Reset, then OpStat0 will be replyed
-WatchDog reset, then FWDStat1 will be replyed
-Invalid communication frame, then Diag0 will be replyed

Keep tracking last accessed register and check with the next reply.

* TLE8888: debug clean-up

* TLE8888: implement spi array write

This reduce CS inactive state time between two consequent accesses
from 8.8 uS to 1.4 uS

* TLE8888: fix PP outputs in OD mode

* TLE8888: cleanup register definitions

* TLE8888: run separate driver thread for each chip instance

Calculating poll interval for few chips become more complex, avoid
this running thread for each device.

* TLE8888: fix cypress and kinetic compilation

Both platforms define its own MAX and cause redifination error if
common.h is included in driver.

* MRE: update mapping.yaml and fix direct pin mapping for TLE8888

* TLE8888: diagnnostic: disable switch off in case of overcurrent

For all output, use current limiting instead

* TLE8888: check for overvoltage on OUT8..OUT13

* TLE8888: add TODO note about how to recover from failure condition

Currently TLE8888 automaticly recovers only from overcurrent and
(may be) overtemperature conditions.
Short to bat cause output disable (bit in OECONFIG is reset) and
needs driver/host intervention.

* TLE8888: save few bytes of RAM

* TLE8888: Lada Kalina is test mule for IDLE stepper on TLE8888

Don't forget to enable PP mode for TLE8888 outputs 21..24:
uncomment line 1087 in tle8888.c

* TLE8888: reorder code, cleanup

* TLE8888: mode all debug/statisctic to per-chip struct

* TLE8888: rework poll interval calculation

* MRE: use TLE8888 pins instead of MCU gpios that drives TLE8888 #2
2020-10-23 12:25:30 -04:00
rusefi d4d36f9153 Hellen says drivers 2020-09-07 12:00:16 -04:00
rusefi e052c2b1e4 dead code 2020-08-31 20:52:25 -04:00
rusefi 36f13323ea more readable error message thank you Matt! 2020-05-23 17:20:46 -04:00
rusefi 6453e891e6 "TLE8888 SR Unexpected response" does not work as intended fix #1466 2020-05-22 22:56:19 -04:00
rusefi bf8ceda67d "TLE8888 SR Unexpected response" does not work as intended #1466 2020-05-22 08:23:49 -04:00
rusefi 14b0b5dc4c more info into error message 2020-05-22 01:05:07 -04:00
dron0gus 225f529b37 tle6240: fix crash in driver wake routine (#1435) 2020-05-15 15:54:41 -04:00
rusefi f081c8eef4 new LED logic: constant WARNING if VBATT is below 7v 2020-05-13 01:52:27 -04:00
rusefi 5c91d96ce6 new LED logic: constant WARNING if VBATT is below 7v 2020-05-13 01:17:48 -04:00
rusefi adafa0a0d8 I think it's OK to crash very visibly if no proper SPI response 2020-05-13 01:07:11 -04:00
rusefi 5240384624 hiding diag code which was messing with GP2/GP3 i.e. TLE8888_PIN_22 TLE8888_PIN_23 2020-05-11 00:53:50 -04:00
rusefi db8f76bba5 trying to guess 2020-05-09 20:45:20 -04:00
rusefi 7aa195e86e tle8888 restoration 2020-05-09 16:59:54 -04:00
rusefi 137a41282b mre 050 compromise 2020-05-09 09:40:00 -04:00
rusefi bf2d29bff3 Revert "Tle8888 for mre 050 (#1408)"
This reverts commit bd0a84b6
2020-05-08 23:58:34 -04:00
dron0gus bd0a84b62d Tle8888 for mre 050 (#1408)
* tle8888: fix tle8888_chip_init flow

* tle8888: set correct pin modes for mcu gpios in tle8888_chip_init

Direct drive, reset, inj_en and ign_en gpio should be outputs
2020-05-08 19:05:30 -04:00
dron0gus 3fd4d9ffc3 tle8888: on MRE 0.5.0 we can drive ING_EN and INJ_EN from STM (#1407)
Do it!
2020-05-08 17:47:41 -04:00
dron0gus baef1e4a73 Tle8888 stage 1 (#1404)
* TLE8888: implement diagnostic

* TLE8888: add support for PP mode on OUT21..24

* tle8888: use helpers to extract register value from 16bit reply
2020-05-07 09:49:57 -04:00
dron0gus 7007627b70 [SAFE] Debug cleanups (#1403)
* electronic throttle: inprove debug

* idle thread: show debug info for configured idle driver

* gpio-chips: make private functions static
2020-05-06 20:06:50 -04:00
rusefi 95d1771bc5 steps towards tle8888 2020-05-06 19:20:12 -04:00
rusefi b607400984 TLE8888 mode flexibility 2020-04-23 16:57:37 -04:00
rusefi c1ab5ca585 smart gpio clean-up 2020-04-06 14:13:29 -04:00
rusefi 070f6b52b8 code style 2020-04-06 12:34:21 -04:00
rusEfi d564b4e475 clean-up by Dron0Gus 2020-04-06 11:55:44 -04:00
rusefi b40d4d588d code style 2020-04-01 21:32:21 -04:00
rusEfi 040e040b4a verboseTLE8888 2020-02-27 02:11:20 -05:00
rusefi 4cf0bfb03b TLE8888 watchdog #917 2020-02-12 19:32:40 -05:00
rusefi c5e69cedc4 #917 progress 2020-02-12 17:37:45 -05:00
rusefi 58e711d683 and fixing build now! 2020-02-12 17:23:22 -05:00
rusefi c78ea7da6c tle8888 refactoring already - extracting method 2020-02-12 17:19:58 -05:00
dron0gus 65bc3b1744 tle8888: disable diagnostic for outputs (#1144)
DS is not clear, may be tle8888 clears OE bit in case of error on
output.
2020-02-12 08:53:35 -05:00
rusEfi ea4714e0c2 tle8888 dump at init 2020-02-12 08:34:26 -05:00
rusEfi 37896cb927 have nothing else to do :( 2020-02-12 08:24:24 -05:00
rusEfi 61da49b3c5 tle8888 output fix 2020-02-12 08:15:55 -05:00
rusEfi 41e10c177c FATAL error running MRE blinking test #1137
typo
2020-02-11 17:52:01 -05:00
rusEfi 9d5e4684b6 Merge branch 'master' of https://github.com/rusefi/rusefi 2020-02-11 17:49:49 -05:00
rusEfi 21853eb500 FATAL error running MRE blinking test #1137
still not the fix?
2020-02-11 17:49:39 -05:00
dron0gus 919034ca3e Tle8888 wd (#1143)
* tle8888: watchdog: debug over TS: remove tailing register address

* tle8888: ann console command to dump all regs
2020-02-11 17:49:14 -05:00
dron0gus ee56957205 tle8888: watchdog: debug using TS (#1142) 2020-02-11 16:56:52 -05:00
dron0gus 9fe8fe86a0 tle8888: watchdog: use FWDRespSyncCmd for last response (#1140) 2020-02-11 15:49:17 -05:00