Timofey Titovets
07b3726d31
stm32: h7 spi - add a delay on SCK polarity change
...
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
2025-05-26 18:44:29 -04:00
Timofey Titovets
28a4baf95c
spi_software: add a delay on mode change
...
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
2025-05-26 18:44:29 -04:00
Timofey Titovets
14685bf77f
rp2040: add a delay on SCK polarity change
...
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
2025-05-26 18:44:29 -04:00
Kevin O'Connor
9090377bbc
stm32: Allow stm32g4 chips to select a bootloader
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-05-19 12:31:46 -04:00
Timofey Titovets
8c01be8c75
stm32: spi enable fifo if supported ( #6936 )
...
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-05-19 12:24:29 -04:00
Timofey Titovets
3a015cd00d
stm32: H7 spi enable use of fifo
...
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
2025-05-19 12:21:33 -04:00
Kevin O'Connor
841a9ca2f7
stm32: Avoid read-modify-write register access in stm32h7_spi.c
...
Build test / build (push) Has been cancelled
klipper3d deploy / deploy (push) Has been cancelled
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-05-16 12:26:52 -04:00
Kevin O'Connor
6f87a4e685
stepper: Minor code tweak - remove unneeded parenthesis
...
Build test / build (push) Has been cancelled
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-05-09 12:58:01 -04:00
Kevin O'Connor
b5aea5b774
stepper: Minor code reorg - remove unneeded HAVE_OPTIMIZED_PATH definition
...
Make it more clear that stepper_load_next() has three separate code
paths - one for each of the optimized stepper_event_X() functions.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-05-09 12:38:25 -04:00
Kevin O'Connor
fd55dd9e9d
stepper: Also ensure minimum time after dir change and next step
...
In practice the host will not schedule any steps immediately after a
direction change (due to acceleration limits and the host
"step+dir+step filter"). However, there is also no harm in enforcing
a minimum duration in the mcu.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-05-09 09:52:05 -04:00
Kevin O'Connor
885f63cff0
stepper: Ensure minimum time between step pin and dir pin change
...
Commit 8faed8d9 made it possible to utilize stepper_event_full() while
utilizing tmc "step on both edges" optimation. That commit would
ensure a minimum step pulse duration, but it did not ensure a minimum
duration between step pin and dir pin changes. Commits 0d27195f and
554ae78d optimized the gpio handling on stm32h7 chips, which could
potentially cause a very small amount of time between step pin and dir
pin changes.
Enforce a minimum time after a step pin update before updating the dir
pin.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-05-09 09:52:05 -04:00
Kevin O'Connor
efabe63357
stepper: Move timer checks from stepper_event_full() to stepper_load_next()
...
This simplifies the stepper_event_full() and makes it easier to
implement more complex checks.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-05-09 09:52:05 -04:00
Kevin O'Connor
1dc9aa8e19
stepper: Free stepper_move struct near top of stepper_load_next()
...
Move up the freeing of the stepper_move struct and setting of
s->position in stepper_load_next(). This simplifies the code and
will make it easier to add more logic to this function.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-05-09 09:52:05 -04:00
Kevin O'Connor
554ae78d8c
stm32: Run stm32h723 at 520Mhz
...
Increase speed of stm32h723 chips from 400Mhz to 520Mhz.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-05-02 11:44:31 -04:00
Kevin O'Connor
ee79d0e307
stm32: Support over 400Mhz main clock in stm32h7_adc.c
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-05-02 11:44:31 -04:00
Kevin O'Connor
7b697105b3
stm32: Use 12Mhz nominal internal clock in stm32f0_i2c.c
...
Increase the internal nominal clock from 8Mhz to 12Mhz - this improves
support for higher chip frequencies.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-05-02 11:44:31 -04:00
Kevin O'Connor
5b2f8104c7
neopixel: Round up in nsecs_to_ticks()
...
The rp2040 operates at a fast internal clock with a relatively slow
external timer and dividing down could result in a too small delay.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-28 19:55:30 -04:00
Kevin O'Connor
cf3bedfbdc
stm32: Enable VOS0 power mode on stm32h723 if frequency above 400Mhz
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-28 19:36:55 -04:00
Kevin O'Connor
7f4f696f10
stm32: Don't try to set incorrect PWR->CR3 register on stm32h7
...
It's not valid to set BYPASS and LDOEN at the same time.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-28 19:36:55 -04:00
Kevin O'Connor
9c37a918db
stm32: Set the PLL frequency equal to CONFIG_CLOCK_FREQ on stm32h723
...
There is no reason to use a higher internal PLL frequency. This
change also makes it possible to enable higher clock frequencies on
the stm32h723.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-28 19:36:55 -04:00
Kevin O'Connor
f2b68fef73
stm32: Avoid read-modify-write register updates in stm32h7 clock_setup()
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-28 19:36:55 -04:00
Kevin O'Connor
c352617c30
stm32: Use enable_pclock() in stm32h7 clock_setup()
...
Use the helper functions to enable the peripheral clock instead of
directly manipulating the clock enable bits.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-28 19:36:55 -04:00
Kevin O'Connor
5d1f773ffb
stm32h7: Always clear AHB1ENR at startup on stm32h7
...
Entirely clear the AHB1ENR register. There is no need to modify
AHB1LPENR.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-28 19:36:55 -04:00
Kevin O'Connor
8e107b2280
basecmd: Update stats timing check to support 32bit duration
...
Use a 32bit duration check instead of the previous 31bit check.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-28 19:28:52 -04:00
Russell Cloran
f2b27d17b7
stm32: Add support for spi6 on stm32f42x chips
...
Signed-off-by: Russell Cloran <rcloran@gmail.com>
2025-04-19 12:12:55 -04:00
Kevin O'Connor
5001983d34
stm32: Fix pll_base on stm32h7 when using a clock other than 25Mhz
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-19 12:09:58 -04:00
Kevin O'Connor
0d27195fd4
stm32: Add optimized stm32h7_gpio.c
...
Add optimized gpio functions for stm32h7 - caching the ODR register
can notably improve the performance of the gpio_out_toggle() code.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-19 11:48:58 -04:00
Kevin O'Connor
413ff19ea8
neopixel: Add comments on timing
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-17 13:06:22 -04:00
Kevin O'Connor
871637d3f2
Kconfig: Note which chips require software divide operations
...
Add a new HAVE_SOFTWARE_DIVIDE_REQUIRED that indicates which chips
require software divide.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-17 12:09:19 -04:00
Kevin O'Connor
0fbcc156c5
neopixel: Make sure nsecs_to_ticks() is always inlined
...
It is a compile-time calculation that needs to be inlined to work.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-17 12:09:19 -04:00
Kevin O'Connor
56d3f4e64c
lcd_st7920: Make sure nsecs_to_ticks() is always inlined
...
It is a compile-time calculation that needs to be inlined to work.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-17 12:09:19 -04:00
Kevin O'Connor
cb6828ec34
lcd_hd44780: Make sure nsecs_to_ticks() is always inlined
...
It is a compile-time calculation that needs to be inlined to work.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-17 12:09:19 -04:00
Kevin O'Connor
3656006a30
stm32: Change hard_pwm.c MAX_PWM to 257
...
Choose a value for MAX_PWM that avoids an expensive run-time division.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-17 12:07:44 -04:00
Kevin O'Connor
7a9b06ad86
stm32: Fix prescaler overflow check in hard_pwm.c
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-17 12:07:44 -04:00
Timofey Titovets
a9b04e8536
i2c_software: pass pulse ticks from host
...
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
2025-04-17 11:41:49 -04:00
Timofey Titovets
841adcfff7
i2c_software: reduce gpio calls count
...
gpio reset calls are heavy.
gpio state are persistent between calls.
Drop useless calls.
Avoid calls if SDA does not changed.
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
2025-04-17 11:41:49 -04:00
Timofey Titovets
8ab12c86bf
i2c_software: allow freq adjust
...
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
2025-04-17 11:41:49 -04:00
Timofey Titovets
abc76ee963
software_spi: set rate limiting ticks from the host
...
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
2025-04-17 11:37:12 -04:00
Timofey Titovets
b826844b34
spi_software: respect expected rate
...
On fast MCU software spi may violate maximally supported by TMC driver rate.
Add dynamic limits to overcome that.
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
2025-04-17 11:37:12 -04:00
Kevin O'Connor
017371b744
Revert "Makefile: Don't disable gcc's use-linker-plugin option"
...
This reverts commit 8087200ffe .
The change can break the build on some versions of gcc.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-16 15:24:05 -04:00
Kevin O'Connor
51311948be
atsamd: Enable HAVE_LIMITED_CODE_SIZE on small atsamd chips
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-16 13:54:44 -04:00
Kevin O'Connor
61bbd455cf
Kconfig: Add some user visible comments to the optional features menu
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-16 13:54:44 -04:00
Kevin O'Connor
d93645a750
stm32: Simplify Makefile
...
Breakout selection of timer and gpioperiph objects.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-16 13:54:44 -04:00
Kevin O'Connor
8c67adc164
Kconfig: Add new WANT_ADC option to reduce code size
...
Make it possible to not compile in support for ADC on chips with small
flash sizes.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-16 13:54:44 -04:00
Kevin O'Connor
04e7eb20fd
Kconfig: Add new WANT_I2C option to reduce code size
...
Make it possible to not compile in support for I2C on chips with small
flash sizes.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-16 13:54:44 -04:00
Kevin O'Connor
868760f5b1
Kconfig: Add new WANT_SPI option to reduce code size
...
Make it possible to not compile in support for SPI on chips with small
flash sizes.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-16 13:54:44 -04:00
Kevin O'Connor
b0fa36e221
Kconfig: Add new WANT_HARD_PWM option to reduce code size
...
Make it possible to not compile in support for hardware pwm on chips
with small flash sizes.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-16 13:54:44 -04:00
Kevin O'Connor
6356e3d35c
stm32: Enable gcc -Os option on CONFIG_HAVE_LIMITED_CODE_SIZE
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-16 13:54:44 -04:00
Kevin O'Connor
6e9b5b309c
avr: Enable gcc -Os option on CONFIG_HAVE_LIMITED_CODE_SIZE
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-16 13:54:44 -04:00
Kevin O'Connor
d98abfc5db
Kconfig: Replace WANT_DISPLAYS with individual options
...
Support setting WANT_ST7920 and WANT_HD44780 individually.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-04-16 13:54:39 -04:00