at45db161驱动

发布者:Blissful5最新更新时间:2015-07-09 来源: 51hei关键字:at45db161  驱动 手机看文章 扫描二维码
随时随地手机看文章
unsigned char AT45DBXX_STATUS(void)
{
    unsigned char temp;
    spi_cs(0);
 SPI_Send_Data(0Xd7);
    temp =  SPI_Send_Data(0Xff);
    spi_cs(1);
    return temp; //bit7 0=busy  bit6 1=Compare
                 // bit1 1=PROTECT bit0 0=528byte 1=512byte
}

unsigned char AT45XX_ID(void)
{
 unsigned char temp;
    spi_cs(0);
 SPI_Send_Data(0X9F);
 temp=SPI_Send_Data(0xff);
 temp=SPI_Send_Data(0xff);
 spi_cs(1);
    return temp;
}
void ContinuousArrayLowRead(unsigned int page,unsigned int addrs,
                            unsigned char *dat,unsigned int lenght)
{
    spi_cs(0);
 SPI_Send_Data(0X03);
    page<<=1;
    if(addrs&0x100)page=page+1;
 SPI_Send_Data((page>>8));
 SPI_Send_Data(page);
 SPI_Send_Data(addrs);
    while(lenght)
   {
  *dat = SPI_Send_Data(0Xff);
     dat++;
     lenght--;
   }
    spi_cs(1);
}
void Buffer1ToMainWithErase(unsigned int page)
{
    spi_cs(0);
 SPI_Send_Data(0X83);
 SPI_Send_Data((page>>7));
 SPI_Send_Data(page<<1);
 SPI_Send_Data(0x00);
    spi_cs(1);
}
void AT45Buffer1Write(unsigned int addrs,unsigned char *dat,unsigned int lenght)
{
    spi_cs(0);
 SPI_Send_Data(0X84);
 SPI_Send_Data(0x00);
 SPI_Send_Data(addrs>>8);
 SPI_Send_Data(addrs);
    while(lenght)
   {
   SPI_Send_Data(*dat);
     dat++;
     lenght--;
   }
    spi_cs(1);
}
void AT45Buffer1Read(unsigned int addrs,unsigned char *dat,unsigned int lenght)
{
    spi_cs(0);
 SPI_Send_Data(0Xd1);
 SPI_Send_Data(0x00);
 SPI_Send_Data(addrs>>8);
 SPI_Send_Data(addrs);
    while(lenght)
   {
   *dat = SPI_Send_Data(0xff);
     dat++;
     lenght--;
   }
    spi_cs(1);
}
void MainToBuffer1AT45(unsigned int page)
{
    spi_cs(0);
 SPI_Send_Data(0X53);
 SPI_Send_Data((page>>7));
 SPI_Send_Data(page<<1);
 SPI_Send_Data(0x00);
    spi_cs(1);
}
void Buffer2ToMainWithErase(unsigned int page)
{
    spi_cs(0);
 SPI_Send_Data(0X86);
 SPI_Send_Data((page>>7));
 SPI_Send_Data(page<<1);
 SPI_Send_Data(0x00);
    spi_cs(1);
}[page]
void AT45Buffer2Write(unsigned int addrs,unsigned char *dat,unsigned int lenght)
{
    spi_cs(0);
 SPI_Send_Data(0X87);
 SPI_Send_Data(0x00);
 SPI_Send_Data(addrs>>8);
 SPI_Send_Data(addrs);
    while(lenght)
   {
   SPI_Send_Data(*dat);
     dat++;
     lenght--;
   }
    spi_cs(1);
}
void AT45Buffer2Read(unsigned int addrs,unsigned char *dat,unsigned int lenght)
{
    spi_cs(0);
 SPI_Send_Data(0Xd3);
 SPI_Send_Data(0x00);
 SPI_Send_Data(addrs>>8);
 SPI_Send_Data(addrs);
    while(lenght)
   {
   *dat = SPI_Send_Data(0xff);
     dat++;
     lenght--;
   }
    spi_cs(1);
}
void MainToBuffer2AT45(unsigned int page)
{
    spi_cs(0);
 SPI_Send_Data(0X55);
 SPI_Send_Data((page>>7));
 SPI_Send_Data(page<<1);
 SPI_Send_Data(0x00);
    spi_cs(1);
}
void ChipErase(void)
{
    spi_cs(0);
 SPI_Send_Data(0Xc7);
 SPI_Send_Data(0x94);
 SPI_Send_Data(0x80);
 SPI_Send_Data(0x9a);
    spi_cs(1);
}
void PowerOfPage256(void)
{
    spi_cs(0);
 SPI_Send_Data(0X3d);
 SPI_Send_Data(0x2a);
 SPI_Send_Data(0x80);
 SPI_Send_Data(0xa6);
    spi_cs(1);
}
void test_at45xx(void)
{
unsigned char status,i;
unsigned int n;
unsigned char rx_dat[153];
const unsigned char leab[10]={0x00,0x01,0x02,0x03,0x55,0xaa,0x88,0x99,0x88,0xaa};
status = AT45XX_ID();
SCI_Send_dat(status);
//ChipErase();
do{
status = AT45DBXX_STATUS();
SCI_Send_dat(status);
}while((status&0x80)==0);
ContinuousArrayLowRead(0,1, rx_dat,100);//0x03
for(i=0;i<100;i++){SCI_Send_dat(rx_dat[i]);rx_dat[i]=0;}
/*for(n=0;n<512;n++)
{
AT45Buffer1Write(n,&n,1);//0x84  0x87
status = AT45DBXX_STATUS();
//SCI_Send_dat(status);
while((status&0x80)==0);
}

AT45Buffer1Read(0x00,rx_dat,10);
for(i=0;i<10;i++){SCI_Send_dat(rx_dat[i]);rx_dat[i]=0;}
do{
status = AT45DBXX_STATUS();
SCI_Send_dat(status);
}
while((status&0x80)==0);
Buffer1ToMainWithErase(0);
do{
status = AT45DBXX_STATUS();
SCI_Send_dat(status);
}
while((status&0x80)==0);
MainToBuffer1AT45(0);//0x53
do{
status = AT45DBXX_STATUS();
SCI_Send_dat(status);
}
while((status&0x80)==0);
AT45Buffer1Read(0x00,rx_dat,150);
for(i=0;i<150;i++)SCI_Send_dat(rx_dat[i]);
*/
 
}
关键字:at45db161  驱动 引用地址:at45db161驱动

上一篇:最新的MSP430普通IO模拟IIC程序!
下一篇:ks0108驱动

推荐阅读最新更新时间:2024-03-16 14:24

基于神经网络的无位置传感器无刷直流电机驱动设计
1实机测试 实验系统的结构如图5所示。扭矩仪的 测量 范围是10kg-cm。在这个控制系统里的电动势估计神经网络模型有7个输入层,14个中间层,和两个输出层。神经网络被离线训练后来处参考速度和的负载的波动。特别地,在扭矩为0.001,0.5,1.0 N-m,当参考速度从400→800→1200rpm,通过一个位置 传感器 驱动 电机 来获得训练数据。电动势估计神经网络模型经过这样的训练后被应用到实机测试中,在该实机中,参考速度固定但负载变化。图6表明了在参考速度为1000rpm,负载扭矩从0增加到10kg-cm所得到的实验结果。从表上可以明显看出,即使是在负载变化时, 电机 速度仍与给定参考速度一致。在无负载运行和转矩为10kg
[电源管理]
基于神经网络的无位置传感器无刷直流电机<font color='red'>驱动</font>设计
新能源汽车上驱动电机的电磁线应用
电磁线下游应用广泛 电磁线在汽车领域有诸多应用,新能源汽车主要应用于驱动电机的定子绕组。电磁线是由导体和绝缘层组成的导线,主要用于制造电气产品中的线圈或绕组。电磁线按照截面形状可分为圆线、扁线、异形线;按照绝缘层特点可分为漆包线、绕包线、无极绝缘线等。电磁线行业下游领域包括家用电器,电力设备,工业电机,汽车,电动工具等,应用场景逐渐由传统行业延伸至新能源车、风光储等领域。在汽车领域,电磁线可应用于驱动电机、发电机、压缩机、点火线圈等,其中电磁线在新能源汽车上最主要的应用是驱动电机的定子绕组。 上图左:202年中国电磁线行业下游应用领域占比 上图右:电池线绕组 在新能源汽车驱动电机中,扁线相比圆线制造工艺更加复杂。圆线由线坯经
[嵌入式]
新能源汽车上<font color='red'>驱动</font>电机的电磁线应用
英飞凌推出用于新能源车的IGBT门级驱动
    英飞凌科技股份有限公司推出新一代应用于新能源汽车的高压IGBT门级驱动器。有了专为混合动力/电动汽车的主逆变器而设计的全新EiceDRIVER SIL和EiceDRIVER Boost驱动器,汽车系统供应商便能够更轻松地设计出更具成本效益的HEV电力传动传动子系统,该系统完全符合ASILC/D功能安全要求标准(ISO26262)。新的EiceDRIVER的目标应用是使用400V、600V和1200V汽车级IGBT、功率高达120kW的HEV逆变器。
[汽车电子]
典型方案和应用解析:线性LED驱动
在众多照明应用中,线性led驱动器是首选的方案,因为它们相对简单,易于设计,且使LED能够以精确稳流电流来驱动,而无论LED正向压降或输入电压如何变化。由于驱动器是线性结构,它们必须匹配应用的功率耗散要求。安森美半导体提供电流范围在10 mA到1 A之间的宽广范围线性LED驱动器方案,包括新颖的线性恒流稳流器(CCR)方案及其它众多线性驱动器方案。 针对低电流LED驱动的线性CCR及应用示例 在电流低于350 mA的许多低电流LED应用中,如汽车组合尾灯、霓红灯替代、交通信号灯、大型显示屏背光、建筑物装饰光及指示器等,可以采用普通的线性稳压器或是电阻来提供LED驱动方案。电阻用于限制LED串的电流,是成本最低的方案,易于设计,
[电源管理]
基于CH375的LPT-USB打印机驱动器的设计
1 引言   本课题来源于北京普析通用公司。 由于该公司现有光谱仪器的单机版(如1810和T6等)采用的是并行口打印技术,而随着USB打印机技术的逐渐普及,并行口打印机越来越少,有些用户原有的打印机只是USB接口而非并行口,因此现有仪器对打印机的支持不能适应用户需要。为了使该公司的并行口仪器直接和USB打印机相连,笔者设计了一种LPT-USB打印机驱动器,实现并口仪器与USB打印机的连接。   笔者利用单片机和USB总线接口器件实现LPT-USB打印机驱动器的设计。利用该设计将能够实现并行打印口数据在USB打印机上的直接打印,克服了有些并口仪器必须连接并口打印机才能打印的弊端,极大地方便了用户的使用。 2 CH375的特点及工
[单片机]
大功率LED恒流驱动电路的设计实例
虽然大功率LED现在还不能大规模取代传统的白炽灯,但它们在室内外装饰、特种照明方面有着越来越广泛的应用,因此掌握大功率LED恒流驱动器的设计技术,对于开拓大功率LED的新应用至关重要。LED按照功率和发光亮度可以划分为大功率LED、高亮度LED及普通LED。一般来说,大功率LED的功率至少在1W以上,目前比较常见的有1W、3W、5W、8W和10W。已大批量应用的有1W和3W LED,而5W、8W和10W LED的应用相对较少。预计大功率LED灯会在2008年奥运会上大量应用,因此电子和照明行业都非关注LED照明新技术的发展应用。 恒流驱动和提高LED的光学效率是LED 应用设计的两个关键问题,本文首先介绍大功率L
[半导体设计/制造]
大功率LED恒流<font color='red'>驱动</font>电路的设计实例
高效驱动LED离线式照明
在路灯应用中,一种可行的配置是创建 300V/0.35 安培负载的 80 个串联的 LED。在选择电源拓扑结构时,需要制定隔离和功率因数校正 (PFC) 相关要求。隔离需要大量的安全权衡研究,其中包括提供电击保护需求和复杂化电源设计之间的对比权衡。在这种应用中,LED 上存在高压,一般认为隔离是非必需的,而 PFC 才是必需的,因为在欧洲 25 瓦以上的照明均要求具有 PFC 功能,而这款产品正是针对欧洲市场推出的。   就这种应用而言,有三种可选电源拓扑:降压拓扑、转移模式反向拓扑和转移模式 (TM) 单端初级电感转换器 (SEPIC) 拓扑。当 LED 电压大约为80 伏特时,降压拓扑可以非常有效地被用于满足谐波电流要求。在这
[电源管理]
高效<font color='red'>驱动</font>LED离线式照明
ISA数据采集卡的WDM驱动程序实现
摘要: ISA设计在WINOWS新的驱动程序模型WDM(WINDOWS DRIVER MODEL)中没有获得很好的支持,使用WDM实现需要一些特殊处理。主要讨论老式ISA设备的WDM驱动程序的设计与实现。 关键词: Windows驱动程序模型(WDM) 工业标准结构(ISA) 数据采集 WDM作为微软为WINDOWS 2000及以后版本准备的新驱动模型,它可以在WINDOWS 98及以后的操作系统上共享。这种具有跨平台性的设备驱动模型可以大大简化驱动程序的开发工作。W
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved