历史上的今天
返回首页

历史上的今天

今天是:2025年03月17日(星期一)

正在发生

2020年03月17日 | STM32使用FSMC驱动8080时序CH395的一些问题

2020-03-17 来源:eefocus

CH395L是带并口的版本,支持串口、SPI、并口三种模式,网卡类似于内置TCP协议的W5500,用户只需读取一些参数设置socket就可以完成网络通信。CH395具有并口模式,这是个特色,在对速度要求高的场合,并口比SPI等串行方式快很多,在使用stm32f103以fsmc硬件并口驱动ch395时参考秉火和战舰的驱动LCD的例程,因为都是8080时序的设备,方法相似。


在配置过程中,发现在以杜邦线连接ch395模块的情况下,


readWriteTiming.FSMC_AddressSetupTime      = 0x03;  

readWriteTiming.FSMC_DataSetupTime         = 0x08;  

这两个值不能再小于此数值,整个读写周期达到 (3+1  +8+1)*1/72MHz = 182ns,没达到手册的写模式极限值41ns

                                                 

值改小的话读出的数据会重复 出错,只能调大,原因可能是杜邦线的稳定性问题,波形奇丑:

与LCD配置不同的是,需要加上以下:FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait             = FSMC_AsynchronousWait_Disable;


同步等待需要关闭,之前测试失败是因为读写周期不一致,示波器观察 写周期太短,周期与写不一致,FSMC_AccessMode_B下,写周期的参数似乎不受控制,周期过短,切换为FSMC_AccessMode_A ,读写分别配置,示波器查看 读写周期一致,驱动成功。没有再深入研究,具体配置如下:

    readWriteTiming.FSMC_AddressSetupTime      = 0x03;  

    readWriteTiming.FSMC_DataSetupTime         = 0x08;    

    readWriteTiming.FSMC_AccessMode            = FSMC_AccessMode_A;    

    readWriteTiming.FSMC_AddressHoldTime       = 0x00;     

    readWriteTiming.FSMC_BusTurnAroundDuration = 0x00;

    readWriteTiming.FSMC_CLKDivision           = 0x00;

    readWriteTiming.FSMC_DataLatency           = 0x00;    

    FSMC_NORSRAMInitStructure.FSMC_Bank                  = FSMC_Bank1_NORSRAMx;

    FSMC_NORSRAMInitStructure.FSMC_DataAddressMux        = FSMC_DataAddressMux_Disable;

    FSMC_NORSRAMInitStructure.FSMC_MemoryType            = FSMC_MemoryType_NOR;

    FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth       = FSMC_MemoryDataWidth_8b;

    FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode       = FSMC_BurstAccessMode_Disable;

    FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity    = FSMC_WaitSignalPolarity_Low;

    FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait      = FSMC_AsynchronousWait_Disable;    

    FSMC_NORSRAMInitStructure.FSMC_WrapMode              = FSMC_WrapMode_Disable;

    FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive      =   FSMC_WaitSignalActive_BeforeWaitState;

    FSMC_NORSRAMInitStructure.FSMC_WriteOperation        = FSMC_WriteOperation_Enable;

    FSMC_NORSRAMInitStructure.FSMC_WaitSignal            = FSMC_WaitSignal_Disable;

    FSMC_NORSRAMInitStructure.FSMC_ExtendedMode          = FSMC_ExtendedMode_Disable;  

    FSMC_NORSRAMInitStructure.FSMC_WriteBurst            = FSMC_WriteBurst_Disable;

    FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &readWriteTiming;

    FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct     = &readWriteTiming;  


此外参考ch395官方demo--exam0,移植了stm32平台下串口、硬件SPI、模拟并口、硬件FSMC并口的驱动程序,4个Socket分别工作在TCP 客户端、服务器、UDP、IPRAW模式。

推荐阅读

史海拾趣

得倍(DBIC)公司的发展小趣事

在技术创新的基础上,倍(DBIC)公司积极拓展市场,加强品牌建设。公司制定了详细的市场营销策略,针对不同区域和行业进行精准推广。同时,倍(DBIC)公司还积极参与国际展会和论坛,与全球合作伙伴建立联系。这些努力使倍(DBIC)公司的品牌知名度不断提高,市场份额也逐步扩大。

Anderson Power Products公司的发展小趣事

倍(DBIC)公司自创立之初,就致力于在电子行业中进行技术创新。公司投入大量资源进行研发,成功推出了一系列具有革命性的产品,如高效能芯片和智能传感器。这些产品不仅提高了生产效率,还满足了市场对智能化、高效能电子产品的需求。随着技术的不断进步,倍(DBIC)公司逐渐在行业中树立了技术领先的形象,吸引了众多合作伙伴和客户。

海芯科技(AVIA)公司的发展小趣事

随着公司业务的不断拓展和市场份额的逐步扩大,海芯科技开始注重品牌建设和市场推广。公司积极参加各类行业展会和交流活动,与业内同行和客户进行深入交流和合作。同时,公司还加大了对品牌形象的宣传力度,通过广告、宣传册等多种方式提升品牌知名度和美誉度。这些举措不仅提升了公司的市场影响力,也为公司的长期发展奠定了坚实的基础。

Hexawave公司的发展小趣事

为了进一步拓展业务和提升公司的竞争力,海芯科技积极寻求与行业内外的合作伙伴建立战略合作关系。通过与上下游企业的紧密合作,海芯科技成功实现了产业链的整合和优化,进一步提升了产品的质量和性能。同时,公司还通过与国际知名企业的合作,将先进的技术和管理经验引入到公司内部,为公司的发展注入了新的活力。

Carlisle Interconnect Technologies公司的发展小趣事

1959年,对于Carlisle Interconnect Technologies来说是一个里程碑式的年份。这一年,公司正式成为Carlisle Companies Incorporated的一部分,这标志着公司从一个小型创业企业迈入了大型跨国公司的行列。这一转变为公司带来了更多的资源和机会,也使其能够更好地满足主要电子OEM的需求,专注于提供增值解决方案。

Aptiv公司的发展小趣事

作为一家具有社会责任感的企业,Aptiv始终关注社会公益事业。公司积极参与各项社会活动和慈善捐赠,为改善社会环境和提升公众生活质量做出了积极贡献。同时,Aptiv还注重在运营所在城市推动社区发展,通过创造就业岗位、支持教育事业等方式,为当地社会经济的繁荣做出了贡献。

问答坊 | AI 解惑

LED驱动面临的最大问题是热耗及其相关的可靠性问题

LED照明成为厂商主攻市场,以照明应用来说,效率是最主要的关键问题。因瓦数及输出电流大而产生温度过高的问题都是需要改善的地方,同时也是产品提升的要点。       目前LED驱动面临的最大问题是热耗及其相关的可靠性问题。这 ...…

查看全部问答>

如何重新载入或另外再次载入ntdll.dll等系统核心库!

现在的系统核心库一般一加载入内存就被各种软件修改得七七八八啦,什么杀软,病毒,连游戏的反外挂都来掺和,我想在我自己的进程空间内独立载入一份干净的系统核心库或者重新载入.可行吗? 另外问一下,在怎样卸掉内存中的dll(未知所属进程).…

查看全部问答>

问个弱弱的逻辑电路设计问题

1用74283设计一个4位具有加减与或功能的alu 2用逻辑门设计一个8位串行、并行进位加法器 请高手们帮忙,谢谢啦~ 最好有逻辑电路图…

查看全部问答>

电脑内存插槽

我电脑 总是死机  蓝屏 不晓得问题所在,但总是把内存重新插下就好许多   比如解压文件有时候很慢很慢,而我把内存重新插了下就好了   还原系统的时候也是有时候才5MB,重插下就好了,而且有时候无法打游戏,拿去 ...…

查看全部问答>

求教WinCE几个入门Driver开发的问题

刚转来做WinCE驱动,所以现在很多问题还不是很清楚,请xdjm们帮忙解答 开发需求:     WinCE上扫描仪等驱动开发 目前状态:     XP SP2 + VS2005,已经可以进行WinCE上AP开发 求教: 一、WinCE的DDk是不是Platform Build ...…

查看全部问答>

高手请进多MCU通信问题

各位大侠:小弟现在正在开发一个项目,项目描述如下:在一个机箱内部有多块电路板,其中一块是主控制板,其余的都是从电路板(从电路板上也有MCU),现在要求主控制板可以和从电路板上的MCU通信,要求可以是点对点的通信,也可以是广播通信, ...…

查看全部问答>

2812上电运行程序时慢时快

2812上电时运行的慢,但有时上电时运行的快,同样的配置,同一块电路板,运行指示灯闪动频率由cputimer0控制,快慢能明显分变出来。 在仿真器上运行时,有时也出现这个问题,程序烧写后,运行时有时也出现这个问题。 请各位大侠帮帮忙?…

查看全部问答>

dsp串口 f28335

求助,dsp学了好久,却依然不得要领~~已经开始怀疑自己的智商了~~~   一个很容易的问题,关于f28335 串口的程序,我在开发板上烧写,程序正常,然后用自己写的板子同样基本类似的程序,完全没有反应。串口引脚处没有波形。即便时钟和波特率设 ...…

查看全部问答>

利尔达——《大学生嵌入式学习实践--基于MSP430系列》配套资料

利尔达编写的《大学生嵌入式学习实践--基于MSP430系列》配套资料 这是配套程序  -------------------------为获秒杀资格 电路在这个贴里:https://bbs.eeworld.com.cn/viewthread.php?tid=315413&extra=page%3D1&frombbs=1…

查看全部问答>

第三批LaunchPad收到了

昨天下班快递送到单位,一大早就看到了,感谢EEWorld & TI ,赞一个,祝愿EEWORLD越办越好!!!! …

查看全部问答>