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
dron0gus
59bb70f638
tle8888: watchdog: do not overwrite defaults, response table fix ( #1139 )
2020-02-11 15:36:53 -05:00
rusEfi
0c2d00b455
TLE8888 watchdog #917
...
still no luck. responses 0x85c and 0xa5c
2020-02-11 00:54:15 -05:00
rusEfi
41f274b73c
WdDiag
2020-02-10 21:28:55 -05:00
rusEfi
edc7ad69ae
TLE8888 watchdog #917
...
time to start working?!
2020-02-10 18:32:32 -05:00
rusEfi
948cc7743e
TLE8888 watchdog #917
...
maybe better start-up sequence
2020-02-10 17:08:37 -05:00
rusEfi
fdb9e97fd3
TLE8888 watchdog #917
2020-02-10 14:37:52 -05:00
rusEfi
ce54ae9497
TLE8888 watchdog #917
...
window watchdog progress
2020-02-10 13:24:09 -05:00
rusefi
223fe8ab70
TLE8888 watchdog #917
...
first steps
2020-02-10 11:11:00 -05:00
rusefi
bc118ecede
code style
2020-02-10 09:29:11 -05:00
rusEfi
cfd7397e46
FATAL error running MRE blinking test fix #1137
2020-02-09 21:16:31 -05:00
rusEfi
3c874398ff
tle8888 start-up clean-up
2020-02-09 20:41:25 -05:00
rusefi
586eb9e6e3
code style: trying to get used to this syntax
2020-01-22 00:45:09 -05:00
rusefi
a222ecdfe1
happy new year unification
2020-01-13 21:57:43 -05:00
dron0gus
406703b1b5
Gpio diagnostic ( #1100 )
...
* enums: add brain_pin_diag_e enum for pin diagnostic
* gpio core: add pin diagnostic call
* gpio: mc33810: add diagnostic support
* gpio: mc33972: add diagnostic support
* gpio: tle6240: add diagnostic
* pin_repository: output diagnostic data for gpio chips
* enums: kinetis: add brain_pin_diag_e enum for pin diagnostic
2020-01-12 10:20:10 -05:00
dron0gus
1b19aa1c57
hw: gpio: use unsigned int as pin number inside gpiochip drives ( #1097 )
...
Not brain_pin_e. Drivers like to see pin number within current
chip.
2020-01-11 10:29:41 -05:00
rusefi
63e3e84e08
happy new year
2020-01-08 00:02:40 -05:00
dron0gus
ddc071f611
Gpio fixes ( #1086 )
...
* drivers: gpio: add MC33810 driver (skeleton)
* pin_repository: debug: do not show absent chips
2020-01-07 07:55:50 -05:00
Matthew Kennedy
df57b24e3f
Shrink output channels, now with passing CI ( #1077 )
...
* reorder fields
* temporary tle8888 fix
* comment, simplify
* hand tweak generated
* oops, those are reciprocal
* fix engineLoadAccelExtra
* aggressive priority order
* fix output size
* comments
* reorder fields, no sizes yet
* should've been signed
* simplify constructor mess, hook up scaling
* notes
* typo
* if -> switch
* rev signature
* correct map offset
* handle unsigned properly
* RPM is unsigned
* vss isn't scaled
* extract magic
* required generated for build
* de-scale rpm
* field type cases
2019-12-22 08:12:45 -05:00
rusefi
9ffda831a7
Revert "DRAFT Shrink output channels, again ( #1074 )"
...
This reverts commit ad7a383d
2019-12-21 15:02:49 -05:00
Matthew Kennedy
ad7a383d74
DRAFT Shrink output channels, again ( #1074 )
...
* reorder fields
* temporary tle8888 fix
* comment, simplify
* hand tweak generated
* oops, those are reciprocal
* fix engineLoadAccelExtra
* aggressive priority order
* fix output size
* comments
* reorder fields, no sizes yet
* should've been signed
* simplify constructor mess, hook up scaling
* notes
* typo
* if -> switch
2019-12-21 08:55:19 -05:00
rusefi
7dc6057ac7
Revert "Shrink output channels, use scaling ( #1069 )"
...
This reverts commit 1e0f1a26
2019-12-19 22:35:06 -05:00
Matthew Kennedy
1e0f1a2628
Shrink output channels, use scaling ( #1069 )
...
* reorder fields
* temporary tle8888 fix
* comment, simplify
* hand tweak generated
* oops, those are reciprocal
* fix engineLoadAccelExtra
* aggressive priority order
2019-12-19 20:37:42 -05:00
rusefi
19bdb9a35f
docs & code formatting
2019-11-19 18:17:03 -05:00
andreika-git
e20bdf4386
TLE6240 outputs fix ( #994 )
2019-11-01 15:49:55 -04:00
andreika-git
ef23be6893
Kinetis & TLE8888 compatibility & fixes... ( #991 )
...
* TLE8888: More compatibility & postTunerStudioState
* activeConfiguration & EFI_ACTIVE_CONFIGURATION_IN_FLASH fix
* Kinetis: jump_to_bootloader() impl.
* Kinetis: UART baudrate safety check
* Kinetis: OMG!..
2019-10-31 16:06:34 -04:00
Matthew Kennedy
821ca6156f
move tsOutputChannels to header ( #970 )
2019-10-08 21:02:51 -04:00
rusefi
12d9bc50b3
tle8888 reinit command
2019-09-05 10:30:27 -04:00
rusefi
280271ab1e
TLE8888: NB2 solution + reset counter
2019-09-05 10:01:59 -04:00
dron0gus
be13dc1185
TLE8888: track reset event by cleared OE bit in status register ( #918 )
...
As tle8888 suposed to be reset master and reset MCU there is no
flag showing POR reset. So try to poll OE bit.
2019-09-05 08:55:17 -04:00
rusefi
d1f96682c2
Hall mode for TLE88888 - VRSConfig1 VRSM #915
2019-09-04 20:02:32 -04:00
rusefi
4737a2a57f
Hall mode for TLE88888 - VRSConfig1 VRSM #915
2019-09-04 09:24:01 -04:00
rusefi
df18a37788
Hall mode for TLE88888 - VRSConfig1 VRSM #915
2019-09-04 00:27:19 -04:00
rusefi
cb488d28ce
TLE8888 should be re-initialized every time we get +12 volts fix #901
...
fuel pump test passed, also longer start-up timeout is needed for reliable start
2019-08-16 23:21:03 -04:00
rusefi
b3ccc4009c
TLE8888 should be re-initialized every time we get +12 volts #901
...
moving SPI initialization to thread - still works on real hardware
2019-08-16 22:56:06 -04:00
rusefi
7de0eba798
TLE8888 should be re-initialized every time we get +12 volts #901
...
refactoring: extracting method
2019-08-16 22:41:19 -04:00
rusefi
890915524b
refactoring
2019-08-16 22:01:32 -04:00
rusefi
8bdf4f30ae
refactoring: ChibiOS now offers native 'lockAnyContext' pattern
2019-08-11 15:23:15 -04:00
rusefi
d6f7e778ac
code style/type safety/docs/typos
2019-08-10 11:13:41 -04:00
rusefi
59463a515e
MRE hangs up on bench fix #899
2019-08-10 00:53:16 -04:00
rusefi
5d2afd2331
refactoring: better file name
2019-07-06 20:15:49 -04:00
rusefi
1b4c5bc552
we need TLE8888 driver #714
2019-06-08 21:58:23 -04:00
rusefi
3b87cd9add
tle8888 driver bug #803
...
undoing since this breaks start-up
2019-06-08 20:28:13 -04:00
rusefi
4944916064
we need TLE8888 driver #714
...
trying a sleep before first command
2019-06-08 18:31:56 -04:00
rusefi
123aae2613
we need TLE8888 driver #714
...
saving exact TLE8888 reponses
2019-06-08 16:13:24 -04:00
rusefi
7a99fab788
https://github.com/rusefi/rusefi/issues/803
2019-06-08 00:44:18 -04:00
rusefi
f322d6f753
better status code
2019-06-07 19:14:55 -04:00
rusefi
8456bd3c23
reviving tle8888 configuration
2019-06-05 22:32:30 -04:00
rusefi
7c5522b682
code style
2019-06-05 21:44:58 -04:00
rusefi
c77ec2a4c9
docs
2019-05-30 17:43:40 -04:00
dron0gus
1b19a36b9e
Smart gpios fixes 3 ( #795 )
...
* pin_repository: provide readable pin names in error cases
* io_pins: remove getBrain_pin_eExt
We have getBrain_pin_eExt in io_pins.cpp and hwPortname in
pin_repository.cpp.
First uses auto-generated enums, second one uses runtime data to
provide name of hw pin.
Removing first saves us about 2K of flash couse big auto-generated
switch with pin names no more used by anyone and gets optimized out.
* gpios: mc33972: CS pin is now requested at smart_gpios.pcc
* getSpiDevice: support SPI4
* smart_gpios.cpp: startSmartCsPins set CSs to inactive state
OutputPin:initPin initializes pin with false value. This is active
state for SPI Chip Selects. Set to 1 to deselect all chips.
2019-05-09 18:09:24 -04:00
andreika-git
20b6a17695
EFI_CONSOLE_UART_DEVICE, flash->hw_ports, Fix TLE6240 and misc.fixes ( #793 )
...
* rename EFI_CONSOLE_UART_DEVICE -> EFI_CONSOLE_SERIAL_DEVICE
* Impl. EFI_CONSOLE_UART_DEVICE
* Move flash source files to ports/stm32/ & hw_ports.mk
* Fix TLE6240
* Fix EFI_NO_CONFIG_WORKING_COPY
* EFI_PRINT_MESSAGES_TO_TERMINAL
2019-05-05 11:06:27 -04:00
dron0gus
986a4d1748
tle8888: fix pin names array ( #771 )
2019-04-21 08:50:07 -04:00
rusefi
0b1620feb2
USB and TLE8888 not working for F4 or F767 #764
2019-04-20 23:39:06 -04:00
dron0gus
aaad44dfa1
Smart gpio fixes 2 ( #765 )
...
* gpio chips: relax error checking on _add
Do not halt whole system if wrong or nulled config is passed.
In current smart-gpio implementation this can happen and it is not
as error. Let smart-gpio handle this, kust reurn negative.
* tle8888: return back includes needed for debug
* smar-gpio: -Werror=missing-field-initializers fix
2019-04-19 01:42:24 -04:00
dron0gus
e0796d673b
Smart gpios fixes - now without cleanup of smart_gpio.cpp ( #758 )
...
* smart_gpio.cpp: check _add return values
And occupy gpiochip's pin range if disabled of failed. So base will
align with enum.
* TLE8888: cleanup, move high level code to smart_gpio.cpp
* smart_gpio.cpp: fix compilation when BOARD_EXT_GPIOCHIPS == 0
* board-subaru: fix compilation after latest smart_gpio updates
* tle8888: now we have all 28 pins supported
2019-04-16 09:23:24 -04:00
andreika-git
4e7715fab2
Add more portability to smart_gpio & SPI ( #754 )
2019-04-14 13:35:30 -04:00
rusefi
d67f3dc6e1
we need TLE8888 driver #714
2019-04-14 08:20:25 -04:00
dron0gus
527cba3e35
TLE8888: remove hacks ( #753 )
2019-04-14 08:15:01 -04:00