From abf5d3f2a27d8e66f89a71e7cc2662a48647f7af Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Mon, 17 May 2021 01:53:12 +0200 Subject: [PATCH] Add usart v2 --- data/registers/usart_v2.yaml | 737 +++++++++++++++++++++++++++++++++++ 1 file changed, 737 insertions(+) create mode 100644 data/registers/usart_v2.yaml diff --git a/data/registers/usart_v2.yaml b/data/registers/usart_v2.yaml new file mode 100644 index 0000000..ca9f8fb --- /dev/null +++ b/data/registers/usart_v2.yaml @@ -0,0 +1,737 @@ +--- +block/USART: + description: Universal synchronous asynchronous receiver transmitter + items: + - name: CR1 + description: Control register 1 + byte_offset: 0 + fieldset: CR1 + - name: CR2 + description: Control register 2 + byte_offset: 4 + fieldset: CR2 + - name: CR3 + description: Control register 3 + byte_offset: 8 + fieldset: CR3 + - name: BRR + description: Baud rate register + byte_offset: 12 + fieldset: BRR + - name: GTPR + description: Guard time and prescaler register + byte_offset: 16 + fieldset: GTPR + - name: RTOR + description: Receiver timeout register + byte_offset: 20 + fieldset: RTOR + - name: RQR + description: Request register + byte_offset: 24 + access: Write + fieldset: RQR + - name: ISR + description: Interrupt & status register + byte_offset: 28 + access: Read + fieldset: IXR + - name: ICR + description: Interrupt flag clear register + byte_offset: 32 + access: Write + fieldset: IXR + - name: RDR + description: Receive data register + byte_offset: 36 + access: Read + fieldset: DR + - name: TDR + description: Transmit data register + byte_offset: 40 + fieldset: DR +fieldset/BRR: + description: Baud rate register + fields: + - name: BRR + description: mantissa of USARTDIV + bit_offset: 0 + bit_size: 16 +fieldset/CR1: + description: Control register 1 + fields: + - name: UE + description: USART enable + bit_offset: 0 + bit_size: 1 + - name: UESM + description: USART enable in Stop mode + bit_offset: 1 + bit_size: 1 + - name: RE + description: Receiver enable + bit_offset: 2 + bit_size: 1 + - name: TE + description: Transmitter enable + bit_offset: 3 + bit_size: 1 + - name: IDLEIE + description: IDLE interrupt enable + bit_offset: 4 + bit_size: 1 + - name: RXNEIE + description: RXNE interrupt enable + bit_offset: 5 + bit_size: 1 + - name: TCIE + description: Transmission complete interrupt enable + bit_offset: 6 + bit_size: 1 + - name: TXEIE + description: interrupt enable + bit_offset: 7 + bit_size: 1 + - name: PEIE + description: PE interrupt enable + bit_offset: 8 + bit_size: 1 + - name: PS + description: Parity selection + bit_offset: 9 + bit_size: 1 + enum: PS + - name: PCE + description: Parity control enable + bit_offset: 10 + bit_size: 1 + - name: WAKE + description: Receiver wakeup method + bit_offset: 11 + bit_size: 1 + - name: M0 + description: Word length + bit_offset: 12 + bit_size: 1 + enum: M0 + - name: MME + description: Mute mode enable + bit_offset: 13 + bit_size: 1 + - name: CMIE + description: Character match interrupt enable + bit_offset: 14 + bit_size: 1 + - name: OVER + description: Oversampling mode + bit_offset: 15 + bit_size: 1 + array: + len: 1 + stride: 0 + enum: OVER + - name: DEDT + description: Driver Enable deassertion time + bit_offset: 16 + bit_size: 5 + - name: DEAT + description: Driver Enable assertion time + bit_offset: 21 + bit_size: 5 + - name: RTOIE + description: Receiver timeout interrupt enable + bit_offset: 26 + bit_size: 1 + - name: EOBIE + description: End of Block interrupt enable + bit_offset: 27 + bit_size: 1 + - name: M1 + description: Word length + bit_offset: 12 + bit_size: 1 + enum: M1 +fieldset/CR2: + description: Control register 2 + fields: + - name: ADDM + description: 7-bit Address Detection/4-bit Address Detection + bit_offset: 4 + bit_size: 1 + array: + len: 1 + stride: 0 + enum: ADDM + - name: LBDL + description: LIN break detection length + bit_offset: 5 + bit_size: 1 + enum: LBDL + - name: LBDIE + description: LIN break detection interrupt enable + bit_offset: 6 + bit_size: 1 + - name: LBCL + description: Last bit clock pulse + bit_offset: 8 + bit_size: 1 + enum: LBCL + - name: CPHA + description: Clock phase + bit_offset: 9 + bit_size: 1 + enum: CPHA + - name: CPOL + description: Clock polarity + bit_offset: 10 + bit_size: 1 + enum: CPOL + - name: CLKEN + description: Clock enable + bit_offset: 11 + bit_size: 1 + - name: STOP + description: STOP bits + bit_offset: 12 + bit_size: 2 + enum: STOP + - name: LINEN + description: LIN mode enable + bit_offset: 14 + bit_size: 1 + - name: SWAP + description: Swap TX/RX pins + bit_offset: 15 + bit_size: 1 + enum: SWAP + - name: RXINV + description: RX pin active level inversion + bit_offset: 16 + bit_size: 1 + enum: RXINV + - name: TXINV + description: TX pin active level inversion + bit_offset: 17 + bit_size: 1 + enum: TXINV + - name: DATAINV + description: Binary data inversion + bit_offset: 18 + bit_size: 1 + enum: DATAINV + - name: MSBFIRST + description: Most significant bit first + bit_offset: 19 + bit_size: 1 + enum: MSBFIRST + - name: ABREN + description: Auto baud rate enable + bit_offset: 20 + bit_size: 1 + - name: ABRMOD + description: Auto baud rate mode + bit_offset: 21 + bit_size: 2 + enum: ABRMOD + - name: RTOEN + description: Receiver timeout enable + bit_offset: 23 + bit_size: 1 + - name: ADD + description: Address of the USART node + bit_offset: 24 + bit_size: 8 +fieldset/CR3: + description: Control register 3 + fields: + - name: EIE + description: Error interrupt enable + bit_offset: 0 + bit_size: 1 + - name: IREN + description: IrDA mode enable + bit_offset: 1 + bit_size: 1 + - name: IRLP + description: IrDA low-power + bit_offset: 2 + bit_size: 1 + enum: IRLP + - name: HDSEL + description: Half-duplex selection + bit_offset: 3 + bit_size: 1 + enum: HDSEL + - name: NACK + description: Smartcard NACK enable + bit_offset: 4 + bit_size: 1 + - name: SCEN + description: Smartcard mode enable + bit_offset: 5 + bit_size: 1 + - name: DMAR + description: DMA enable receiver + bit_offset: 6 + bit_size: 1 + - name: DMAT + description: DMA enable transmitter + bit_offset: 7 + bit_size: 1 + - name: RTSE + description: RTS enable + bit_offset: 8 + bit_size: 1 + - name: CTSE + description: CTS enable + bit_offset: 9 + bit_size: 1 + - name: CTSIE + description: CTS interrupt enable + bit_offset: 10 + bit_size: 1 + - name: ONEBIT + description: One sample bit method enable + bit_offset: 11 + bit_size: 1 + enum: ONEBIT + - name: OVRDIS + description: Overrun Disable + bit_offset: 12 + bit_size: 1 + enum: OVRDIS + - name: DDRE + description: DMA Disable on Reception Error + bit_offset: 13 + bit_size: 1 + - name: DEM + description: Driver enable mode + bit_offset: 14 + bit_size: 1 + - name: DEP + description: Driver enable polarity selection + bit_offset: 15 + bit_size: 1 + enum: DEP + - name: SCARCNT + description: Smartcard auto-retry count + bit_offset: 17 + bit_size: 3 + - name: WUS + description: Wakeup from Stop mode interrupt flag selection + bit_offset: 20 + bit_size: 2 + enum: WUS + - name: WUFIE + description: Wakeup from Stop mode interrupt enable + bit_offset: 22 + bit_size: 1 +fieldset/GTPR: + description: Guard time and prescaler register + fields: + - name: PSC + description: Prescaler value + bit_offset: 0 + bit_size: 8 + - name: GT + description: Guard time value + bit_offset: 8 + bit_size: 8 +fieldset/IXR: + description: Interrupt & status register + fields: + - name: PE + description: Parity error + bit_offset: 0 + bit_size: 1 + - name: FE + description: Framing error + bit_offset: 1 + bit_size: 1 + - name: NF + description: Noise detected flag + bit_offset: 2 + bit_size: 1 + - name: ORE + description: Overrun error + bit_offset: 3 + bit_size: 1 + - name: IDLE + description: Idle line detected + bit_offset: 4 + bit_size: 1 + - name: RXNE + description: Read data register not empty + bit_offset: 5 + bit_size: 1 + - name: TC + description: Transmission complete + bit_offset: 6 + bit_size: 1 + - name: TXE + description: Transmit data register empty + bit_offset: 7 + bit_size: 1 + - name: LBDF + description: LIN break detection flag + bit_offset: 8 + bit_size: 1 + - name: CTSIF + description: CTS interrupt flag + bit_offset: 9 + bit_size: 1 + - name: CTS + description: CTS flag + bit_offset: 10 + bit_size: 1 + - name: RTOF + description: Receiver timeout + bit_offset: 11 + bit_size: 1 + - name: EOBF + description: End of block flag + bit_offset: 12 + bit_size: 1 + - name: ABRE + description: Auto baud rate error + bit_offset: 14 + bit_size: 1 + - name: ABRF + description: Auto baud rate flag + bit_offset: 15 + bit_size: 1 + - name: BUSY + description: Busy flag + bit_offset: 16 + bit_size: 1 + - name: CMF + description: character match flag + bit_offset: 17 + bit_size: 1 + - name: SBKF + description: Send break flag + bit_offset: 18 + bit_size: 1 + - name: RWU + description: Receiver wakeup from Mute mode + bit_offset: 19 + bit_size: 1 + - name: WUF + description: Wakeup from Stop mode flag + bit_offset: 20 + bit_size: 1 + - name: TEACK + description: Transmit enable acknowledge flag + bit_offset: 21 + bit_size: 1 + - name: REACK + description: Receive enable acknowledge flag + bit_offset: 22 + bit_size: 1 +fieldset/DR: + description: Data register + fields: + - name: DR + description: data value + bit_offset: 0 + bit_size: 9 +fieldset/RQR: + description: Request register + fields: + - name: ABRRQ + description: Auto baud rate request + bit_offset: 0 + bit_size: 1 + enum: ABRRQ + - name: SBKRQ + description: Send break request + bit_offset: 1 + bit_size: 1 + enum: SBKRQ + - name: MMRQ + description: Mute mode request + bit_offset: 2 + bit_size: 1 + enum: MMRQ + - name: RXFRQ + description: Receive data flush request + bit_offset: 3 + bit_size: 1 + enum: RXFRQ + - name: TXFRQ + description: Transmit data flush request + bit_offset: 4 + bit_size: 1 + enum: TXFRQ +fieldset/RTOR: + description: Receiver timeout register + fields: + - name: RTO + description: Receiver timeout value + bit_offset: 0 + bit_size: 24 + - name: BLEN + description: Block Length + bit_offset: 24 + bit_size: 8 +enum/ABRMOD: + bit_size: 2 + variants: + - name: Start + description: Measurement of the start bit is used to detect the baud rate + value: 0 + - name: Edge + description: Falling edge to falling edge measurement + value: 1 + - name: Frame7F + description: "0x7F frame detection" + value: 2 + - name: Frame55 + description: "0x55 frame detection" + value: 3 +enum/ABRRQ: + bit_size: 1 + variants: + - name: Request + description: resets the ABRF flag in the USART_ISR and request an automatic baud rate measurement on the next received data frame + value: 1 +enum/ADDM: + bit_size: 1 + variants: + - name: Bit4 + description: 4-bit address detection + value: 0 + - name: Bit7 + description: 7-bit address detection + value: 1 +enum/CPHA: + bit_size: 1 + variants: + - name: First + description: The first clock transition is the first data capture edge + value: 0 + - name: Second + description: The second clock transition is the first data capture edge + value: 1 +enum/CPOL: + bit_size: 1 + variants: + - name: Low + description: Steady low value on CK pin outside transmission window + value: 0 + - name: High + description: Steady high value on CK pin outside transmission window + value: 1 +enum/DATAINV: + bit_size: 1 + variants: + - name: Positive + description: Logical data from the data register are send/received in positive/direct logic + value: 0 + - name: Negative + description: Logical data from the data register are send/received in negative/inverse logic + value: 1 +enum/DDRE: + bit_size: 1 + variants: + - name: NotDisabled + description: DMA is not disabled in case of reception error + value: 0 + - name: Disabled + description: DMA is disabled following a reception error + value: 1 +enum/DEP: + bit_size: 1 + variants: + - name: High + description: DE signal is active high + value: 0 + - name: Low + description: DE signal is active low + value: 1 +enum/HDSEL: + bit_size: 1 + variants: + - name: NotSelected + description: Half duplex mode is not selected + value: 0 + - name: Selected + description: Half duplex mode is selected + value: 1 +enum/IRLP: + bit_size: 1 + variants: + - name: Normal + description: Normal mode + value: 0 + - name: LowPower + description: Low-power mode + value: 1 +enum/LBCL: + bit_size: 1 + variants: + - name: NotOutput + description: The clock pulse of the last data bit is not output to the CK pin + value: 0 + - name: Output + description: The clock pulse of the last data bit is output to the CK pin + value: 1 +enum/LBDL: + bit_size: 1 + variants: + - name: Bit10 + description: 10-bit break detection + value: 0 + - name: Bit11 + description: 11-bit break detection + value: 1 +enum/M0: + bit_size: 1 + variants: + - name: Bit8 + description: "1 start bit, 8 data bits, n stop bits" + value: 0 + - name: Bit9 + description: "1 start bit, 9 data bits, n stop bits" + value: 1 +enum/M1: + bit_size: 1 + variants: + - name: M0 + description: Use M0 to set the data bits + value: 0 + - name: Bit7 + description: "1 start bit, 7 data bits, n stop bits" + value: 1 +enum/MMRQ: + bit_size: 1 + variants: + - name: Mute + description: Puts the USART in mute mode and sets the RWU flag + value: 1 +enum/MSBFIRST: + bit_size: 1 + variants: + - name: LSB + description: "data is transmitted/received with data bit 0 first, following the start bit" + value: 0 + - name: MSB + description: "data is transmitted/received with MSB (bit 7/8/9) first, following the start bit" + value: 1 +enum/ONEBIT: + bit_size: 1 + variants: + - name: Sample3 + description: Three sample bit method + value: 0 + - name: Sample1 + description: One sample bit method + value: 1 +enum/OVER: + bit_size: 1 + variants: + - name: Oversampling16 + description: Oversampling by 16 + value: 0 + - name: Oversampling8 + description: Oversampling by 8 + value: 1 +enum/OVRDIS: + bit_size: 1 + variants: + - name: Enabled + description: "Overrun Error Flag, ORE, is set when received data is not read before receiving new data" + value: 0 + - name: Disabled + description: Overrun functionality is disabled. If new data is received while the RXNE flag is still set the ORE flag is not set and the new received data overwrites the previous content of the RDR register + value: 1 +enum/PS: + bit_size: 1 + variants: + - name: Even + description: Even parity + value: 0 + - name: Odd + description: Odd parity + value: 1 +enum/RXFRQ: + bit_size: 1 + variants: + - name: Discard + description: "clears the RXNE flag. This allows to discard the received data without reading it, and avoid an overrun condition" + value: 1 +enum/RXINV: + bit_size: 1 + variants: + - name: Standard + description: RX pin signal works using the standard logic levels + value: 0 + - name: Inverted + description: RX pin signal values are inverted + value: 1 +enum/SBKRQ: + bit_size: 1 + variants: + - name: Break + description: "sets the SBKF flag and request to send a BREAK on the line, as soon as the transmit machine is available" + value: 1 +enum/STOP: + bit_size: 2 + variants: + - name: Stop1 + description: 1 stop bit + value: 0 + - name: Stop0p5 + description: 0.5 stop bit + value: 1 + - name: Stop2 + description: 2 stop bit + value: 2 + - name: Stop1p5 + description: 1.5 stop bit + value: 3 +enum/SWAP: + bit_size: 1 + variants: + - name: Standard + description: TX/RX pins are used as defined in standard pinout + value: 0 + - name: Swapped + description: The TX and RX pins functions are swapped + value: 1 +enum/TXFRQ: + bit_size: 1 + variants: + - name: Discard + description: Set the TXE flags. This allows to discard the transmit data + value: 1 +enum/TXINV: + bit_size: 1 + variants: + - name: Standard + description: TX pin signal works using the standard logic levels + value: 0 + - name: Inverted + description: TX pin signal values are inverted + value: 1 +enum/WAKE: + bit_size: 1 + variants: + - name: Idle + description: Idle line + value: 0 + - name: Address + description: Address mask + value: 1 +enum/WUS: + bit_size: 2 + variants: + - name: Address + description: WUF active on address match + value: 0 + - name: Start + description: WuF active on Start bit detection + value: 2 + - name: RXNE + description: WUF active on RXNE + value: 3