PYNQ学习笔记一:使用MicroBlaze做协处理器驱动传感器模块

本文介绍了如何利用PYNQ框架中的MicroBlaze作为协处理器,配合Python库来驱动DHT11温湿度传感器。通过在Vivado建立Base Overlay,使用SDK编写MicroBlaze程序,转换ELF为BIN文件,并编写Python库来控制MicroBlaze执行传感器读取任务。
摘要由CSDN通过智能技术生成

前言

PYNQ项目是一个支持Xilinx Zynq器件的开源软件框架,目的在于借助Python降低Zynq嵌入式系统开发门槛,有丰富的组件:

  • 可编程逻辑的控制
  • Jupyter Notebook接口
  • 预安装的Python库
  • 网络/USB/UART接口

PYNQ官网http://www.pynq.io

我手上这块开发板是PYNQ-Z1,上手有一段时间了,还是没玩出什么名堂来。主要是网上关于PYNQ的资料太少,中文资料几乎没有,我手头上的资料只有官方的文档和Github上的代码,对我这种英文不好的人来说太难。我觉得PYNQ功能确实很强大(虽然我不怎么会用),Jupyter也非常友好,好东西不应该被埋没。
我也分享一些我的学习心得,跟大家共同学习。(怎么感觉给自己开了个大坑?)

话不多说,直接进入正题。

一、为什么要用MicroBlaze

虽然PYNQ提供了直接控制IO的Python库,但是光靠Python控制IO口和其他模块通信是不现实的。如果需要一个IIC,SPI之类的接口和其他模块通信,还是需要用MicroBlaze。PYNQ提供的例程是使用MicroBlaze控制IO,然后用Python控制MicroBlaze。
比如这个控制LED灯条的例程:

# Make sure the base overlay is loaded
from pynq.overlays.base import BaseOverlay
base = BaseOverlay("base.bit")

from pynq.lib.arduino import Grove_LEDbar
from pynq.lib.arduino import ARDUINO_GROVE_G4

# Instantiate Grove LED Bar on Arduino shield G4
ledbar = Grove_LEDbar(base.ARDUINO,ARDUINO_GROVE_G4)
ledbar.reset()

ledbar.write_binary(0b1010100000)

看Python库就可以知道,它是为Microblze写好程序,

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值