Commit Graph

802 Commits

Author SHA1 Message Date
Kevin O'Connor 8cf1b51223 linux: Support spidev4 through spidev7
The rpi4 has additional spi devices.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-09-15 11:06:10 -04:00
Kevin O'Connor 22167f9510 adxl345: Compress each sample from 6 bytes to 5 bytes
Transmit data from mcu to host using 5 bytes per sample and up to 10
samples per message block.  This improves bandwidth efficiency.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-08-30 12:25:50 -04:00
Kevin O'Connor e34137582d adxl345: Implement timing via new adxl345_status messages
Query the adxl345 message counter every 100ms so that accurate timing
can be obtained during measurements.  This allows the adxl345 data to
be exported with timestamps while captures are running.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-08-30 12:25:50 -04:00
Kevin O'Connor 3f46609c1d usb_cdc: Increase USB transmit size
Increase the transmit buffer size to better support bulk transmission
of sensor data.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-08-30 12:12:11 -04:00
Michael Kurz efbb704522 lpc176x: Fix wrong inital value at PWM setup
This fixes a PWM going to full scale output when a initial value != 0 was
given. The output was on 100% until another update occurred.

This change enables the PWM counter before setting the channel values.

Fixes KevinOConnor/klipper#4559

Signed-off-by: Michael Kurz <michi.kurz@gmail.com>
2021-08-23 21:29:29 -04:00
Kevin O'Connor 7fddc5a8fa avr: Fix typo causing broken gpio mappings
Commit 070fac07 had a typo causing two PINE definitions to be added to
the list of available GPIOs.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-08-15 09:48:33 -04:00
Kevin O'Connor 070fac0702 avr: Define PORTE on atmega328p
The atmega328pb supports PORTE, but the current avr-libc toolchain
doesn't support the atmega328pb.  So, for now, add support for PORTE
to atmega328p.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-08-14 22:00:17 -04:00
Kevin O'Connor cf3c7cd99a avr: Rename the analog-only PE0/PE1 pins on atmega168/328 to PE2/PE3
The atmega328pb has officially named these pins as PE2 and PE3, so use
that naming scheme instead of the previous Klipper invented names.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-08-14 22:00:17 -04:00
Kevin O'Connor 0971a8c2e1 stm32: Support PB7/PB6 for USART1 on stm32f0
Add support for USART1 on PB7/PB6.

Remove STM32_SERIAL_USART1_ALT_PA15_PA14 option and allow all serial
mappings to be used on stm32f031.

