请选择 进入手机版 | 继续访问电脑版

大海作坊

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 210|回复: 4

UBW 简单的USB连接控制板 自己编程可以控制输入输出

[复制链接]

21

主题

40

帖子

155

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
155
发表于 2018-9-14 15:11:15 | 显示全部楼层 |阅读模式
许多人想用电脑USB连接控制外部设备,可以输入输出,自己写电脑软件,下位机是单片机,这个控制板就是这个下位机。详细就看


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

21

主题

40

帖子

155

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
155
 楼主| 发表于 2018-9-14 15:13:23 | 显示全部楼层
网站有是开源的,有固件,有电路图,有电路板图,我制作了控制板,升级到最新固件,需要的看我淘宝https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.14c81debeBglIQ&id=575138140071



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

21

主题

40

帖子

155

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
155
 楼主| 发表于 2018-9-14 15:28:54 | 显示全部楼层
UBW常见问题



问:
UBW易于使用吗?
答:这取决于你想做什么。如果你只是从SparkFun购买一个,你可以在几分钟内轻松使用你的UBW。如果您想从头开始构建自己的电路板并编写自己的固件,那么您应该知道如何做几件事。(建筑板,焊接,编写C代码,微控制器理论等)如果您只是从SparkFun购买一块板,它将附带一个固件D版本以及引导程序,所以你可以直接进入没有编程或焊接。这有多容易!

问:我不想下载任何新固件。我可以使用来自SparkFun的UBW来让我的EggBot运行吗?
A:完全正确!(正如他们在明尼苏达州所说的那样。)这真的很容易。UBW来自带有固件D的SparkFun。为了运行EggBot,您需要能够在UBW的端口B上写出数据字节。使用FW D,您应该在打开COM端口后执行以下命令假设您使用的是Liberty Basic,并且已将COM端口打开为句柄#com)
打印#com,“C,255,0,0,0”此命令告诉UBW您希望端口A是输入,端口B和端口C是输出。
然后每次要向Port B写出一个字节时,可以使用以下命令假设OutByte是我们要输出的字节。)
打印#com,“O,0,”; OutByte;“,0”此命令告诉UBW您要在其端口上输出新值。您在端口A上输出零(因为它们被设置为输入而我们不在EggBot上使用它们),在端口B上输出OutByte值,在端口C上输出零。然后您只需要执行正常的步骤和方向操纵OutByte让你的步进者做你想做的事。在步骤之间使用/ next循环以更改步进速率。

问:您是否出售裸UBW板或已完成的单元?
答: 不,我没有。但您可以从SparkFun购买带有固件D的预组装和测试的UBW板(28-SOIC版本)。它们价格低廉,是最简单的入门方式。您也可以从SparkFun购买漂亮的镀通孔套件。

问:我只能使用8个端口B输出引脚(B0到B7)吗?
答:嗯,这取决于您加载到UBW上的固件。如果您使用固件C,那么是的,您只能使用端口B,并且仅作为输出。固件C v1.1还支持读取端口A位0到5作为输入。对于很多事情,这可能就是你所需要的!但是如果使用固件D,您将可以完全访问所有19个I / O引脚,作为输入或输出。

问:我可以画多少电流?
答: USB规范定义了集线器上每个USB端口最大500mA的电流。我想在所有LED都打开的情况下,UBW将使用大约50mA的电流。因此,您应该使用不超过450mA的电流供您自己使用。当枚举时,固件会向集线器或PC询问所有500ma。

问:我可以使用PRG按钮吗?
答:是的。如果您编写自己的固件(或修改现有固件之一),您可以使用该按钮进行任何操作。(注意RESET按钮是硬接线到MCLR,因此它不像PRG按钮那样可供您使用。)

问: UBW可以破坏我的电脑吗?
A:如果以足够的速度在PC上发射UBW,可能会造成损坏。除此之外,它很难做到。从物理/电气角度来看,USB非常强大。(软件是一个完全不同的蜡球。)你不能用错误连接的UBW煎炸你的电脑。如果你做了一些愚蠢的事情,你可以炒UBW,但是你只需要丢失10美元的处理器就可以免费更换。不错,嗯?如果您在UBW上断电并接地,USB集线器将关闭该端口而不会对PC造成任何损坏。

问:我可以从其他来源为UBW供电吗?
A:如果您将UBW连接到PC,则UBW将由PC供电。你无法关闭那部分。但是如果你需要吸收大量的电流,那么你可以为自己的电路提供自己的电源,只需连接UBW和电路的接地和信号。然后UBW将不会为您的电路供电,并且您的电路将不会为UBW供电。
A2:如果从PC上拔下UBW,可以在独立模式下从5V电源供电。
A3:在UBW板的未来版本中,将创建一个跳线,以便断开UBW +5和USB +5之间的连接,这样您就可以为电路板供电而不必担心与USB电源冲突。

问: UBW是什么样的?
A:看看这里的图片。

问:为什么你在每种情况下选择较小的PIC?
答:成本,真的。您可以轻松地将18F2550替换为18F2455,将18F4550替换为18F4455。唯一的区别是我选择的部件上的内存较少,因此它们(稍微)便宜一些。如果您是免费从Microchip那里采样零件,那么只需获得更大的零件!现在,SparkFun在其上安装了18F2553的UBW,由于它们具有12位ADC,因此更好。它们仍然只有32KB的Flash和2K的RAM。

问: UBW的速度有多快?
A:这个问题有些含糊不清。我会回答一个问题,我想问你:我可以向UBW抽出多少字节/秒?这取决于您使用的固件USB“Class”实现。这些PIC USB部件的最大理论速度为12Mb / s(每秒百万位)。使用固件C,我可以获得大约500到800字节/秒的B端口引脚。使用我为客户编写的自定义固件,我已经获得了超过20K字节/秒。如果有人基于Microchip的大容量存储类驱动程序或其自定义驱动程序开发固件,那么它应该能够达到100K字节/秒(如果不是更多)。哦,UBW上的RC振荡器以4 MHz(或SparkFun版本为20MHz)运行,内部PIC PLL高达96MHz,然后分频为48MHz以运行USB引擎和PIC内核。
A2:如果你在所有UBW上寻找Fosc速度,它是48MHz

问: UFW板的SparkFun版本和初始设计有什么不同?
答:这些网页几乎遵循我为UBW板所做的原始设计。SparkFun在开始构建版本时会产生一些差异。
  • SparkFun板上的谐振器速度为20MHz(现在为24MHz),而我的谐振器频率为4MHz。唯一有用的地方是引导加载程序,这就是为什么有一个单独的SparkFun引导程序,用于20MHz和24Mhz振荡器。
  • 除引脚6和7(Tx和Rx)外,端口C的引脚不会引出到接头。这意味着在SparkFun板上,您通常只需使用端口B和端口A(总共14位)作为I / O. 这不是什么大问题,但它确实导致了这个网站(19位)和SparkFun网站(14位)之间“I / O数量”的差异,因为端口C的5位“丢失”。 (其中两个并没有真正丢失。)
  • 物理尺寸和引脚位置不同。这并不是什么大不了的事,因为SparkFun主板上有非常漂亮的丝网。
问:什么是Bootloader,以及它如何在UBW上运行?
A:PIC的程序存储器是Flash ROM。您可以擦除它的块并将单个字节写入其中。Bootloader的作用是它在Flash中位于0x000到0x7FF的内存中。请注意,它位于0x000的复位向量上!这意味着当您通过按下复位按钮重置UBW时,PIC开始执行0x000的代码,即Bootloader。Bootloader会检查您是否按住了PRG按钮。如果不是,则跳转到0x800,这是主程序(固件D)启动的位置,因此固件开始运行。如果您在复位时按住PRG按钮,则Bootloader将开始运行自己的代码,该代码侦听从USB Bootloader应用程序(PDFSUSB.exe)发送的USB命令。这些命令包括'擦除闪存',' 使用这个新的HEX文件编写Flash的一部分'等等.Bootloader永远不会将自己从0x000写入0x7FF,因此它始终存在,如果您的主程序崩溃并且您需要重新加载主程序,它随时可以帮助您。请注意,如果您没有为UBW编写自己的代码,而只是使用我提供的固件,那么Bootloader的唯一用途就是更新UBW上的固件。Bootloader和固件同时驻留在UBW中,但只运行其中一个(基于复位时PRG按钮的状态)。Bootloader完全是Microchip的Bootloader,只需进行一些调整即可处理UBW板与Microchip的USB演示板略有不同的硬件。所以 所以它总是在那里,如果您的主程序崩溃并且您需要重新加载主程序,它随时准备帮助您。请注意,如果您没有为UBW编写自己的代码,而只是使用我提供的固件,那么Bootloader的唯一用途就是更新UBW上的固件。Bootloader和固件同时驻留在UBW中,但只运行其中一个(基于复位时PRG按钮的状态)。Bootloader完全是Microchip的Bootloader,只需进行一些调整即可处理UBW板与Microchip的USB演示板略有不同的硬件。所以 所以它总是在那里,如果您的主程序崩溃并且您需要重新加载主程序,它随时准备帮助您。请注意,如果您没有为UBW编写自己的代码,而只是使用我提供的固件,那么Bootloader的唯一用途就是更新UBW上的固件。Bootloader和固件同时驻留在UBW中,但只运行其中一个(基于复位时PRG按钮的状态)。Bootloader完全是Microchip的Bootloader,只需进行一些调整即可处理UBW板与Microchip的USB演示板略有不同的硬件。所以 您唯一用于Bootloader的是更新UBW上的固件。Bootloader和固件同时驻留在UBW中,但只运行其中一个(基于复位时PRG按钮的状态)。Bootloader完全是Microchip的Bootloader,只需进行一些调整即可处理UBW板与Microchip的USB演示板略有不同的硬件。所以 您唯一用于Bootloader的是更新UBW上的固件。Bootloader和固件同时驻留在UBW中,但只运行其中一个(基于复位时PRG按钮的状态)。Bootloader完全是Microchip的Bootloader,只需进行一些调整即可处理UBW板与Microchip的USB演示板略有不同的硬件。所以Microchip的这个页面,如果您感兴趣,可以更详细地描述它们的Bootloader。(下载他们的安装程序文件,你可以在那里阅读信息。)

问:当我打开UBW的COM端口时,我选择的波特率是否重要?
A:不。它没有。PC和UBW之间确实没有“串行”链接。它全部通过USB。USB没有传统意义上的RS-232的“波特率”功能。PC上的USB主机芯片尽可能快地调度总线事务,遵守定义USB的所有协议规则。(即没有固定的波特率)在传统的USB转RS-232转换器产品中,PC向转换器芯片发送“波特率改变”消息,转换器芯片然后重新编程其RS-232时钟速率以发送/接收异步串行数据。UBW目前没有真正的RS-232功能,因此UBW固件会忽略这些消息。UBW只使用此标准USB RS-232转换器设置的一部分,以便在PIC的软件中有getchar()和putchar()函数。然后,UBW实际上不会将该数据从其串行端口发送出去。(如果想要的话,它可以,但现在还没有 - FW D 1.4.2)相反,它读取来自PC的数据并将该数据作为命令处理。因此,UBW对您使用的波特率或数据位或奇偶校验没有任何影响。但是 - 如果你选择硬件握手,这很重要。为什么?因为您的终端仿真器可能会等到某些握手线被断言,然后再将数据发送到UBW。由于UBW没有实现任何握手线路,因此永远不会发生这种情况,您的UBW似乎已经死亡。因此,请确保禁用或关闭任何硬件握手。不要使用软件握手 - 始终将其设置为“关闭”或“无”。如果有人愿意,但目前还没有--FW D 1.4.2)相反,它会读取来自PC的数据并将数据作为命令处理。因此,UBW对您使用的波特率或数据位或奇偶校验没有任何影响。但是 - 如果你选择硬件握手,这很重要。为什么?因为您的终端仿真器可能会等到某些握手线被断言,然后再将数据发送到UBW。由于UBW没有实现任何握手线路,因此永远不会发生这种情况,您的UBW似乎已经死亡。因此,请确保禁用或关闭任何硬件握手。不要使用软件握手 - 始终将其设置为“关闭”或“无”。如果有人愿意,但目前还没有--FW D 1.4.2)相反,它会读取来自PC的数据并将数据作为命令处理。因此,UBW对您使用的波特率或数据位或奇偶校验没有任何影响。但是 - 如果你选择硬件握手,这很重要。为什么?因为您的终端仿真器可能会等到某些握手线被断言,然后再将数据发送到UBW。由于UBW没有实现任何握手线路,因此永远不会发生这种情况,您的UBW似乎已经死亡。因此,请确保禁用或关闭任何硬件握手。不要使用软件握手 - 始终将其设置为“关闭”或“无”。UBW对您使用的波特率或数据位或奇偶校验没有任何影响。但是 - 如果你选择硬件握手,这很重要。为什么?因为您的终端仿真器可能会等到某些握手线被断言,然后再将数据发送到UBW。由于UBW没有实现任何握手线路,因此永远不会发生这种情况,您的UBW似乎已经死亡。因此,请确保禁用或关闭任何硬件握手。不要使用软件握手 - 始终将其设置为“关闭”或“无”。UBW对您使用的波特率或数据位或奇偶校验没有任何影响。但是 - 如果你选择硬件握手,这很重要。为什么?因为您的终端仿真器可能会等到某些握手线被断言,然后再将数据发送到UBW。由于UBW没有实现任何握手线路,因此永远不会发生这种情况,您的UBW似乎已经死亡。因此,请确保禁用或关闭任何硬件握手。不要使用软件握手 - 始终将其设置为“关闭”或“无”。由于UBW没有实现任何握手线路,因此永远不会发生这种情况,您的UBW似乎已经死亡。因此,请确保禁用或关闭任何硬件握手。不要使用软件握手 - 始终将其设置为“关闭”或“无”。由于UBW没有实现任何握手线路,因此永远不会发生这种情况,您的UBW似乎已经死亡。因此,请确保禁用或关闭任何硬件握手。不要使用软件握手 - 始终将其设置为“关闭”或“无”。
回复

使用道具 举报

21

主题

40

帖子

155

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
155
 楼主| 发表于 2018-9-14 15:31:17 | 显示全部楼层
UBW教程#1:简单的数字输入和输出




简介:
使用终端仿真器和简单的BASIC应用程序的简单介绍,使某些数字输出根据数字输入的状态改变状态。

使用的理论和命令:
在本教程中,我们将使用两个按钮用于输入,两个LED用于输出。我们将根据输入信息观察LED上的输入和显示输出模式。这可能看起来非常非常基本,但您在本教程中学到的概念将成为所有其他UBW工作的基础,因此简单地开始是有意义的。

请参阅UBW上的固件文档。当前版本(截至10-16-07)适用于

我们将使用“V”命令来查看我们的UBW是否正常运行并找出它的版本。
我们将使用“C”命令配置数字输入和输出。
我们将使用“I”命令来读取数字输入。
我们将使用“O”命令输出数字输出。

电路设置:
我们将两个开关连接到端口A位0和1,输出LED将连接到端口B位7和8.这些位完全是任意的,您当然可以使用UBW上的任何其他I / O引脚,因为它们很多。我拿了一个UBW套件,引发了有趣的销售,将男性标题放入指向下方的孔中,并将其插入本教程的面包板中。你可以随心所欲地做到这一点 - 我的方式绝对不是让它发挥作用的唯一方法。请注意,我们使用470欧姆限流电阻和LED(因此它们不会烧坏)和开关上的4.7K欧姆上拉电阻,这样端口A输入引脚要么+ 5V(通过上拉电阻),要么通过开关短接到地。







使用终端仿真器:
您可以使用Windows附带的Hyperterminal终端仿真器,或者使用不同的终端仿真器)。无论您使用哪一个,请确保在打开端口时关闭任何硬件握手。

连接UBW并连接上面显示的电路后,您需要找出UBW连接的COM端口。进入Windows设备管理器,查看端口(COM和LPT)下的内容,找出UBW所在的COM端口。如果您的所有端口都显示“通信端口(COMx)”并且您不知道哪个是UBW,则双击每个端口并查找显示“制造商:Microchip Technologies Inc.”的端口。让我们说它是在COM4上。我们将在本教程中使用它,

使用终端仿真器打开与COM4的连接,无需硬件握手。波特率和奇偶校验和启动/停止位没有区别(UBW软件完全忽略这些参数 - 有关更多信息,请参阅。键入国会大厦V并按Enter键测试您的UBW连接。你应该得到一个看起来像这样的回复:

UBW FW D版本1.4.2
“V”命令代表“版本”,它只是要求UBW发回一些标准信息。它告诉您它是什么固件版本,并让您知道它可以接收您的命令,并且您可以收到它的回复。

(请注意,您键入的内容不会显示,并且退格无法纠正键入错误。)
现在您知道您与UBW的有效连接。接下来我们需要告诉UBW我们的输入和输出是什么。我们使用“C”命令。在中输入以下内容,然后按行末尾的Enter键将其发送到UBW。
C,3,0,0,0
UBW应该寄回

“C”命令代表“配置”,它有四个参数(对于28引脚UBW)。每个参数用逗号分隔。前三个参数是十进制值,表示要输入的每个端口的哪些位以及要输出的端口。第一个参数用于PortA,第二个用于PortB,第三个用于PortC。如果您为这些参数中的任何一个发送零,那么您告诉UBW您希望该端口是所有输出。如果发送255,则表示您希望该端口的所有位都是输入。数字的每一位代表端口中的一个引脚。因此,例如,如果要将PortB的Pin0设为输出,将Pin1设为输入,将Pins3设为7输出,则可以使用(二进制)0b00000010(十进制为2)。您可以将每个端口中的每个引脚设置为输入或输出。我们想要建立PortA Pin0和Pin1输入,因此我们将为PortA参数发送3(十进制),然后为所有其他引脚输出,因此它们都会得到零。

对于我们这里的例子,C,3,0,0,0告诉UBW我们希望PortA的第0位和第1位是输入,其他一切都是输出。最后一个参数是要打开的模拟输入的数量。我们不想要任何东西,所以我们将其保留为零。

现在我们需要阅读输入。我们使用“I”命令。输入
一世
然后按Enter键。它会发回一个看起来像这样的响应:
我,003000001
“I”命令代表“输入”,它有三个参数(对于28引脚UBW),每个参数用逗号分隔。参数是十进制值,表示每个输入端口的哪些位为高电平,或+ 5V。第一个参数用于PortA,第二个用于PortB,第三个用于PortC。同样,每个数字的每个位代表该端口上一个引脚的状态。所以在上面的响应中,我们可以看到我的PortA Pin0上有+ 5V,这意味着开关未关闭。PortA Pin1开关也是+ 5V,意味着没有关闭。如果您一遍又一遍地键入“I”,当您按下并释放每个开关时,您可以看到代表其状态的位发生变化。您将获得000,001,002或003作为UBW的I响应的第一个参数,

请注意,UBW在PC上发回给您的参数始终用零填充。这是为了使这些消息的处理非常容易。您知道,对于“I”命令响应,来自字符串前面的第5个字符将_always_是PortA数字输入参数的个位数。如果数字不是零填充,那么它们在字符串中的位置会随着它们的值的改变而改变。

所以,您可能想知道为什么上面的PortC数字输入参数中有001。原因是因为UBW在发送“I”命令时在PortC Pin0上输出HIGH(1)。你能弄清楚(从UBW原理图)为什么会这样?我会给你一个提示:它会'闪烁'开关。

现在点亮那些LED。假设您等待两个开关输入为高电平(即+ 5V),然后您想要点亮两个LED,但其余时间您希望两个LED都变暗。使用“O”命令,该命令再次获取3个参数,每个端口一个。
O,0,0,0
该命令将所有PortB(所有引脚)设置为低电平或接地。这会关闭LED。现在,如果我们发送此命令:
O,0,192,0
它将打开PortB的bit7和bit6,它将在PortB Pin7和Pin6输出+ 5V,这将打开我们的两个LED。

通过使用I和O命令,您可以读取任何输入并将任何输出设置为高或低状态。

简单Liberty基本示例:
所有这一切的真正威力不在于使用终端仿真器。两个傻LED的打字真是太多了!但我们需要学习做什么。现在,我们可以有一些真正的乐趣。UBW的强大之处在于PC可以读取输入值并写入输出,所有这些都在程序的控制之下。什么?你没有程序?凉。我们会在这里做一个。

下载并安装Liberty Basic。键入以下程序(或复制/粘贴),但要小心将“COM4”部分更改为UBW所在的任何COM端口。该程序将配置UBW,然后根据其看到的输入自动连续读取输入并设置LED输出。它将循环100次然后停止。

'UBW Tutorial#1 Liberty Basic应用程序代码“由Brian Schmalz撰写,2007年10月16日,UBW FW D 1.4.2
'首先打开UBW的COM端口打开“COM4:9600,N,8,1”随机为#UBW
'然后发送带有适当参数的C命令打印#UBW,“C,3,0,0,0”
'然后进入循环,发送I命令,等待响应,然后决定'根据这种反应做什么。FOR x = 1到100    '等一下UBW回应    FOR T = 1到10000    下一个T
    '然后阅读UBW的任何回复并丢弃    没有$ = INPUT $(#UBW,LOF(#UBW))
    '发送“我”命令    打印#UBW,“我”
    '并等待14个字符回来    尽管LOF(#UBW)<14    WEND
    '读入数据    InData $ = INPUT $(#UBW,LOF(#UBW))
    '现在做出决定    如果MID $(InData $,5,1)=“0”那么        '如果两个开关均已按下,则打开LED指示灯        打印“打开LED”        打印#UBW,“O,0,192,0”    其他        '如果两个开关都没有按下,则关闭LED        打印“关闭LED”        打印#UBW,“O,0,0,0”    万一下一个x
关闭#UBW
打印“全部完成。”
结束你有。您现在拥有一个非常可配置的AND门。只有按下两个开关,LED才会打开。这是一个AND门!

进一步发展:
现在你了解基础知识。还有许多有趣的命令需要学习,但只需要本教程中包含的信息,您可以轻松地使8个LED以您喜欢的任何模式闪烁,您可以使用两个开关在模式中“点击”,将其存储在您的应用程序,它在LED上的播放,你可以使按钮在LED等上产生光图案。这就是开关和LED - 你可以(使用各种电路,所有这些都可以在网上找到)不同的地方)将您的UBW连接到红外探测器到时间段汽车或松木德比赛,您可以将您的UBW连接到您的圣诞灯以制作不同的图案等。

回复

使用道具 举报

21

主题

40

帖子

155

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
155
 楼主| 发表于 2018-9-14 15:40:39 | 显示全部楼层
命令文档我用机器翻译一下 ,可以参考

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|大海作坊 ( 湘ICP备17019901 )

GMT+8, 2018-10-23 14:32 , Processed in 0.193580 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表