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

📄 psd834f2.h

📁 upsd 3200序列的usb驱动
💻 H
字号:
/* psd834f2.h - Register and bit definitons for the PSD834F2 device

- 12/20/99, msr
  >> New release.  Incorporates all prior revisions.

- 1/6/00, msr
 >> Deleted register PMMR1

*/

/*---------------------------------------------------------------------------
Copyright (c) 2002 ST Microelectronics
This example demo code is provided as is and has no warranty,
implied or otherwise.  You are free to use/modify any of the provided
code at your own risk in your applications with the expressed limitation
of liability (see below) so long as your product using the code contains
at least one uPSD products (device).

LIMITATION OF LIABILITY:   NEITHER STMicroelectronics NOR ITS VENDORS OR 
AGENTS SHALL BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF USE, LOSS OF DATA,
INTERRUPTION OF BUSINESS, NOR FOR INDIRECT, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES OF ANY KIND WHETHER UNDER THIS AGREEMENT OR
OTHERWISE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
--------------------------------------------------------------------------*/

#include <map834f2.h>  // include the definition of your system memory map

// Select which functions within psd834f2.c that you would like to include into your
// compile session by defining the associated compiler directive. defined = include, 
// not defined = do not include

// Module: flash_write_with_poll
// Programs a single byte, checks status using polling method.
//#define _F_W_W_P

// Module: flash_write_with_toggle
// Programs a single byte, checks status using toggle method.
//#define _F_W_W_T

// Module: flash_erase_bulk
// Erases the entire Flash memory (all sectors).
//#define _F_E_B

// Module: flash_reset
// Resets the main Flash memory to Read Array mode.
//#define _F_R

// Module: flash_read_id
// Reads the Flash Identifier byte from main Flash memory. 
//#define _F_R_I

// Module: flash_read_sector_protect
// Reads individual Flash sector protection status.
//#define _F_R_S_P

// Module: flash_boot_write_with_poll
// Programs a single byte, checks status using polling method.
//#define _F_B_W_W_P

// Module: flash_boot_write_with_toggle
// Programs a single byte, checks status using toggle method.
//#define _F_B_W_W_T

// Module: flash_boot_erase_bulk
// Erases the Flash boot memory (all sectors).
//#define _F_B_E_B

// Module: flash_boot_reset
// Resets the Flash boot memory to Read Array mode.
//#define _F_B_R

// Module: flash_boot_read_id
// Reads the Flash Identifier byte from boot Flash memory. 
//#define _F_B_R_I

// Module: flash_boot_read_sector_protect
// Reads Flash boot sector protection status and PSD security bit.
//#define _F_B_R_S_P


typedef struct	// general structure of 8 bit register allowing bit access 
	{
	unsigned char bit0 : 1;
	unsigned char bit1 : 1;
	unsigned char bit2 : 1;
	unsigned char bit3 : 1;
	unsigned char bit4 : 1;
 	unsigned char bit5 : 1;
	unsigned char bit6 : 1;
	unsigned char bit7 : 1;
	} Register;    

typedef union	// allow bit or byte access to registers 
	{
	char byte;
	Register bits;
	} Mix_Reg;



//*******************  PSD8XXFX register addresses  ************************

