/****************************************************************************
|
* Copyright: (C)2014 Î人ÁèÔÆÇ¶ÈëʽʵÑéÊÒ www.emblinux.com
|
* Author: GuoWenxue<guowenxue@gmail.com> QQ: 281143292
|
* Description: ·Ü¶·STM32v5¿ª·¢°åGPIOÄ£ÄâÉãÏñÍ·SCCB(Serial Camera Control Bus)µÄʵÏÖ,
|
* SCCBµÄ¹¤×÷·½Ê½ÓëI2CÊ®·ÖÀàËÆ£¬ËûʹÓÃOV¹«Ë¾¶¨ÒåµÄ3Ïß´®ÐÐÉãÏñÍ·¿ØÖÆ×ÜÏߣ¬
|
* ¿ÉÒÔ¿ØÖƴ󲿷ÖOVϵÁÐͼÐδ«¸ÐÆ÷¡£SCCBÒ²¿ÉÒÔ¹¤×÷ÔÚ2Ïß´®ÐÐģʽ(SIOCÓëSIOD).
|
* STM32ÉÏʹÓÃPE2ºÍPE3·Ö±ðÁ¬½ÓOV7670µÄSCCBʱÖÓ¿ÚºÍÊý¾Ý¿Ú,¸Ã´úÂëÖ÷ҪʹÓÃ
|
* PE2ºÍPE3µÄGPIO¿ÚÄ£ÄâSCCB(Ò²¼´I2C)×ÜÏßÐÒé
|
*
|
* ChangeLog:
|
* °æ±¾ºÅ ÈÕÆÚ ×÷Õß ËµÃ÷
|
* V1.0.0 2014.08.25 GuoWenxue ·¢²¼¸Ã°æ±¾
|
****************************************************************************/
|
|
/* CF7670C-V3ÉãÏñÍ·Ä£¿éPin¹Ü½ÅºÍSTM32v5 Á¬½Ó±í:
|
*| ²Î¿¼<CF7670C-V3 ¼òҪ˵Ã÷.pdf>ºÍ<·Ü¶·STM32¿ª·¢°åV5ÔÀíͼ.pdf>
|
*+---------------------------------------+------------------------------+
|
*| CF7670C-V3ÉãÏñÍ·Ä£¿éÒý½Å¼°ËµÃ÷ | STM32¶ËÒý½ÅÁ¬½Ó¼°ËµÃ÷ |
|
*+---------------------------------------+------------------------------+
|
*| Pin1-VCC(3.3V,·½º¸Å̱ê¼ÇµÄΪµÚÒ»½Å) | 3.3V |
|
*| Pin2-GND | GND |
|
*| Pin3-SCL(SCCB_SCL²»´øÉÏÀµç×è) | PE2 |
|
*| Pin4-SDA(SCCB_SDA ´ø4.7KÉÏÀµç×è) | PE3 |
|
*| Pin5-VSYNC(OV7670 ֡ͬ²½ÐźÅ) | PE4 |
|
*| Pin6-HREF(OV7670 ÐÐͬ²½ÐźÅ) | NC |
|
*| Pin7-WEN(FIFO(AL422)дÔÊÐí,¸ßµçƽÓÐЧ | PE5 |
|
*| Pin8-XCLK(NC/RE# ¿Õ½Å) | NC |
|
*| Pin9-RRST(FIFO¶ÁµØÖ·¸´Î» | PE6 |
|
*| Pin10-OE#(FIFOÊý¾ÝÊä³öʹÄÜ,µÍµçƽÓÐЧ | GND |
|
*| Pin11-RCK#(FIFO¶ÁÊý¾ÝʱÖÓ | PD12 |
|
*| Pin12-GND | GND |
|
*| | |
|
*| Pin13-D0 FIFOÊý¾Ý¿ÚÊä³öBIT0 | PC0 |
|
*| Pin14-D1 FIFOÊý¾Ý¿ÚÊä³öBIT1 | PC1 |
|
*| Pin15-D2 FIFOÊý¾Ý¿ÚÊä³öBIT2 | PC2 |
|
*| Pin16-D3 FIFOÊý¾Ý¿ÚÊä³öBIT3 | PC3 |
|
*| Pin17-D4 FIFOÊý¾Ý¿ÚÊä³öBIT4 | PC4 |
|
*| Pin18-D5 FIFOÊý¾Ý¿ÚÊä³öBIT5 | PC5 |
|
*| Pin19-D6 FIFOÊý¾Ý¿ÚÊä³öBIT6 | PC6 |
|
*| Pin20-D7 FIFOÊý¾Ý¿ÚÊä³öBIT7 | PC7 |
|
*+------------------+-----------------+---------------------------------+
|
*/
|
#ifndef __STM32V5_SCCB_H
|
#define __STM32V5_SCCB_H
|
#include "stm32f10x.h"
|
|
/* I2C SCL/SDA Pin operation macro */
|
#define SCL_H GPIOE->BSRR = GPIO_Pin_2
|
#define SCL_L GPIOE->BRR = GPIO_Pin_2
|
|
#define SDA_H GPIOE->BSRR = GPIO_Pin_3
|
#define SDA_L GPIOE->BRR = GPIO_Pin_3
|
|
#define SCL_read GPIOE->IDR & GPIO_Pin_2
|
#define SDA_read GPIOE->IDR & GPIO_Pin_3
|
|
void init_sccb_gpio(void);
|
int I2C_WriteByte(uint16_t WriteAddress , uint8_t SendByte , uint8_t DeviceAddress);
|
int I2C_ReadByte (uint8_t* pBuffer, uint16_t length, uint8_t ReadAddress, uint8_t DeviceAddress);
|
|
#endif
|