Teensy 3.2 Jetibox Tastenabfrage

Hi,
nachdem ich erfolgreich mit ATMEGA 328 (5V) die Tasten der Jetibox abfragen kann, scheitere ich mit dem Teensy 3.2 (3.3V) Board damit. Hat es schon jemand erfolgreich hinbekommen ? Bin um jeden Hinweis dankbar
Gruß
Klaus
 
Jeti Duplex Rx/Tx Interface

Jeti Duplex Rx/Tx Interface

... hier das Jeti Interface das mit den Tennsy und auch mit dem Arduino funktioniert:
one-wire-interface.jpg
 
https://forum.pjrc.com/threads/58231-Teensy-4-0-and-single-wire-serial
Code:
Teensy 3.2/3.5/3.6/4.0 use Serial1 or 2

Arduino\hardware\teensy\avr\cores\teensy3\HardwareSerial.h
Arduino\hardware\teensy\avr\cores\teensy4\HardwareSerial.h
// uncomment to enable 9 bit formats
#define SERIAL_9BIT_SUPPORT
Change Serial1/2 TX RX buffer size,ex:
SERIAL1_TX_BUFFER_SIZE to 128
SERIAL1_RX_BUFFER_SIZE to 128

API Serial
begin(9600, SERIAL_9O1); // Jeti is 9O2, but 9O1 (1 stop bit only) is ok
flush(), available()
Read 9bits:
int val = (pExSerial->read() & 0x1ff);
Write 9bits:
write9bit(uint32_t data)

Half/Duplex single wire per software:

  if (serialNumber == 1) {
#if defined(__IMXRT1062__)
    uartCtrl = &LPUART6_CTRL;
    LPUART6_CTRL |= (LPUART_CTRL_LOOPS | LPUART_CTRL_RSRC);
    IOMUXC_LPUART6_TX_SELECT_INPUT = 1;
#else
    uartCtrl = &UART0_C3;
    UART0_C1 |= (UART_C1_LOOPS | UART_C1_RSRC);
#endif
  }
  if (serialNumber == 2) {
#if defined(__IMXRT1062__)
    uartCtrl = &LPUART4_CTRL;
    LPUART4_CTRL |= (LPUART_CTRL_LOOPS | LPUART_CTRL_RSRC);
    IOMUXC_LPUART4_TX_SELECT_INPUT = 2;
#else
    uartCtrl = &UART1_C3;
    UART1_C1 |= (UART_C1_LOOPS | UART_C1_RSRC);
#endif
  }

void set_tx_mode(void) {
#if defined(__IMXRT1062__)
  *uartCtrl |= LPUART_CTRL_TXDIR;
#else
  *uartCtrl |= UART_C3_TXDIR;
#endif
}

void set_rx_mode(void) {
#if defined(__IMXRT1062__)
  *uartCtrl &= ~LPUART_CTRL_TXDIR;
#else
  *uartCtrl &= ~UART_C3_TXDIR;
#endif
}
 
Ansicht hell / dunkel umschalten
Oben Unten