#define DATAIN_A (*(volatile Mix_Reg*)(PSD_REG_BASE+0x00))
#define DATAIN_B (*(volatile Mix_Reg*)(PSD_REG_BASE+0x01))
#define DATAIN_C (*(volatile Mix_Reg*)(PSD_REG_BASE+0x10))
#define DATAIN_D (*(volatile Mix_Reg*)(PSD_REG_BASE+0x11))
#define DATAOUT_A (*(volatile Mix_Reg*)(PSD_REG_BASE+0x04))
#define DATAOUT_B (*(volatile Mix_Reg*)(PSD_REG_BASE+0x05))
#define DATAOUT_C (*(volatile Mix_Reg*)(PSD_REG_BASE+0x12))
#define DATAOUT_D (*(volatile Mix_Reg*)(PSD_REG_BASE+0x13))
#define DIRECTION_A (*(volatile Mix_Reg*)(PSD_REG_BASE+0x06))
#define DIRECTION_B (*(volatile Mix_Reg*)(PSD_REG_BASE+0x07))
#define DIRECTION_C (*(volatile Mix_Reg*)(PSD_REG_BASE+0x14))
#define DIRECTION_D (*(volatile Mix_Reg*)(PSD_REG_BASE+0x15))
#define DRIVE_A (*(volatile Mix_Reg*)(PSD_REG_BASE+0x08))
#define DRIVE_B (*(volatile Mix_Reg*)(PSD_REG_BASE+0x09))
#define DRIVE_C (*(volatile Mix_Reg*)(PSD_REG_BASE+0x16))
#define DRIVE_D (*(volatile Mix_Reg*)(PSD_REG_BASE+0x17))
#define OUTENABLE_A (*(volatile Mix_Reg*)(PSD_REG_BASE+0x0C))
#define OUTENABLE_B (*(volatile Mix_Reg*)(PSD_REG_BASE+0x0D))
#define OUTENABLE_C (*(volatile Mix_Reg*)(PSD_REG_BASE+0x1A))
#define OUTENABLE_D (*(volatile Mix_Reg*)(PSD_REG_BASE+0x1B))
#define CONTROL_A (*(volatile Mix_Reg*)(PSD_REG_BASE+0x02))
#define CONTROL_B (*(volatile Mix_Reg*)(PSD_REG_BASE+0x03))
#define IMC_A (*(volatile Mix_Reg*)(PSD_REG_BASE+0x0A))
#define IMC_B (*(volatile Mix_Reg*)(PSD_REG_BASE+0x0B))
#define IMC_C (*(volatile Mix_Reg*)(PSD_REG_BASE+0x18))
#define OMC_AB (*(volatile Mix_Reg*)(PSD_REG_BASE+0x20))
#define OMC_BC (*(volatile Mix_Reg*)(PSD_REG_BASE+0x21))
#define OMCMASK_AB (*(Mix_Reg*)(PSD_REG_BASE+0x22))
#define OMCMASK_BC (*(Mix_Reg*)(PSD_REG_BASE+0x23))
#define MAINPROTECT (*(Mix_Reg*)(PSD_REG_BASE+0xC0))
#define ALTPROTECT (*(Mix_Reg*)(PSD_REG_BASE+0xC2))
#define JTAG (*(volatile Mix_Reg*)(PSD_REG_BASE+0xC7))
#define PMMR0 (*(volatile Mix_Reg*)(PSD_REG_BASE+0xB0))
#define PMMR2 (*(volatile Mix_Reg*)(PSD_REG_BASE+0xB4))
#define PAGE (*(volatile Mix_Reg*)(PSD_REG_BASE+0xE0))
#define VM (*(Mix_Reg*)(PSD_REG_BASE+0xE2))



//****************** PSD8XXFX control register bit definitions *********

//PSD PORTA
#define PA0		bit0
#define PA1		bit1	
#define PA2		bit2	
#define PA3		bit3	
#define PA4		bit4	
#define PA5		bit5	
#define PA6		bit6	
#define PA7		bit7	

//PSD PORTB
#define PB0		bit0
#define PB1		bit1	
#define PB2		bit2	
#define PB3		bit3	
#define PB4		bit4	
#define PB5		bit5	
#define PB6		bit6	
#define PB7		bit7	

//PSD PORTC
#define PC0		bit0
#define PC1		bit1	
#define PC2		bit2	
#define PC3		bit3	
#define PC4		bit4	
#define PC5		bit5	
#define PC6		bit6	
#define PC7		bit7	

//PSD PORTD
#define PD0		bit0
#define PD1		bit1	
#define PD2		bit2	

//PSD JTAG
#define JEN		bit0   // JTAG enable

//PSD PMMR0
#define APD_ENABLE		bit1
#define PLD_TURBO		bit3
#define PLD_ARRAY_CLK	bit4
#define PLD_MCELL_CLK	bit5

//PSD PMMR2
#define PLD_CNTL0	bit2
#define PLD_CNTL1	bit3
#define PLD_CNTL2	bit4
#define PLD_ALE		bit5
#define PLD_DBE		bit6

//PSD VM
#define SRAM_CODE	bit0
#define EE_CODE		bit1
#define FL_CODE		bit2
#define EE_DATA		bit3
#define FL_DATA		bit4
#define PIO_EN		bit7


// Flash parameters

#define NVM_DATA_POLL     0x80		// flash status "data poll" bit at DQ7   
#define NVM_DATA_TOGGLE   0x40		// flash status "toggle poll" bit at DQ6
#define NVM_ERROR         0x20 		// flash status "error" bit at DQ5   


// Misc.
#define TRUE          0x01
#define FALSE         0x00 


⌨️ 快捷键说明

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