categories:
- 硬件设计
- cedar
tags: - 硬件知识
date: 2018-11-24 10:05:16
deli的学习笔记
液晶
液晶驱动原理
液晶面板驱动 cnki
导光板研究 cnki
lCD 伽马校正 cnki
TFT LCD驱动设计 cnki
lcd背光技术 cnki
LCD对比度提升的动态背光控制技术研究与设计 cnki
分区调光 cnki
液晶显示区域动态背光系统优化的研究与实现 cnki
--
categories:
液晶驱动原理
液晶面板驱动 cnki
导光板研究 cnki
lCD 伽马校正 cnki
TFT LCD驱动设计 cnki
lcd背光技术 cnki
LCD对比度提升的动态背光控制技术研究与设计 cnki
分区调光 cnki
液晶显示区域动态背光系统优化的研究与实现 cnki
在绘制一个原理图的时候,由于要和别的板子插接,因此我复制了另一张原理图中的两个排针的封装到
我的新pcb中,同事复制了原理图。当我update pcb图纸时,出现了如下警告
do you want to try and match the remaining components using their designertor
这个情况是由于虽然两个文件都来自同一个工程,但是由于没有在新的工程中建立链接,虽然可以通过
原理图的绘制改变pcb文件中的链接关系,但是在更新pcb的时候会弹出上面的警告。
解决方法是
打开 PCB 文件,并切换到 PCB 文件,点击菜单”Project => Component Links”.
在弹出的对话框中,选中对应的两个原理图和PCB元件,点击”>” 按钮,最後点击”Perform Update” 按钮.OK,搞定
- 学会了新技能,好开心。
##FPGA芯片本身特点
只是书中提到的,其实在arm程序的编写中也有过使用,
例如pid控制器中,保存当前结果,在执行过本周期之后重新释放这个
变量使其又变成可写状态,只是无意的应用,具体的实现机制可以参照这篇博客。
###FPGA的控制器降低功耗的核心是降低内核运行电压。
这也许是目前市面上的主流单片机的电压标准越来越低的主要原因?
FPGA使用多电源供电,IO也可以配置在不同的电压格式下。
###FPGA的部分引脚可以接收差分信号
或许可以直接用来做485之类的差分协议?或者直接作为adc的驱动信号?
或者光耦?我会在以后的使用中注意这个问题。
##PCB设计规范
###电源
电源设计很成熟,大致分为两种:
第一种使用多个ldo进行稳压提供fpga的电源。
第二种使用成熟的电源管理芯片提供多种不同的电源。
个人的见解是,如果是用于开发使用的话,尽量使用前者,一旦损坏维护方便而且成本低。
用于成熟方案需要量产的时候,尤其是在对于体积有严格要求的场合使用第二种方案更合理。
###电源滤波
FPGA近端的电源滤波不能省,每一组电源都应该配一个滤波电容。
我们称之去耦电容,用于提供高频电路中突然出现的功率峰。
###时钟引脚
一般从全局时钟引脚引入复位和时钟,虽然从全局时钟引脚引入复位并不是必须的,但是这对系统
实时性有比较好的保证,也是比较常见的设计。
###布线的小技巧
首先时钟线背面尽量不覆铜,时钟引脚尽可能短。时钟线尽量不与信号线平行,避免干扰。
JTAG四根信号线尽量等长,保持信号完整性。高频信号过孔位置添加电容滤波。足够小。
走线尽量不要走直角。5mil-200ma;50mil-1A注意布线宽度。
##一种新的手工电路板加工工艺,氯化铁腐蚀工艺
看起来挺有意思的工艺,可以手工完成电路板的印制。
完善了FPGA布线上的一些以前没注意到的点。
下一步进行软件建立工程的相关配置。
终于下定决心系统的学习一下fpga。曾经的我能够编写简单的cpld程序简单的
FPGA代码,但是存在许多的问题,首先是对FPGA的硬件系统不够了解,进行有
关项目开发时走了很多弯路,其次,对于大工程的把控能力不强。写出来的代码
移植性差,可读性差。因此在师兄的推荐下选择了新的教材进行系统的学习verilog
语言和FPGA硬件系统。
使用的开发环境是
QUARTUS II 13.0 + ModelSim-Altera Starter Edition 13.0
学习语言使用的书是夏宇闻老师的
《从算法设计到硬线逻辑的实现》高教出版社2000年9月
学习代码规范软件操作等一些知识的是韩彬老师的
《FPGA设计技巧与案例开发详解》电子工业出版社
以上两本书均已经有新版出版,修改多是内容上的修订,学习哪一本都可以
主要参考了一篇pdf文档。作者太懒了选择上传到百度网盘。
开发环境存在硬盘
K:\Soft.Quartus_II\Quartus_II_13\源文件
这条防止我忘记源文件位置
至于和谐内容,请大家下载文件自行查看。
关于modelsim,我安装的并不是se版本,而是
altera版本的,
可能功能差一些,而且存在十万行代码的限制,但是对于我现阶段的学习足够。
有大工程开发需求的人可以选择使用se版本。
其实只是建立一个备忘博客
关于软件的和谐我认为ALTERA只是防止版权纠纷才搞成付费版吧,应该还是
指望芯片和产品赚钱的,对于学习人员使用软件,A和x两家应该都是持支持
态度的。
下一步进行一些硬件设计细节的补充
我前几天学会了如何在一篇博客中插入一个图片。然后今天我又想写博客了。
每次都要打开cmd好烦,cnmd。
懒癌发作之下,我想起了一种叫批处理命令的东西。非计算机相关专业,一窍不通。先百度吧。
在经过了两分钟的百度之后。
我写了下面的文件。
@echo
cls
E:
cd Blog\JluSundeli.github.io\source\_posts
cmd.exe
于是就可以猛击bat文件进入目录了。像我这种低产博主终于可以尽情的写博客了
cls是清屏命令,这是在上个blog中学习的。
cd命令也是
然后新发现就是可以使用批处理命令完成.exe文件的启动
但是随之引发了新的思考,我要是换电脑了我的博客怎么办?
算了,反正近期也换不起。等要换的时候再说吧。
懒是第一生产力
因为懒我们开发了新的方法,虽然这可能直接导致我更懒
准备开始fpga学习教程的编写
从软件安装开始吧
在建立了我的博客之后我发现我忘记了怎么发布我的博客
于是我决定我要写一篇博客记录一下如何发布一篇博客
首先打开命令提示行就是这个东西..>>>>
还没学会如何调整图片的大小,似乎在这个插件下并不能实现图片的压缩
就先放着看看吧。
然后进入你的博客目录。
可以直接按E: 进入你的本地博客的磁盘根目录
e:
然后使用cd+空格+子目录名的方式进入博客的_post文件夹下
以我的博客为例
cd Blog\JluSundeli.github.io\source\_posts\Blogpost
进入本地的子目录后
使用hexo命令新建博客
hexo n “blogname”
然后就可以辣。
部署和发布请参照helloworld那个博文就好了。
写完这篇博文之后觉得有点蠢,但是还是发布了吧。
- cls 是命令提示行的清屏命令
- md 是新建文件夹命令
- cd 用来选择文件夹
旋转编码器购入于淘宝。欧姆龙旋转编码器E6B2_CWZ6C
原装的编码器提供了详细的说明书
需要简单说明书的请参照百度文库
这个旋转编码器的输出是一个NPN三级管,内部输出电路如下–>>
通过NPN晶体管的集电极输出的信号通常使用一个上拉电阻来输出指定的电平信号。
设计的初衷是使用这个模块来测量一个三相直流无刷电机的转速,编码器
的输出对象是一款接口电压为3.3v的单片机。为了保证安全使用了光耦进
行隔离。但是也由于选择了光耦出现了一些问题,最后还是抛弃了使用光
耦的方案,改在三极管的集电极直接接上拉电阻输出。原因在于
待测电机转速为3000rpm、约50rps。使用的旋转编码器为1000线。
旋转编码器的输出为50k,但是光耦的开关频率较低,不能可靠地工作在50k
这个频率下,因此最后放弃了使用光电耦合器的方案,使用了三极管直接进行输出
使用的单片机型号为stm32f103zet6,自带的定时器可以工作在编码器模式下。使用定时器4
统计脉冲数判断旋转的角度。配置TIM4上升沿下降沿均使能,因此旋转一周的脉冲计数为AB两相*线数*2
\=
2*1000*2=4000
电机转速为50rps,因此理论上每秒的计数值为
4000*50=200k
定时器最大计数值为2^16=65536不满足计数要求
因此取定时间隔为0.01s理论脉冲数为2k。使用定时器3工作在中断模式。
每0.01s进入一次中断,判断tim4定时器的计数值,并同时清零计数器4
通过取得的脉冲数计算转速,计算公式为
speed=n*100*60/4000;
化简为
speed=n*3/2;
测得的转速再经过控制器进入调速系统供调速控制器使用。
工业上使用的编码器多不使用三级管输出,因为容易受到干扰。需要的传输线较多。因此
选用编码器时应该注意选型。此外,应该根据具体系统选用合适的编码器,本设计使用的电机转速较高。
要求的控制精度较低。可以选用线数更少的旋转编码器。但是,请买一个欧姆龙的。
- 一次点亮很激动。
- 没了。
从我的不愿意透露姓名的朱金宝师兄手中借到了了这个模块。
等我有钱了我就买一个。QAQ。
然后我又去原子的官网下到了这个的资料。
感谢原子大大的无私付出。资料地址
模块的简单介绍可以去万能的淘宝。淘宝地址
接着你要有一个串口调试小助手。比如我用的原子大大这款。
然后你要有一个usb转串口的小模块。淘宝一个就好。
然后按照手册的教程一步一步的开始调试。
首先验证硬件连接的正确性。
能够正确的回读数据。说明硬件连接无误。然后正式开始进入调试。
看了一大堆指令,还是很冷静的看完了。推荐全部阅读一遍,这样以后用到一些功能的时候
比较容易找到相应的语句,节约后期开发的时间。
拿到模块首先素质三连。测试,重启,恢复出厂设置。
指令 | 指令说明 |
---|---|
AT | 测试指令 |
AT+RST | 重启模块 |
AT+GMR | 查看版本信息 |
ATE | 开关回显功能 |
AT+RESTORE | 恢复出厂设置 |
AT+UART | 设置串口配置 |
测试结果如图。
连接一个路由器,并进行内网透传,建立主机。
选择了wifi模块的初衷就是在远离整套接收系统的时候能够对整套系统进行控制。因此显然
不能使这个模块工作在AP模式。而要连接到一个能够连接到互联网的节点上。
也不知道我的理解是否正确。欢迎大佬来教我如何实现。
AT
返回值如下图
AT+CWMODE
返回值如下图
此时表示你的wifi已经工作在sta模式辣。
AT+RST
返回值如下图
此时表示你的wifi已经工作在sta模式辣。
AT+CWJAP=”MRS114”,”woyebuzhidao114” //连接对象路由器的 ssid 和 password
返回值如下图
此时表示已经成功的连接了你的wifi
对没错我们实验室的wifi就是这么的可怕。
密码是我们老大亲自设置的。刚来的时候我也很惊呆。。。。。。
AT+CIFSR
返回值如下图
其实这一个步骤并不是必须的,当你的内网中有多个从机连接到同一个服务主机的时候才需要根据不同的
ip地址来确定不同的从机标识。
Third
建立一个本地主机。因为要在手机端控制。所以我选择了利用我新买的红米note4x
搭建一个主机。运行内存3gb。其实大家应该都比我有钱的吧。博主哭晕在厕所。
软件本身长这个样子
下载好软件之后,将你的手机和你的wifi模块连入同一个网络。然后建立一个主机。就会得到如下界面。
左边的窗口中显示了你主机的ip地址和你主机的端口号。由于大家一般是通过路由器上网的。通常情况下都是
动态分配ip地址的,为了以后在单片机上移植程序。我将自己手机处于这个网络下的ip地址改为静态。这样每
一次wifi模块就可以通过同样的配置命令连接到我的主机。
AT+CIPSTART="TCP","192.168.1.110",8080
返回值如下图
此时表示已经成功的和主机建立了联系。
主机会显示已经连接的从机地址。如图。
AT+CIPMODE=1
返回值如下图
使用命令进入开始发送模式。
AT+CIPSEND
主机会显示已经连接的从机地址。如图。
注意: 当出现这个界面以后你所有的命令都会作为互相通讯的内容在主机从机之间进行交换。
如果想重新配置wifi模块则需要退出发送模式。退出的方式是发送
+++
注意:这条语句发送的时候不能够带有回车和换行命令,除以以外不管是命令还是数据交换都必须伴随回车换行结束。
0x0d,0x0a
到此为止,模块的调试结束,下一步将进行stm32单片机的程序编写,并验证校园网是否能利用openwrt固件利用路由器建立
主机进行内网透传。
- 一次点亮很激动。
- 没了。