diff --git a/Firmware/Configuration.h b/Firmware/Configuration.h index 65f0815ac..e767cefca 100644 --- a/Firmware/Configuration.h +++ b/Firmware/Configuration.h @@ -82,6 +82,7 @@ #define EEPROM_DIR_DEPTH (EEPROM_POWER_COUNT-1) #define EEPROM_DIRS (EEPROM_DIR_DEPTH-80) //8 chars for each dir name, max 10 levels #define EEPROM_SD_SORT (EEPROM_DIRS - 1) //0 -time, 1-alpha, 2-none +#define EEPROM_SECOND_SERIAL_ACTIVE (EEPROM_SD_SORT - 1) //TMC2130 configuration #define EEPROM_TMC_AXIS_SIZE //axis configuration block size diff --git a/Firmware/MarlinSerial.cpp b/Firmware/MarlinSerial.cpp index c0f61d82a..b01ef459b 100644 --- a/Firmware/MarlinSerial.cpp +++ b/Firmware/MarlinSerial.cpp @@ -67,17 +67,17 @@ FORCE_INLINE void store_char(unsigned char c) } } #ifndef SNMM - SIGNAL(USART2_RX_vect) + SIGNAL(USART1_RX_vect) { if (selectedSerialPort == 1) { // Test for a framing error. - if (UCSR2A & (1<> 8; - UBRR2L = baud_setting; + UBRR1H = baud_setting >> 8; + UBRR1L = baud_setting; - sbi(UCSR2B, RXEN2); - sbi(UCSR2B, TXEN2); - sbi(UCSR2B, RXCIE2); + sbi(UCSR1B, RXEN1); + sbi(UCSR1B, TXEN1); + sbi(UCSR1B, RXCIE1); } #endif } @@ -154,9 +154,9 @@ void MarlinSerial::end() cbi(M_UCSRxB, M_RXCIEx); #ifndef SNMM - cbi(UCSR2B, RXEN2); - cbi(UCSR2B, TXEN2); - cbi(UCSR2B, RXCIE2); + cbi(UCSR1B, RXEN1); + cbi(UCSR1B, TXEN1); + cbi(UCSR1B, RXCIE1); #endif } diff --git a/Firmware/MarlinSerial.h b/Firmware/MarlinSerial.h index a4f799aa5..24e9f79fe 100644 --- a/Firmware/MarlinSerial.h +++ b/Firmware/MarlinSerial.h @@ -101,7 +101,7 @@ class MarlinSerial //: public Stream { return (unsigned int)(RX_BUFFER_SIZE + rx_buffer.head - rx_buffer.tail) % RX_BUFFER_SIZE; } - + /* FORCE_INLINE void write(uint8_t c) { while (!((M_UCSRxA) & (1 << M_UDREx))) @@ -109,7 +109,20 @@ class MarlinSerial //: public Stream M_UDRx = c; } - + */ + void write(uint8_t c) + { + if (selectedSerialPort == 0) { + while (!((M_UCSRxA) & (1 << M_UDREx))) + ; + M_UDRx = c; + } + else if (selectedSerialPort == 1) { + while (!((UCSR1A) & (1 << UDRE1))) + ; + UDR1 = c; + } + } void checkRx(void) { @@ -135,14 +148,14 @@ class MarlinSerial //: public Stream } } } else if(selectedSerialPort == 1) { - if((UCSR2A & (1<