* ADC: fixes:
-use enums
-internalAdcIndexByHardwareIndex array should be adc_channel_e size
-add sanity checks
-save few bytes of RAM
* ADC: use logical OR instead of math add
* testable launch start
* extract base class
* add a test
* fix ts debug
* Launch control unit_tests
updated launch control for a better split
VSS mock for unit tests
Co-authored-by: Matthew Kennedy <matthewkennedy@outlook.com>
* 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
* restructure
* guard c++
* idle too
* status_loop.h
* consolidate definitions
* use 1/0 instead, check for existence
* missed a few
* dead define
* defs for bootloader
* 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
* 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
* add
* remove old
* remove more old
* makefile
* fix init
* patch up other stuff
* actually fix it this time
* raw output channels
* gauges, UI
* scaled channel
* fix field ordering
* avoid 64b on hot path
* no tooth log when fast
* use crit section locker
* final
* only flip pins if not also self stim
* only trace if doing work
* slightly drop lateDelay
* trace if not bailing out
* remove listener array
* avoid 64b on hot path
* no tooth log when fast
* use crit section locker
* final
* only flip pins if not also self stim
* only trace if doing work
* slightly drop lateDelay
* trace if not bailing out
* change acSwitch name, add mode
* fix
* remove some adc stuff
* remove some adc stuff
* semicolon stupid
* left behind
* add readpinstate
* wrong var name
* add functions back
* fix name
* bool, not void, plus fix name
* move
* not sure what I broke
* try setMockValue
* namespace
* whoops missed one
* switch values because adc was set up for pullup
* try 5
* comment for now
* comment for now
* uncomment tests, add function to mock, add mock to efiReadPin
* fixes
* for F's sake
* if
* add defy
* pass params
* use ASSERT_TRUE/FALSE
* advance time
* remove ifdef from readPin
* try moving if
* move to separate func
* move extern
* move include
* try engine_test_helper
* am confuse
* move func to else
* include hal
* add efi prod check
* remove include
* try extern
* move include
* semicolon stupid
* move extern again
* include
* move mockPinStates
* size
* add if
* add comment
* clean on instantiation
* ADC: move DMA buffer outside of AdcDevice (save few bytes)
* ADC: inlcude fast channels to debug output
* ADC: save some CPU ticks (disabled until fully tested)
* ADC: simplify
* add linked list
* macros, and use in buttonshift
* unit_tests macros
* add extern
* add parens
* move extern
* move extern
* move buttonDebounceListHead
* move buttonDebouncePointerHead
* merge gore
* undo
* reduce unused size
* don't store pointer if already initialized
* few changes
* remove oldPin
* fix merge conflict
* merge in changes commited to wrong branch
* fix definition
* out of class?
* brute force programming
* fix few problemos
* am confuse
* am confuse
* am confuse
* am confuse
* oldPin snuck in
* move to public?
* define again
* try constexpr
* def in cpp
* remove constexpr
* fix def
* fix?
* update active
* fix a few things
* ADC: remove ADC_TwoSamplingDelay*
1. it is related to double or triple interlived mode only
2. it should be writen to CCR register, not CR1
* ADC: use designated initializers
* mc33 flash check
* DI sanity checks for setting HV config
* mc33816 microcodee source code update for what we got running on the r0.4 board w/ pt2001
Co-authored-by: Christopher W. Anderson <gitstuff@pswitch.com>
* s
* science
* set pin mode
* turn stuff off so it fits
* filtering maybe
* filtering actually works
* generate filter parameters internally
* shorter window
* guard behind enable flag
* use checked in filter
* add biquad reset
* tracing
* const
* exec order
* do it from a thread
* smaller buffer, comment
* configure with header
* only for proteus
* oops
* unused
* not needed
* guards
* pin config
* don't need that include
* precook filter steady state
* define sample rate
* config enable switch
* improve biquad
* cleanup
* add filtering to subscriptions
* config sensors
* comment
* doesn't need to be that fast
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* second can bus, first steps
* added most important messages; no more errors
* cleaned up can messages
* second can bus, first steps
* added most important messages; no more errors
* cleaned up can messages
* post rebase/merge fixes
* more rebase/merge fixes
* even more rebase/merge fixes
* more fixes, removed auto-gen files
* removed more auto-gen files...
* hard pwm
* fix, comments
* PC6-9 and PD12-15
* PB6-9
* dynamic frequency
* f7 mcuconf
* format
* relocate to common, support variable frequency
* error handling
* oops
* fix test build
* noop kinetis
* better guards
* guard for bl
* guards don't work if they have typos
* more mapping
* oops
* don't use for slow pwm
* enable pwm
* guard properly
* save a little memory
* use less mem
* correct timers
* all your ram are belong to us
* update limit & comment
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* binary log
* remove old text logging
* change file extension
* just use a bare buffer
* more mem :(
* double ugh
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* mc33 flash check
* DI sanity checks for setting HV config
* mc33 VccP (7v) under voltage detection - before and after DRIVEN, useful for regulator broken - or DC-DC logic converter broken
Co-authored-by: Christopher W. Anderson <gitstuff@pswitch.com>
This fixes following build issue under linux:
make: *** No rule to make target 'build/obj/.cpp cj125.cpp', needed by 'build/obj/ build/obj/cj125.o'. Stop.
make: *** Waiting for unfinished jobs....
Introduces in 8d35c35035
* mc33 flash check
* DI sanity checks for setting HV config
* mc33 under voltage check
* mc33 under voltage check
* mc33 clear driver status on startup
Co-authored-by: Christopher W. Anderson <gitstuff@pswitch.com>
* aux serial updates from last PR
* trying to guess
* wow that's old! also not working maybe?
* hiding diag code which was messing with GP2/GP3 i.e. TLE8888_PIN_22 TLE8888_PIN_23
* date
* Mc33 undervolt (#1421)
* mc33 flash check
* DI sanity checks for setting HV config
* mc33 under voltage check
* mc33 under voltage check
Co-authored-by: Christopher W. Anderson <gitstuff@pswitch.com>
* fixed {}
Co-authored-by: rusefi <rusefillc@gmail.com>
Co-authored-by: NOx-z <50815960+NOx-z@users.noreply.github.com>
Co-authored-by: Christopher W. Anderson <gitstuff@pswitch.com>
Co-authored-by: kon <dev@triggerdevel>
* mc33 flash check
* DI sanity checks for setting HV config
* mc33 under voltage check
* mc33 under voltage check
Co-authored-by: Christopher W. Anderson <gitstuff@pswitch.com>
* 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
* switch to thread
* actually use default frequency define
* crank ADC too
* make space in RAM
* remove TS field
* this should work for test
* fix dt
* re-resize ram
* Update ChibiOS
* Fix coexistance of ChibiOS and our flash drivers
* Add 'int' = internal prefix for all on-chip flash functions
This avoid conflict with ChibiOS functions available after
enabling HAL_USE_EFL
* Exclude ChibiOS flash driver from bootloader
* Makefile magic?
* Kinetis: fix build after ChibiOS update and switching to SMART_BUILD
* Bootloader now use SMART_BUILD too
* Vss over Can implementation proposal
Working for BMW e46
* fixed Firmware CI?
* kinetis fix.
* minor fixes
* Added W202 + fixed broken configs
- w202 Vel decoded
- added dbc checks
Some additional math should be done to convert brain_pin_e to index
and back in case board do not have all chips exist in enum.
ifdef hell is for Kinetis board that uses its own brain_pin_e enum