OpenCores

Project maintainers

Details

Name: scab-master
Created: Oct 21, 2024
Updated: Oct 22, 2024
SVN Updated: Oct 29, 2024
SVN: Browse
Latest version: download (might take a bit to start...)
Statistics: View
Bugs: 0 reported / 0 solved
Star0you like it: star it!

Other project properties

Category:Communication controller
Language:VHDL
Development status:Stable
Additional info:
WishBone compliant: No
WishBone version: n/a
License: LGPL

Serial Camera Control Bus (SCCB) Master Controller (for OV7670 Camera Module)

This module implements the OmniVision Serial Camera Control Bus (SCCB) protocol used by the OV7670 Camera. This module supports:

  • Write Mode (3-Phase Write Transmission)
  • Read Mode (2-Phase Write Transmission, then 2-Phase Read Transmission)

/!\ Require Pull-Up on SCL and SDA pins /!\

Usage

  1. Set the inputs (mode, Slave address, register address, register value) (keep unchanged until Ready signal is de-asserted)
  2. Asserts Start input (available only when the SCCB Master is Ready).
  3. SCCB Master de-asserts the Ready signal
  4. SCCB Master re-asserts ths Ready signal at the end of transmission (the master is ready for a new transmission)
  5. In Read mode only, the read value is available when its validity signal is asserted

Pin Description

Generics

NameDescription
input_clockModule Input Clock Frequency
sccb_clockSCCB Serial Clock Frequency

Ports

NameTypeDescription
i_clockInputModule Input Clock
i_modeInputRead or Write Mode ('0': Write, '1': Read)
i_slave_addrInputAddress of the SCCB Slave (7 bits)
i_reg_addrInputAddress of the Register to Read/Write
i_reg_valueInputValue of the Register to Write
i_startInputStart SCCB Transmission ('0': No Start, '1': Start)
o_readyOutputReady State of SCCB Master ('0': Not Ready, '1': Ready)
o_read_value_validOutputValidity of value of the SCCB Slave Register ('0': Not Valid, '1': Valid)
o_read_valueOutputValue of the SCCB Slave Register
o_sclOutputSCCB Serial Clock ('0'-'Z'(as '1') values, working with Pull-Up)
io_sdaInOutSCCB Serial Data ('0'-'Z'(as '1') values, working with Pull-Up)