完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
` Android是基于Linux内核的开源手机操作系统名称,以其开源、免费、功能强大等优势,目前已经牢牢占据大量市场,成为最流行的智能手机平台。而PSoC是全球最为灵活、高度集成的数模混合芯片,如何将两者结合起来进行创新性的设计呢?这里结合IFLabs PSoC3核心板来给大家介绍一下如何使用Android智能手机来控制PSoC芯片。 IFLabs精品PSoC3核心板,是全网最强CY8C3866AXI-040核心开发板,无需购买价格高昂的Miniprog3编程器也可以开展PSoC3芯片的学习和开发。同时,经过IFLabs专业设计团队的优化设计,使得PSoC3核心板拥有小巧的尺寸,可以作为一个功能模块轻松嵌入到用户的电路板系统中,从而实现可重复利用。IFLabs专业设计团队还精心打造了几个非常典型的例子,涉及组件应用、USB接口固件驱动以及上位机开发、BoostConvertor开发、Android智能手机接口应用等等。这些例子全是独家资料,操作步骤非常详细,用户很容易便可以实现PSoC开发的从入门到精通。 IFLabs PSoC3核心板: 由于论坛发帖字数的限制,没办法提供完整的实例,这里介绍了主要部分内容,更为详细的知识请参阅淘宝店铺:IFLabs IFLabs PSoC3核心板开发手册中提供了最为完整的开发指导。 IFLabs核心板详情:http:去掉我//item.taobao.com/item.htm?id=45670456873 Android系统是基于Linux内核框架的。Google公司提供了完善的Andorid SDK开发包,并通过Java语言来进行开发。编译开发环境可以使用Eclipse集成开发环境,Andorid SDK开发包中提供了Eclipse的插件工具,这样便可以很方便地创建Android应用程序。另外,程序代码编写完成之后,我们还可以利用Android模拟器(AVD)来测试程序。 7.4 Android USB接口模式 Android嵌入式操作系统为设备的USB接口赋予了强大的功能,可以支持各种各样的USB设备。除了普通的数据传输之外,Android还可以实现类似于计算机USB接口那样的USB主机功能。 从Android 3.1(API Level 12) 开始,Andriod平台开始支持USB附件模式(USB Accessory)和USB主机模式(USB Host)两种工作模式。对于USB附件模式,Android设备作为一个外部USB功能设备,而外部的USB设备作为USB主机。对于USB主机模式,Android设备作为一个USB主机,而外部的USB设备作为USB功能设备主机。由于篇幅限制,关于Android USB接口的更为详细请参阅IFLabs PSoC3核心板开发手册。 7.7 电路原理图这里通过一个完整的实例来展示一下Android平台USB接口控制开发的全过程。我们使用Android手机控制外部USB设备来实现DA转换器的输出控制,这里需要设计外部USB硬件电路、固件程序以及Android手机端的应用程序。电路中使用的是IFLabsPSoC3核心板或者IFLabsPSoC3 DevKit,并外接高速比较器ADCMP600,构成一个完整的电路系统,如图26.7所示。电路构成的详细介绍参阅开发手册。这个电路所需要完成的功能是,接收Android手机发送的控制指令,调节3个比较器的阈值信号,并向外输出高压控制信号。 1.创建项目 打开Cypress公司的PSoC Creator软件,在PSoC Creator集成开发环境中,选择“File”→“New”→“Project”菜单命令,打开“New Project”对话框,如图26.8所示。这里按照如下几项进行设置: 图26.8 创建项目 在“New Project”对话框中,单击“OK”按钮完成项目创建过程。此时,将显示创建后的项目开发环境。然后便可以进行功能设计。 2.功能组件配置 PSoC项目创建完成之后,便可以在PSoC Creator软件项目开发环境的工作区进行设计。设计过程主要是在“Component Catalog”区选择合适的功能组件,放置到工作区“TopDesign.cysch”,并进行必要的功能配置。这里,我们所设计的是USB接口的DA控制,需要用到USB组件、VDAC组件以及Opamp组件。具体的操作步骤如下: (1)在PSoC Creator软件项目开发环境的“Component Catalog”区的“Communication”中找到USB组件、VDAC组件、Bootloadable以及Opamp组件。并将组件按照如图26.9所示的电路图放置和连线。 图26.9 放置功能组件 (2)双击USBFS图标,打开“Configure ‘USBFS’”对话框,如图26.10所示。在“Device Descriptor”选项卡中,单击“Device Descriptor”则显示设备描述符的主要属性设置页。 图26.10 设置USB设备ID 这里,主要设置的是USB设备的ID,例如可以将Vendor ID设置为0x1981,Product ID设置为0x1212。用户也可以根据需要对其他一些信息进行设置。 (3)设置完成后,单击“OK”按钮退出USB功能组件的配置。 (4)双击VDAC8功能组件,打开“Configure ‘VDAC8’”对话框,如图26.11所示。这里按照如下参数来对4个VDAC8功能组件进行设置: q Range:表示输出电压的范围。“0 –1.020 V (4mV/bit)”表示输出电压范围为0~1.020V,精度为4mV步长;“0 – 4.080 V (16mV/bit)”表示输出电压范围为0~4.080V,精度为16mV步长。这里选择输出范围为“0 – 4.080 V (16mV/bit)”。 q Value:表示默认输出电压的大小。其中,“mV”编辑框中用于填写输出的电压值,以mV为单位;“8 bit Hex”编辑框中用于填写电压值所对应的十六进制值。这两者是关联的。 q Speed:用于设置VDAC的速度模式。“Slow Speed”表示低速模式,“High Speed”表示高速模式。这里选择“Slow Speed”低速模式即可。 q Data Source:用于设置该组件所接收的数据源。“DAC Bus”表示DAC总线上的数据,“CPU orDMA (Data Bus)”表示固件程序中设置或者DMA数据总线上的数据。这里选择“CPU or DMA (Data Bus)”由固件程序来设置。 q Strobe Mode:用于设置触发模式。“External”表示外部触发,“Register Write”表示使用寄存器写入触发。这里默认“Register Write”寄存器写入触发即可。 图26.11 “Configure ‘VDAC8’”对话框 (5)设置完成后,单击“OK”按钮退出VDAC8功能组件的配置。 (6)双击Opamp功能组件,打开“Configure ‘Opamp’”对话框,如图26.12所示。这里按照如下参数进行设置: q Mode:模式选择,“OpAmp”表示电压放大器、“Follower”表示电压跟随器。这里用于将VDAC的输出电压跟随输出,因此选择“Follower”模式即可。 q Power:输出功率选择,“LowerPower”表示低输出功率,“HighPower”表示高输出功率。这里为了保证VDAC具有足够的负载能力,因此选择“High Power”高输出功率模式即可。 图26.12 “Configure ‘Opamp’”对话框 (7)设置完成后,单击“OK”按钮退出Opamp功能组件的配置。 3.引脚配置 在这个实例项目中,需要用到的芯片引脚包括两个部分,一是USB接口,另一个是模拟电压输出接口。现在来对各个引脚分配引脚号。引脚分配完成后,如图26.13所示。 图26.13 配置引脚 3.时钟配置 在Cypress的PSoC 3系列器件中,如果需要使用USB功能,则对系统的时钟有一定要求。我们必须对PSoC 3的时钟系统进行配置。操作步骤如下: (1)在“Workspace Explorer”区双击USBDA.cydwr,单击“Clocks”选项卡,如图26.14所示。 图26.14 “Clocks”选项卡 (2)单击“Edit Clock”按钮,弹出“Configure System Clocks”对话框,如图26.15所示。在这里按照如下三项进行设置: 图26.15 “Configure System Clocks”对话框 (3)单击“OK”按钮完成时钟设置,此时返回“Clocks”选项卡,如图26.16所示。 图26.16 时钟设置后 4.Bootloadable配置 双击Bootloadable_1组件,在打开的对话框中,设置IFLabsPSoC3BootLoader文件,如下图所示。 图26.17 Bootloadable配置 对当前设计所用到的功能组件完成上述设置之后,便可以进行程序代码设计。在“Workspace Explorer”区双击“main.c”文件,在打开的文件中输入程序代码。 5.控制请求响应处理程序 这里双击打开其中的USBFS_vnd.c文件,该文件主要用于完成USB控制端点的自定义请求。在USBFS_vnd.c文件中输入程序代码: 在这段程序中,需要定义2个自定义请求,各个请求的功能定义如下: q 自定义请求0xA1:用于上位机通过该请求设置各个DA的值; q 自定义请求0xA2:用于上位机通过该请求获取当前各个DA的值。 正确输入以上程序之后,便可以对该项目进行编译。编译成功之后,按照前述章节中的方法来将固件程序下载固化到CY8C3866AXI-040芯片中。这样,USB固件程序便设计完成。 7.9 Android程序设计由于篇幅限制,Android程序端的代码设计请参考IFLabs PSoC3核心板开发手册及实例代码。 7.10 运行结果完成前述代码设计之后,便可以通过数据线将Android手机连接到计算机,通过Eclipse软件将程序下载安装到Android手机中。然后,便可以运行测试程序了。这里在小米2手机上进行了测试,操作步骤如下。 (1)首先将USB设备通过OTG数据线连接到Android手机上,Android手机自动弹出对话框,显示是否需要设置此USB设备连接时默认打开DAController应用程序,如图26.24所示。 (2)单击“确定”按钮,打开DAController应用程序,这就是前面我们设计的Android手机端程序。此时,拖动软件界面中的各个控制条,可以实现USB硬件中的各个DA转换器的控制,并将设置值信息显示在界面上,如图26.25所示。 |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
742个成员聚集在这个小组
加入小组2010 浏览 1 评论
1773 浏览 1 评论
3559 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1705 浏览 6 评论
1473 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
291浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
187浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
363浏览 2评论
303浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
500浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-27 09:20 , Processed in 0.940836 second(s), Total 53, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号