Added crossbar support for UART RTS handshake output signal.

This commit is contained in:
Terje Io
2022-09-29 14:58:06 +02:00
parent 357e4ca077
commit 34699b725c
6 changed files with 48 additions and 21 deletions
+2 -2
View File
@@ -13,7 +13,7 @@ It has been written to complement grblHAL and has features such as proper keyboa
---
Latest build date is 20220922, see the [changelog](changelog.md) for details.
Latest build date is 20220928, see the [changelog](changelog.md) for details.
__NOTE:__ A settings reset will be performed on an update for versions earlier than 20211122. Backup and restore of settings is recommended.
__IMPORTANT!__ A new setting has been introduced for ganged axes motors in version 20211121.
I have only bench tested this for a couple of drivers, correct function should be verified after updating by those who have more than three motors configured.
@@ -86,4 +86,4 @@ List of Supported G-Codes:
Some [plugins](https://github.com/grblHAL/plugins) implements additional M-codes.
---
2022-09-25
2022-09-29
+23 -1
View File
@@ -1,5 +1,27 @@
## grblHAL changelog
>Build 20220928:
Core:
* Added crossbar support for UART RTS handshake output signal.
Drivers:
* iMXRT1062: Fix for issue [#48](https://github.com/grblHAL/iMXRT1062/issues/48), coolant and mist outputs swapped.
* SAM3X8E: Added SMART Ramps board map. By @MrAntza99.
* RP2040: Added option to use RTS handshaking for UART comms via the primary port. Updated the _citoh_cx6000_ map to use it if UART comms is enabled.
* ESP32: Added laser plugin submodule and updated CMakeLists.txt with enable options for it.
Templates:
* my_plugin/hpgl: Added trapping of more HP7475A \(possibly all?\) `ESC . ...` device control sequences to avoid errors/hangs.
---
Build 20220925:
Core:
@@ -39,7 +61,7 @@ Drivers:
---
20220920:
<a name="20220920"/>20220920:
Plugins:
+2
View File
@@ -123,6 +123,7 @@ typedef enum {
Output_CoolantMist,
Output_CoolantFlood,
Output_TX,
Output_RTS,
Output_SCK,
Output_MOSI,
Output_SdCardCS,
@@ -262,6 +263,7 @@ PROGMEM static const pin_name_t pin_names[] = {
{ .function = Output_CoolantMist, .name = "Mist" },
{ .function = Output_CoolantFlood, .name = "Flood" },
{ .function = Output_TX, .name = "TX" },
{ .function = Output_RTS, .name = "RTS" },
{ .function = Output_SCK, .name = "SCK" },
{ .function = Output_MOSI, .name = "MOSI" },
{ .function = Output_SdCardCS, .name = "SD card CS" },
+1 -1
View File
@@ -34,7 +34,7 @@
#else
#define GRBL_VERSION "1.1f"
#endif
#define GRBL_BUILD 20220925
#define GRBL_BUILD 20220928
// The following symbols are set here if not already set by the compiler or in config.h
// Do NOT change here!
+11 -7
View File
@@ -5,7 +5,7 @@
Part of grblHAL
Copyright (c) 2021 Terje Io
Copyright (c) 2021-2022 Terje Io
Grbl is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -77,25 +77,29 @@
#endif
#if defined(SPINDLE_ENABLE_PIN) && !defined(SPINDLE_ENABLE_BIT)
#define SPINDLE_ENABLE_BIT (1<<SPINDLE_ENABLE_PIN)
#define SPINDLE_ENABLE_BIT (1<<SPINDLE_ENABLE_PIN)
#endif
#if defined(SPINDLE_DIRECTION_PIN) && !defined(SPINDLE_DIRECTION_BIT)
#define SPINDLE_DIRECTION_BIT (1<<SPINDLE_DIRECTION_PIN)
#define SPINDLE_DIRECTION_BIT (1<<SPINDLE_DIRECTION_PIN)
#endif
#if defined(COOLANT_FLOOD_PIN) && !defined(COOLANT_FLOOD_BIT)
#define COOLANT_FLOOD_BIT (1<<COOLANT_FLOOD_PIN)
#define COOLANT_FLOOD_BIT (1<<COOLANT_FLOOD_PIN)
#endif
#if defined(COOLANT_MIST_PIN) && !defined(COOLANT_MIST_BIT)
#define COOLANT_MIST_BIT (1<<COOLANT_MIST_PIN)
#define COOLANT_MIST_BIT (1<<COOLANT_MIST_PIN)
#endif
#if defined(PROBE_PIN) && !defined(PROBE_BIT)
#define PROBE_BIT (1<<PROBE_PIN)
#define PROBE_BIT (1<<PROBE_PIN)
#endif
#if defined(I2C_STROBE_PIN) && !defined(I2C_STROBE_BIT)
#define I2C_STROBE_BIT (1<<I2C_STROBE_PIN)
#define I2C_STROBE_BIT (1<<I2C_STROBE_PIN)
#endif
#if defined(RTS_PIN) && !defined(RTS_BIT)
#define RTS_BIT (1<<RTS_PIN)
#endif
#ifdef AUXINPUT0_PIN
+9 -10
View File
@@ -196,13 +196,14 @@ typedef bool (*disable_rx_stream_ptr)(bool disable);
typedef union {
uint8_t value;
struct {
uint8_t connected :1,
claimable :1,
claimed :1,
can_set_baud :1,
rx_only :1,
modbus_ready :1,
unused :2;
uint8_t connected :1,
claimable :1,
claimed :1,
can_set_baud :1,
rx_only :1,
modbus_ready :1,
rts_handshake :1,
unused :1;
};
} io_stream_flags_t;
@@ -261,10 +262,8 @@ typedef struct io_stream_details {
typedef struct {
volatile uint_fast16_t head;
volatile uint_fast16_t tail;
bool overflow;
#ifdef SERIAL_RTS_HANDSHAKE
volatile bool rts_state;
#endif
bool overflow;
bool backup;
char data[RX_BUFFER_SIZE];
} stream_rx_buffer_t;