Reported by @Desuuuu.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-08-01 13:46:31 -04:00
Simon Hawkenson 698ca1d0ae
stm32: Add 16KiB bootloader option for STM32F103 (#4493)
The Eryone ER-20 is a STM32F103 based 3D printer which ships with a 16KiB bootloader. Their official version of Marlin starts at 0x08004000.

Signed-off-by: Simon Hawkenson <simon@hawkenson.ca>
2021-07-15 14:09:56 -04:00
Lasse Dalegaard 84523f2811 rp2040: implement SPI
This implements SPI for the rp2040 target. All output groupings of both
SPI blocks are available for use.

Signed-off-by: Lasse Dalegaard <dalegaard@gmail.com>
2021-07-15 13:30:20 -04:00
Lasse Dalegaard 28f60f7ef6 rp2040: hardware PWM support
This implements hardware PWM support for the rp2040. The maximum
value(100% duty) is set to 255 to match the other controllers. Cycle
time is clamped automatically, and uses the full 8.4 fractional range of
the rp2040 PWM block. This allows a maximum PWM frequency of 490kHz and
a minimum frequency of 1915 Hz.

Signed-off-by: Lasse Dalegaard <dalegaard@gmail.com>
2021-07-09 11:23:48 -04:00
Henky Prayoga 4802c6d86a
stm32: Allow STM32F401 boards to use STM32 HID Bootloader (#4461)
Signed-off-by: Henky Prayoga <henky.prayoga@callysta-engineering.com>
2021-07-09 11:20:30 -04:00
Kevin O'Connor f2b4d353d8 rp2040: Add _ramfunc macro to internal.h and use in bootrom.c and chipid.c
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-07-04 12:45:27 -04:00
Lasse Dalegaard ba958468b7 rp2040: add chipid support
The rp2040 doesn't have a chip ID, but the flash chip connected does. We
can get this ID by asking the flash chip directly, but doing so requires
disengaging the XIP layer, performing the interrogation of the flash
chip, and then re-enabling the XIP layer. This gives us a 64-bit unique
ID that we can use as our USB serial number.

Signed-off-by: Lasse Dalegaard <dalegaard@gmail.com>
2021-07-04 12:43:45 -04:00
Lasse Dalegaard 0597210cb9 rp2040: support usb_request_bootloader
Signed-off-by: Lasse Dalegaard <dalegaard@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-07-04 11:30:19 -04:00
Lasse Dalegaard bb2f27f928 rp2040: remove unused linker option
In binutils 2.36 and above the -nostartfiles option is no longer
ignored. -nostartfiles is actually a gcc option, and so isn't supported
by ld. Earlier versions of binutils however had less error checking, and
thus just ignored the option.

Signed-off-by: Lasse Dalegaard <dalegaard@gmail.com>
2021-07-04 16:36:52 +02:00
Kevin O'Connor c5667193c9 rp2040: Initial USB support
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-07-04 10:11:02 -04:00
Kevin O'Connor 59fe878241 rp2040: Add initial adc support
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-07-04 10:11:02 -04:00
Kevin O'Connor 045bfa4e8d rp2040: Add initial support for the rp2040 mcu
Support the rp2040 (as tested on a Raspberry Pi Pico board).  This
adds basic uart, timer, gpio, and watchdog support.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-07-04 10:11:02 -04:00
Kevin O'Connor 1b79ffcad2 lcd_st7920: Check CONFIG_MACH_AVR for slow mcus
Use CONFIG_MACH_AVR instead of CONFIG_CLOCK_FREQ to check for slow
mcus.  Some fast MCUs do not export a high clock frequency.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-07-04 10:11:02 -04:00
Kevin O'Connor b55703d837 Makefile: Allow CONFIG_HAVE_GPIO_BITBANGING when not CONFIG_HAVE_GPIO_SPI
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-07-04 10:11:02 -04:00
Kevin O'Connor 1e11b76379 usb_cdc: Add comments on debugging USB connections via UART
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-07-04 10:11:02 -04:00
henrikssn 430578957f
stm32: Add support for STM32F072 (used in the TurboCAN board) (#4412)
* Add menuconfig option for stm32f072
* Add support for internal temp of stm32f072
* Share the temperature calculation logic between stm32f0x2 MCUs

Signed-off-by: Erik Henriksson <erikhenrikssn@gmail.com>
2021-06-27 20:35:34 -04:00
github@matthewlloyd.net 23f466bfce config: Add configs for Prusa Buddy and Mini+
Signed-off-by: Matthew Lloyd <github@matthewlloyd.net>
2021-06-14 12:37:34 -04:00
Kevin O'Connor 05c2d51a12 trsync: Introduce new "trigger synchronization" support
Separate out the stepper stopping code from endstop.c into its own
trsync.c code file.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-06-09 18:58:35 -04:00
Sergey Alirzaev c19d1fbb59 Makefile: Include debug symbols in the .elf
Signed-off-by: Sergey Alirzaev <zl29ah@gmail.com>
2021-06-08 19:29:16 -04:00
Kevin O'Connor bd65c37ed5 atsamd: Add support for 25Mhz crystals
Needed for the Duet3 Mini 5+ board.  Reported by @lukeslaboratory.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-06-04 17:48:21 -04:00
Kevin O'Connor 6266e7c259 atsamd: Fix pll reference in samd51 config_dpll()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-06-04 17:02:17 -04:00
Kevin O'Connor d619796495 Revert "linux: Raise an error if configuring a pullup when that is not supported"
This reverts commit 70ea0806d9.

The above commit breaks software spi on linux hosts.  Revert that
commit until an improved error check can be implemented.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-05-27 11:33:24 -04:00
Kevin O'Connor 4ea434796b stm32: Support spi1 on PB4/PB5/PB3 on stm32f103 and stm32f2
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-05-26 00:04:30 -04:00
Kevin O'Connor f99dca0918 stm32: Allow alternate USART1 and USART2 ports on stm32f1 and stm32f2
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-05-25 23:50:28 -04:00
Kevin O'Connor 273106358d stm32: Reorganize stm32f1 pin remap handling
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-05-25 23:50:28 -04:00
Kevin O'Connor 12acb99a38 stm32: Fix USART3 on stm32f1 and stm32f2
Commit 6a3c357a incorrectly disabled support for USART3 on stm32f1 and
stm32f2 - restore that support.

Also, add support for USART3 on PD9/PD8 on stm32f103.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-05-25 22:13:09 -04:00
Kevin O'Connor b1f6a608c3 lpc176x: Add support for serial on UART3 P4.29/P4.28
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-05-25 12:58:26 -04:00
Kevin O'Connor ce8fe615ed lpc176x: Move pin definitions together in serial.c
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-05-25 12:44:13 -04:00
Kevin O'Connor 6a3c357a50 stm32: Add alternate serial ports on stm32f4
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-05-24 21:17:51 -04:00
Kevin O'Connor c1e8ee58e7 stm32: Include pin names in STM32_SERIAL_USART?_ALT kconfig symbols
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-05-24 21:06:04 -04:00
Kevin O'Connor 338bc82d0b stm32: Allow 32KiB bootloader on stm32f446
Useful on the Octopus board.  Reported by @bigtreetech.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-05-20 19:12:09 -04:00
Kevin O'Connor 1ed67120cd debugcmds: Remove start/end_group commands
These commands were never used by the main code and are not
particularly helpful for debugging.  Remove them to reduce code size -
in particular on the pru architecture.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-05-07 13:53:47 -04:00
Kevin O'Connor bde6215c3f stm32: Enable ADC3 pins on stm32f446
Reported by @bigtreetech.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-05-06 12:43:13 -04:00
Kevin O'Connor 45cd3543e3 lpc176x: Use full peripheral clock speed; fix UART interface
Commit ae89a659 caused a regression in the lpc176x UART handling.
After that commit the UART clock divisor would need to be 6.25 on
lpc1768 or 7.5 on lpc1769, but the code only supports whole numbers.

Set the PCLKSELx registers at startup and return to using full speed
peripheral clocks.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-05-04 20:29:48 -04:00
Wilhelm Schuster 1fb091c4fa stm32: Allow selecting bootloader size for STM32F446
Signed-off-by: Wilhelm Schuster <ws@rot13.io>
2021-05-03 14:36:18 -04:00
Kevin O'Connor edea52863a endstop: Report trigger time in endstop_query response
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-04-30 11:40:37 -04:00
Kevin O'Connor 470b1e2e46 adxl345: Use "clock" suffix instead of "time" in commands
The debugging code knows how to handle fields that end in "clock".

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-04-30 11:40:37 -04:00
Kevin O'Connor b611e72a19 pulse_counter: Use "clock" suffix instead of "time" in commands
The debugging code knows how to handle fields that end in "clock".

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-04-30 11:40:37 -04:00
Kevin O'Connor 8f76e53c0e stepper: Remove min_stop_interval from mcu code
Now that the host never uses a min_stop_interval, remove it from the
mcu code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-04-30 11:26:19 -04:00
Kevin O'Connor 70ea0806d9 linux: Raise an error if configuring a pullup when that is not supported
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-04-25 11:54:11 -04:00
Kevin O'Connor 3dadcd3614 linux: Minor formatting, variable name, and error reporting changes
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-04-25 11:12:46 -04:00
Michael Kurz 308f0338cf lpc176x: Add i2c_read functionality
This adds the i2c_read command to the lp176x MCU.

Signed-off-by: Michael Kurz <michi.kurz@gmail.com>
2021-04-25 10:37:28 -04:00