Skip to content

Added I2C Module Brief#66

Open
Doppl-r wants to merge 1 commit intomainfrom
Add_I2C_Brief
Open

Added I2C Module Brief#66
Doppl-r wants to merge 1 commit intomainfrom
Add_I2C_Brief

Conversation

@Doppl-r
Copy link

@Doppl-r Doppl-r commented Feb 28, 2026

Created and added I2C Module brief for IO

Copy link
Collaborator

@Meowcaroni Meowcaroni left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Doppl-r Overall well-written, just need more descriptiveness and formatting fixes.

| I2CDR (data register) | 000 | R/W 0x00 | Holds the data for transmission or recently received data bytes. |
| I2CCR (Control Register) | 001 | R/W 0x00 | Enables I2C, sets Master/Slave mode, and handles Start/Stop generation. |
| I2CSR (Status Register) | 010 | R/W 0x00 | Indicates Bus Busy, Arbitration Lost, Address Match, and RX/TX Status |
| I2CBR (Baud Rate) | 011 | R/W 0x02 | Sets the clock frequency for the SCL line based on the system clock. |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Baud Rate, although applicable here, is a specific terminology for UART since it uses asynchronous clock signals. To prevent confusion, please use a different name like suggested below:

Suggested change
| I2CBR (Baud Rate) | 011 | R/W 0x02 | Sets the clock frequency for the SCL line based on the system clock. |
| I2CCD (Clock Divider) | 011 | R/W 0x02 | Sets the clock frequency for the SCL line based on the system clock. |

Clock Modes: Supports standard mode, 100kbps, fast-mode, 400kbps, and sometimes a high-speed mode (3.4 Mbps). For addressing it supports a standard 7-bit addressing or extended 10-bit addressing mode for identifying slaves. Multi-Master; includes built in collision detection and arbitration logic of two masters attempt to control the bus simultaneously. Pull-yps; an open-drain protocol the physical lines (SDA/SCL) require external pull-up resigstors to function.

Behavior & Timing:
Timing is governmed by the SCL signal. Data on the SDA line must be stable while SCL is high. Transitions on SDA while SCL is high are reserved for Start and Stop conditions.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Possibly provide a brief description of what a data transfer would look like in I2C for members

Timing is governmed by the SCL signal. Data on the SDA line must be stable while SCL is high. Transitions on SDA while SCL is high are reserved for Start and Stop conditions.

Errors & Dependencies:
Errors: Managed via irq_o. Common errors are; arbitatrion lost, NACK (No acknowledge from slave) And bus overrun.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Provide one-line descriptions of errors and their causes

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pretty good here too, just need a little more descriptiveness and formatting fixes. Again, please split parameter and signal tables and add heading formatting (+ bullet points if you'd like)

@Meowcaroni Meowcaroni assigned Meowcaroni and Doppl-r and unassigned Meowcaroni Mar 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants