⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fpc1011.c

📁 本文件的内容是实现TMS320VC5510对指纹芯片FPC1011C读写程序
💻 C
字号:
/* fps.c - fingerprint sensor driver */

/* Copyright Mistral Software Pvt Ltd. Corporation */

/*
Modification History
---------------------
Version 1.0,07Jul05,CS - Created

*/


/*
DESCRIPTION
------------
This module contains the fingerprint sensor driver functions.

*/

/*
INCLUDE FILES
--------------
*/
#include <stdlib.h>
#include <stdio.h>
#include "fpc1011.h"
#include "spi.h"
//#include "mcbsp55x.h"//cs testing

/* defines */

#define XEMPTY_BIT			0x04
#define RRDY_BIT			0x02

#define MAXROW    			200 /* Total number of row in sensor pixel matrix */
#define MAXCOLUMN 			152	/* Total number of column in sensor pixel matrix */

#define READ_REGS 			0x50
#define READ_SPI_DATA		0x20
#define READ_SPI_STATUS		0x21
#define READ_SENSOR			0x11
#define WRITE_DRIVC			0x75
#define WRITE_ADC_REF		0x76
#define WRITE_SENSEM		0x77
#define WRITE_FIFO_TH		0x7C
#define WRITE_XSENSE		0x7F
#define WRITE_YSENSE		0x81
#define WRITE_XSHIFT		0x82
#define WRITE_YSHIFT		0x83
#define WRITE_XREADS		0x84

#define SHIFT_X				0x13
#define SHIFT_Y				0xC8
#define X_SENSE				0x01
#define Y_SENSE				0x01

/* typedefs */


/* static variables */


/* static function declarations */


/* function definitions */

/********************************************************************
*
* fps_init - Initializes the fingerprint sensor.
*
* PARAMETERS:
*
* RETURNS: FPS_OK on success
*          FPS_ERROR on failure
*
* ERRNO: 
*
*/

int sensorInit( )
{


	int ret_val=0;
	
	SPI_RESET;
	SPI_SET;    
	spi_tx(WRITE_DRIVC, 0xFF);
	spi_tx(WRITE_ADC_REF, 0x02);

	return ret_val;
}




void printRegs()
{

	unsigned int regData[8];
	unsigned int incr=0;
	unsigned int val=0;
	

	spi_tx( READ_REGS, 0x00 );
	

	/*Get the data*/	
	for(incr=0;incr<8;incr++)
	{
	
		spi_tx( READ_SPI_DATA, 0x00 );
		regData[incr]=spi_rx( );
		
	}
	
	for(incr=0;incr<8;incr++)
	{
		printf("Reg no: %u, reg Data: %x \n",2*incr+1,( regData[incr] & 0xFF00 ) >> 8);
		printf("Reg no: %u, reg Data: %x \n",2*incr+2, regData[incr] & 0x00FF );
	}
	

}






void readImage( unsigned int * image_ptr )
{
	unsigned int cntr_x = 0;
	unsigned int cntr_y = 0;
	unsigned int val  	= 0;
		


	spi_tx( READ_SENSOR, 0x00 );

	do
	{
		spi_tx( READ_SPI_STATUS, 0x00 );
		val = spi_rx( );
	}while( !( val & 0x0100 ) );
	
	spi_tx(READ_SPI_DATA, 0x00 );
	val = spi_rx( );
	spi_tx(READ_SPI_DATA, 0x00 );
	val = spi_rx( );
	spi_tx(READ_SPI_DATA, 0x00 );
	val = spi_rx( );

	for( cntr_y = 0; cntr_y < MAXROW*MAXCOLUMN/2; cntr_y++ )
	{
	

		spi_tx(READ_SPI_DATA, 0x00 );
		val = spi_rx( );

		val = ( ~val );
		*image_ptr = ( ( val & 0xFF00 ) >> 8 );
		image_ptr++;
		*image_ptr = ( val & 0x00FF );
		image_ptr++;
	}

	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -