历史上的今天

今天是:2024年08月25日(星期日)

正在发生

2021年08月25日 | lpc1788移植u-boot-2010.03之spi flash移植

发布者:VS821001 来源: eefocus关键字:lpc1788  spi 手机看文章 扫描二维码
随时随地手机看文章

开发环境:
MCU:       NXP  LPC1788
u-boot:     u-boot-2010.03
SPI Flash: AT45DB321D

由于ATMEL的spi flash在u-boot中已经实现,我们就不要去写AT45DB321D的驱动了,现在考虑SPI总线的问题(u-boot中的spi驱动在driver/spi目录中),在driver/spi目录中可以看到各种芯片的spi总线实现,不过lpc1788是没有的,别动别动看到了一个soft_spi.c,好了现在spi总线的驱动也不用写了,直接用soft spi。

在lpc1788的配置文件中加入以下内容:

#define CONFIG_CMD_SF //加入cmd_sf.c文件的编译,实现u-boot中spi flash的操作命令sf

#define CONFIG_SOFT_SPI //加入driver/spi/soft_spi.c文件编译,实现软件spi总线

#define CONFIG_SPI_FLASH //加入driver/mtd/spi/spi_flash.c文件编译

#define CONFIG_SPI_FLASH_ATMEL //加入driver/mtd/spi/atmel.c文件编译,实现AT45的驱动


#define CONFIG_SF_DEFAULT_MODE SPI_MODE_1

#define SPI_SCL spi_scl

#define SPI_SDA spi_sda

#define SPI_READ spi_read()

void spi_scl(int);

void spi_sda(int);

unsigned char spi_read(void);

#define SPI_DELAY udelay(2)


在board/nxp/lpc1788/board.c文件中加入以下内容: 


void spi_scl(int bit)

{

struct lpc178x_gpio_dsc dsc;

dsc.port = 2;

dsc.pin = 22;

lpc178x_gpout_set(&dsc, bit);

}


void spi_sda(int bit)

{

struct lpc178x_gpio_dsc dsc;

dsc.port = 2;

dsc.pin = 27;

lpc178x_gpout_set(&dsc, bit);

}


unsigned char spi_read(void)

{

struct lpc178x_gpio_dsc dsc;

dsc.port = 2;

dsc.pin = 26;

return (unsigned char)lpc178x_gpin_get(&dsc);

}

int spi_cs_is_valid(unsigned int bus, unsigned int cs)

{

return bus == 0 && cs == 0;

u-boot中spi flash的操作命令:
1、选择spi flash
    sf probe 0
2、擦除命令
   sf erase 0 0x210      //注意擦除长度一定是0x210的整数倍
3、读命令
    sf read addr  offset  len
4、写命令
    sf write addr offset len

关键字:lpc1788  spi 引用地址:lpc1788移植u-boot-2010.03之spi flash移植

上一篇:MicroPython之LPC1788移植
下一篇:S3C2440启动代码分析 start.s

推荐阅读

随着人们生活水平的不断提高,对产品服务的要求也发生了变化,消费端开始升级并带来新的挑战和机遇。而服务机器人似乎为新的时代而生,逐步开始进入社会,进入家庭,服务于平民大众。在2018世界机器人大会上,北京康力优蓝机器人科技有限公司创始人兼首席执行官刘雪楠认为,服务机器人最大的市场是面向家庭的服务机器人,如果从商业价值的角度来讲,最大的...
随着科技的发展以及技术的成熟,机器人技术正快速拓展至人类生活的各个方面,医疗机器人、特种机器人、仓储物流机器人、协作机器人等,各种新兴机器人与人类之间开展互动和探索,并且为人类提供协助和服务,日益影响人类及其生活。 在工业4.0与中国智造的变革浪潮中,一批以智能制造、智慧服务为使命与愿景的机器人企业竞相涌现,其中江西太空机器人科...
万用表有数字万用表和指针式万用表,两种表都可以测量,下面我们一一演示测量方法数字万用表测量在使用数字万用表测量时,使用的是“二极管档”进行测量,红表笔是相当于是电池的正极,黑表笔相当于是电池的负极。三极管分为NPN型和PNP型的管子,它们的内部结构是不太一样的。但是B极跟C、E极之间都存在一个PN结,当表笔给PN结加上正向电压是能够导通的。...
集微网消息,SSD、服务器需求激增下,7月NAND闪存批发价格16个月来首次上升,指标性产品TLC 256Gb价格达3.35美元/个,较6月提高3%。不过业内指出,这种涨势可能是暂时的。日经新闻报道指出,NAND闪存涨价主要是受益于PC用SSD以及数据中心用服务器需求的增加,供应端实际上自今年初春以来就已开始紧绷。但随着三星、铠侠今年下半年新产能的开出,价格预计...

史海拾趣

问答坊 | AI 解惑

OFDM基础知识

卫星通信和短波(1.5~30MHz)通信是目前远距离通信的两种主要手段。对军事通信而言,卫星在战争期间易被干扰或阻塞,甚至被摧毁而失去通信能力,因此,就通信的顽存性、机动性和灵活性而言,短波通信具有无可比拟的优越性。其发射功率小,设备简单 ...…

查看全部问答∨

电子技术课程设计题目:秒表(要求:能精确显示0.01秒的变化;能同时对3个不同事件进行计时:比如长跑前三名)

电子技术课程设计题目:秒表(要求:能精确显示0.01秒的变化;能同时对3个不同事件进行计时:比如长跑前三名) …

查看全部问答∨

关于ARM中断处理的问题----《ARM嵌入式系统开发-软件设计与优化》第九章中疑问

各位过年好哦~ 呵呵,小弟这里有点疑惑相同大家讨论讨论~,这个问题是《ARM嵌入式系统开发-软件设计与优化》一书中的见下: 第九章-中断处理 9.3.2嵌套中断 在这一节中,描述了如何处理嵌套式的中断(不能单纯的在IRQ模式下打开中断允许位) ...…

查看全部问答∨

This file should only be compiled with iccavr or aavr with processor option -v1

#error This file should only be compiled with iccavr or aavr with processor option -v1 有人用IAR AVR遇到过这个问题吗?…

查看全部问答∨

无线电通信

RT 无线电通信怎么入门啊~~~…

查看全部问答∨

设计家用电器电路控制板时的EMC方法

家电控制板的小体积,低成本决定了在线路中不会使用高成本的材料来解决其电磁干扰问题。家电控制板的干扰主要来自三大方面:一是控制板本身产生的干扰,二是来自负载的干扰,三是来自线路上的干扰。解决这些干扰可以分别采用不同的方案来达成。 控 ...…

查看全部问答∨

请教,stm8a的芯片,有没有位寻址功能,求解用过大侠们

                                 请教,stm8a的芯片,有没有位寻址功能,我看没大量资料,没有看到有关说明,求解用过大侠们~~~~~~~~~~~~~~~~~~~~~~ ...…

查看全部问答∨

怎样让应用程序支持中文

我公司有个触摸屏是用wince英文系统的,我们电脑和触摸屏的故障信息是同步的,但是电脑改成中文故障信息后,触摸屏不能显示出中文故障,只显示乱码。 我应该怎么弄才能显示出来啊。…

查看全部问答∨

OV系列摄像头配置格式如何解释?

FPGA的I2C对摄像头配置怎么没有地址,只有数据呢。谁能解释下。///////////// Config Data LUT  ////////////////////////// alwaysbegin case(LUT_INDEX) // Audio Config Data 0 : LUT_DATA <= 16\'h0000; 1 : LUT_DATA <= 16\'h1140; ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved