C2000 F2004x 在实时控制系统中的新特性介绍 (2)
Loading the player...
将在30s后自动为您播放下一课程
呃,大家可以看一下, 就是说我们这边的话呢, 实际上面有两种不同 模式。那如果是建的仿真器, 我们就叫Emulation Boot的模式; 如果仿真器拿掉的话呢,就是叫 Stand-alone, 就是说离线的一个Boot模式。 那么对于建立 仿真器的情况下面的话呢, 我们实际上面Boot模式是由这个 BOOTPIN_CONFIG这个 位来,这个寄存器实现的。 大家可以看一下,这个寄存器 的话呢实际上分成了四个区域。 那么我们会根据 这个寄存器的不同的值 来判定它的不同的Boot模式。 这个实际上面就是说, 呃,跟我们原来的话, 这个话题呢还有类似的地方。 但是这个后面的这个部分的话呢, 实际上是全新的。那么大家是, 如果说要选择Boot模式的话呢 可以具体的看一下。 因为这个时间关系 就不会具体的给大家展开了。 那么这个是连接仿真器的时候。 假如不连仿真器, 可能这个是大家经常会用到的, 就是我正常调试的, 就正常运行的时候, 到底程序从哪里开始跑。 那我们这个时候的话呢, 会有另外一个这个寄存器, 它是叫BOOTPIN_CONFIG OTP里面的 BOOTPIN_CONFIG这个寄存器 来决定的。实际上 这个寄存器大家看一下, 跟我们刚才那个 寄存器结构应该很类似,对吧? 然后它会根据 这个寄存器的值呢来判定, 我是完全通过我们的 这个GPIO32和24来决定, 它到底是串口啊、CAN啊, 或者是这个并行的IO口啊, 或者是直接从Flash里边来的。 那么如果不是这个相关的值的话呢, 我们是会通过BMSP0-1、 0-2这样对应的一些位的一些, 呃,它的一些值来确定 到底是我是哪一种的Boot模式。 所以大家可以看一下。 那这样的话呢,实际上面, 我们可选的这个GPIO的话, 可以从我们这个 任意的GPIO里面的话呢, 做一些选择。 所以说Boot模式就更加的灵活。 呃,那么这一块是 关于Boot模式这一块。 那接下来这个就是 我们刚才说的这个, 呃,BOOTDEF这样的一个寄存器, 它来定义我们来怎么来 选择不同模式下选择不同的一个, 不同的一个引脚。 好,那我们接下来再来看一下这个, 呃,系统部分。 包括我们的定时器啊, 还有我们的一些外部中断 等等,这样的一些对比。 那么对于075来说 的话呢,实际上面就是, 大家看一下这里最主要差异就是因为 我们0049的话呢,它是,呃, 目前的话是64Pin和 100Pin的这种封装, 所以相对来说比075封装要小。 所以我们的GPIO位会少一些。 那另外的话,没有外扩总线, 包括这个,我们的这个,呃, 低功耗模式的话呢也会有些差异。 呃,对于这个 看门狗的一个定时器来说, 这边最主要的一个差异 就是我们在004x上面增加了一个 512分频的一个时钟的设置。 这个在075里边是没有的。 呃,机制上面基本上都是类似的。 呃,那么对于输出的这个X-BAR。 那么大家知道, 实际上我们从那个就是 37x、07x的话呢, 它的一个GPIO的设置就是 通过Input X-BAR 或者Output X-BAR来实现。 那么这种X-BAR的设置 其实比我们原来的这个 Piccolo系列的话会要灵活很多。 也就是说,大家可以自己定义, 比如说我的TD, 我要呢放到哪个引脚上面; 比如说我的的外部中断等等 这样的一些都是可以来进行设置的。 那这个Input BAR的话呢,我们这 边004x的话呢和07x会有一些差异。 实际上面就是说,它这个 Reset的这个值呢会有一定差异。 我们在这个 原来的话呢,07x里都是0。 那么它主要是说对于输出来说, 输入来说的话呢选择GPIO0。 那新的里面的话呢, 我们会 复位值会设成0xFFFE。 那实际上面就是说, 这里的1的话呢,相对于就对应的是, 呃,我们就是输出。 输出1给到这个我们的这个输入端, 然后0的话呢给到输入端 这样的一个不同的指令设置。 那么对于004x来说, 还有一个最大的差异, 就是在我们的捕获端口上面。 那么,原来的这个捕获端口的话, 实际上面我们是,它的Input的这个, 呃,我们的这个端口号 实际上是完全一一对应起来的。 就是说这个是 固定的,我们是不能去改的。 而现在对于这个 我们的捕获端口来说, 在004x里面的话呢, 它实际上是可以来进行设置的。 就是说,不是说是 一个固定的方式,而通过 INPUT15和16的话呢,可以来 选择不同的对应的这个捕获端口。 这个比原来的话呢会更加灵活一些。 所以大家可以看一下, 我们的这里的Input X-BAR的话呢, 实际上面就是可以用来 设置这个,我们的这个捕获的端口。 那么对于PWM和输出的 这个X-BAR的它的一个变化。 那么输出的X-BAR最主要我们增加 了一个CLA后头的这样的一个信号。 这个是在075里是没有的。 那么对于这个 ePWM的这个X-BAR的话呢, 我们会增加了这个,除了 增加了CLA的这个HALT信号之外, 我们还有一个 输入的7-14的这样的一个增加。 这个原先也是没有的,原先只有5-6。 那另外的话呢,我们这个 X-BAR的这个Flag的3寄存器的话呢, 也会增加了一些 功能。那最主要的是说, 我们可以用这个标志位来确定是说 当前是哪个输入源被触发了。 所以这个实际上面也是一个, 呃,比较好的一个功能。 让大家可以来做一个确认,就是 关于这个触发源来做一个确认。 呃,那么对于低功耗模式,大家看一下, 我们004x里面是 没有HIBERNATE这个模式的。 就是这样一个,呃, 应该是一个休眠的这样一个模式的。 这个在075里有,但是004x里没有。 那停止模式的话呢,也会有些差异。 对于这个, 就是说内部晶振来说的话呢, 我们跟2807x也是一样的。 就是说我们 不会在这个调电的时候, 就是把包括这个,呃,叫什么, 功耗降低的时候我们会自动的关掉, 而是我们要通过软件来把它关掉的。 那么对于外部晶振来说的话呢, 在004x里边我们就可以 通过软件在任何时候把它关掉。 这个是,也是004x里边 的话它新增加的一个功能。 那么对于这个,其他的这种 IDLE、STANDBY和HALT模式的话, 这个应该都是跟那个075是类似的。 好。那么对于CLA和DMA, 它的一些这个访问的一些差异, 大家可以看一下在07x里边, 我们的这个CLA和DMA的话会通过 CPU1的一个这个选择的一个 寄存器的话来设置它的一个仲裁。 但是在004x里面这个仲裁就没有了。 那么也就意味着说, 我们实际上面就是说, 外设的话呢是可以 通过这个直接访问这个相关的, 比如说CLA啊,包括DMA。 那也就是意味着说,CLA它是可以 去直接利用这个DMA的这个传送。 那这个其实也是比较方便的。 因为大家知道就是说,比如说, 如果说我的那个,呃, 可以DMA的话,它可以去读那个, 直接读ADC的结果。那这样的话, 我CLA的话相当于 可以直接从DMA的结果里面 就可以读到数据来做一些运算。 这个是CLA和DMA这边的一些改进。 呃,那我们再来 看一下ADC这一个部分, 或者说我们的模拟模块的一个改进。 呃,那么大家 可以看到,实际上就是说, 呃,07x和0049 都是12位的模式。 那么采样率上面的话呢,实际上面, 呃,0049会稍微快一些。 另外的话,我们的这个比较器, 我们会增加到这个, 就是说,从0型变成1型。 另外我们内部的这个DA的话呢,也 是会从,呃,跟那个075是一样的, 但是它是会少一个module。 呃,增加最多的或者说最新的 就是这个PGA的这样的一个模块了。 那我们现在来看一下。 呃,004x和075是一样的, 它只有12位的模式。 但是因为它有三个ADC模块, 所以每个的话呢3.45兆的采样率, 那么基本上 三个我们就可以 做到10.35M这样的采样率。 也就是说大家可以采样电流的 时候,我们可以采样三相电流。 两相或三相电流的话, 我们就可以同时来进行转换。 而且我们就是说, 通过这个单刀模式, 我们可以跟内部的这个PGA的话呢 来直接进行一个内部的连接。 那也就是意味着说, 大家可以通过ADC采到电流, 然后通过我们内部的PGA来做一些放大。 呃,这样可以就是省掉这个, 如果说本身的这个设计上面对于这个 板子的这个体积呀, 包括成本上面有一定要求的话, 那就可以用内部的PGA来 实现这个对于电流信号的一个放大。 呃,那我们看一下 比较器模块它的一个改进。 那么最主要的一个变化的话呢, 就是说我们增加了这个,就是说, 呃,blanking这样的一个功能。 那这个blanking的功能的话, 实际上面就是说,我们可以在 PWM周期边缘的时候的话呢, 可以有一些,比如说 我们可以有一些清除复位呀, 或者是说直接 就是trip的这样一些功能。 另外的话呢, 如果我们用斜坡产生器的话, 斜坡生成器的话呢, 实际上面我们可以通过, 呃,就是说,呃,对于trip呀, 或者是说清除复位 这样的一个方式来进行一个仲裁。 另外的话呢, 实际上面就是说,还有一个改进, 就是说我们比较器的这样的一个, 呃,对于这个判定这个 正负的这样一个输入信号的话呢, 实际上面现在它已经是 可以来进行一个选择和...不好意思, 选择和设置了。 通过我们的这个模拟系统 里面的这个master这样一个机制。 那原来的话呢, 实际上面是在07x里面的话呢, 这个输入引脚的话呢, 它实际上是和这个2807x的这个 高低输出的话呢直接耦合在一起的, 是不可以来进行一个设置的。 呃,这个是关于 比较器模块这边的一个更新。
呃,大家可以看一下, 就是说我们这边的话呢, 实际上面有两种不同 模式。那如果是建的仿真器, 我们就叫Emulation Boot的模式; 如果仿真器拿掉的话呢,就是叫 Stand-alone, 就是说离线的一个Boot模式。 那么对于建立 仿真器的情况下面的话呢, 我们实际上面Boot模式是由这个 BOOTPIN_CONFIG这个 位来,这个寄存器实现的。 大家可以看一下,这个寄存器 的话呢实际上分成了四个区域。 那么我们会根据 这个寄存器的不同的值 来判定它的不同的Boot模式。 这个实际上面就是说, 呃,跟我们原来的话, 这个话题呢还有类似的地方。 但是这个后面的这个部分的话呢, 实际上是全新的。那么大家是, 如果说要选择Boot模式的话呢 可以具体的看一下。 因为这个时间关系 就不会具体的给大家展开了。 那么这个是连接仿真器的时候。 假如不连仿真器, 可能这个是大家经常会用到的, 就是我正常调试的, 就正常运行的时候, 到底程序从哪里开始跑。 那我们这个时候的话呢, 会有另外一个这个寄存器, 它是叫BOOTPIN_CONFIG OTP里面的 BOOTPIN_CONFIG这个寄存器 来决定的。实际上 这个寄存器大家看一下, 跟我们刚才那个 寄存器结构应该很类似,对吧? 然后它会根据 这个寄存器的值呢来判定, 我是完全通过我们的 这个GPIO32和24来决定, 它到底是串口啊、CAN啊, 或者是这个并行的IO口啊, 或者是直接从Flash里边来的。 那么如果不是这个相关的值的话呢, 我们是会通过BMSP0-1、 0-2这样对应的一些位的一些, 呃,它的一些值来确定 到底是我是哪一种的Boot模式。 所以大家可以看一下。 那这样的话呢,实际上面, 我们可选的这个GPIO的话, 可以从我们这个 任意的GPIO里面的话呢, 做一些选择。 所以说Boot模式就更加的灵活。 呃,那么这一块是 关于Boot模式这一块。 那接下来这个就是 我们刚才说的这个, 呃,BOOTDEF这样的一个寄存器, 它来定义我们来怎么来 选择不同模式下选择不同的一个, 不同的一个引脚。 好,那我们接下来再来看一下这个, 呃,系统部分。 包括我们的定时器啊, 还有我们的一些外部中断 等等,这样的一些对比。 那么对于075来说 的话呢,实际上面就是, 大家看一下这里最主要差异就是因为 我们0049的话呢,它是,呃, 目前的话是64Pin和 100Pin的这种封装, 所以相对来说比075封装要小。 所以我们的GPIO位会少一些。 那另外的话,没有外扩总线, 包括这个,我们的这个,呃, 低功耗模式的话呢也会有些差异。 呃,对于这个 看门狗的一个定时器来说, 这边最主要的一个差异 就是我们在004x上面增加了一个 512分频的一个时钟的设置。 这个在075里边是没有的。 呃,机制上面基本上都是类似的。 呃,那么对于输出的这个X-BAR。 那么大家知道, 实际上我们从那个就是 37x、07x的话呢, 它的一个GPIO的设置就是 通过Input X-BAR 或者Output X-BAR来实现。 那么这种X-BAR的设置 其实比我们原来的这个 Piccolo系列的话会要灵活很多。 也就是说,大家可以自己定义, 比如说我的TD, 我要呢放到哪个引脚上面; 比如说我的的外部中断等等 这样的一些都是可以来进行设置的。 那这个Input BAR的话呢,我们这 边004x的话呢和07x会有一些差异。 实际上面就是说,它这个 Reset的这个值呢会有一定差异。 我们在这个 原来的话呢,07x里都是0。 那么它主要是说对于输出来说, 输入来说的话呢选择GPIO0。 那新的里面的话呢, 我们会 复位值会设成0xFFFE。 那实际上面就是说, 这里的1的话呢,相对于就对应的是, 呃,我们就是输出。 输出1给到这个我们的这个输入端, 然后0的话呢给到输入端 这样的一个不同的指令设置。 那么对于004x来说, 还有一个最大的差异, 就是在我们的捕获端口上面。 那么,原来的这个捕获端口的话, 实际上面我们是,它的Input的这个, 呃,我们的这个端口号 实际上是完全一一对应起来的。 就是说这个是 固定的,我们是不能去改的。 而现在对于这个 我们的捕获端口来说, 在004x里面的话呢, 它实际上是可以来进行设置的。 就是说,不是说是 一个固定的方式,而通过 INPUT15和16的话呢,可以来 选择不同的对应的这个捕获端口。 这个比原来的话呢会更加灵活一些。 所以大家可以看一下, 我们的这里的Input X-BAR的话呢, 实际上面就是可以用来 设置这个,我们的这个捕获的端口。 那么对于PWM和输出的 这个X-BAR的它的一个变化。 那么输出的X-BAR最主要我们增加 了一个CLA后头的这样的一个信号。 这个是在075里是没有的。 那么对于这个 ePWM的这个X-BAR的话呢, 我们会增加了这个,除了 增加了CLA的这个HALT信号之外, 我们还有一个 输入的7-14的这样的一个增加。 这个原先也是没有的,原先只有5-6。 那另外的话呢,我们这个 X-BAR的这个Flag的3寄存器的话呢, 也会增加了一些 功能。那最主要的是说, 我们可以用这个标志位来确定是说 当前是哪个输入源被触发了。 所以这个实际上面也是一个, 呃,比较好的一个功能。 让大家可以来做一个确认,就是 关于这个触发源来做一个确认。 呃,那么对于低功耗模式,大家看一下, 我们004x里面是 没有HIBERNATE这个模式的。 就是这样一个,呃, 应该是一个休眠的这样一个模式的。 这个在075里有,但是004x里没有。 那停止模式的话呢,也会有些差异。 对于这个, 就是说内部晶振来说的话呢, 我们跟2807x也是一样的。 就是说我们 不会在这个调电的时候, 就是把包括这个,呃,叫什么, 功耗降低的时候我们会自动的关掉, 而是我们要通过软件来把它关掉的。 那么对于外部晶振来说的话呢, 在004x里边我们就可以 通过软件在任何时候把它关掉。 这个是,也是004x里边 的话它新增加的一个功能。 那么对于这个,其他的这种 IDLE、STANDBY和HALT模式的话, 这个应该都是跟那个075是类似的。 好。那么对于CLA和DMA, 它的一些这个访问的一些差异, 大家可以看一下在07x里边, 我们的这个CLA和DMA的话会通过 CPU1的一个这个选择的一个 寄存器的话来设置它的一个仲裁。 但是在004x里面这个仲裁就没有了。 那么也就意味着说, 我们实际上面就是说, 外设的话呢是可以 通过这个直接访问这个相关的, 比如说CLA啊,包括DMA。 那也就是意味着说,CLA它是可以 去直接利用这个DMA的这个传送。 那这个其实也是比较方便的。 因为大家知道就是说,比如说, 如果说我的那个,呃, 可以DMA的话,它可以去读那个, 直接读ADC的结果。那这样的话, 我CLA的话相当于 可以直接从DMA的结果里面 就可以读到数据来做一些运算。 这个是CLA和DMA这边的一些改进。 呃,那我们再来 看一下ADC这一个部分, 或者说我们的模拟模块的一个改进。 呃,那么大家 可以看到,实际上就是说, 呃,07x和0049 都是12位的模式。 那么采样率上面的话呢,实际上面, 呃,0049会稍微快一些。 另外的话,我们的这个比较器, 我们会增加到这个, 就是说,从0型变成1型。 另外我们内部的这个DA的话呢,也 是会从,呃,跟那个075是一样的, 但是它是会少一个module。 呃,增加最多的或者说最新的 就是这个PGA的这样的一个模块了。 那我们现在来看一下。 呃,004x和075是一样的, 它只有12位的模式。 但是因为它有三个ADC模块, 所以每个的话呢3.45兆的采样率, 那么基本上 三个我们就可以 做到10.35M这样的采样率。 也就是说大家可以采样电流的 时候,我们可以采样三相电流。 两相或三相电流的话, 我们就可以同时来进行转换。 而且我们就是说, 通过这个单刀模式, 我们可以跟内部的这个PGA的话呢 来直接进行一个内部的连接。 那也就是意味着说, 大家可以通过ADC采到电流, 然后通过我们内部的PGA来做一些放大。 呃,这样可以就是省掉这个, 如果说本身的这个设计上面对于这个 板子的这个体积呀, 包括成本上面有一定要求的话, 那就可以用内部的PGA来 实现这个对于电流信号的一个放大。 呃,那我们看一下 比较器模块它的一个改进。 那么最主要的一个变化的话呢, 就是说我们增加了这个,就是说, 呃,blanking这样的一个功能。 那这个blanking的功能的话, 实际上面就是说,我们可以在 PWM周期边缘的时候的话呢, 可以有一些,比如说 我们可以有一些清除复位呀, 或者是说直接 就是trip的这样一些功能。 另外的话呢, 如果我们用斜坡产生器的话, 斜坡生成器的话呢, 实际上面我们可以通过, 呃,就是说,呃,对于trip呀, 或者是说清除复位 这样的一个方式来进行一个仲裁。 另外的话呢, 实际上面就是说,还有一个改进, 就是说我们比较器的这样的一个, 呃,对于这个判定这个 正负的这样一个输入信号的话呢, 实际上面现在它已经是 可以来进行一个选择和...不好意思, 选择和设置了。 通过我们的这个模拟系统 里面的这个master这样一个机制。 那原来的话呢, 实际上面是在07x里面的话呢, 这个输入引脚的话呢, 它实际上是和这个2807x的这个 高低输出的话呢直接耦合在一起的, 是不可以来进行一个设置的。 呃,这个是关于 比较器模块这边的一个更新。
呃,大家可以看一下, 就是说我们这边的话呢,
实际上面有两种不同 模式。那如果是建的仿真器,
我们就叫Emulation Boot的模式;
如果仿真器拿掉的话呢,就是叫
Stand-alone, 就是说离线的一个Boot模式。
那么对于建立 仿真器的情况下面的话呢,
我们实际上面Boot模式是由这个
BOOTPIN_CONFIG这个 位来,这个寄存器实现的。
大家可以看一下,这个寄存器 的话呢实际上分成了四个区域。
那么我们会根据 这个寄存器的不同的值
来判定它的不同的Boot模式。
这个实际上面就是说, 呃,跟我们原来的话,
这个话题呢还有类似的地方。 但是这个后面的这个部分的话呢,
实际上是全新的。那么大家是,
如果说要选择Boot模式的话呢 可以具体的看一下。
因为这个时间关系 就不会具体的给大家展开了。
那么这个是连接仿真器的时候。
假如不连仿真器, 可能这个是大家经常会用到的,
就是我正常调试的, 就正常运行的时候,
到底程序从哪里开始跑。 那我们这个时候的话呢,
会有另外一个这个寄存器, 它是叫BOOTPIN_CONFIG
OTP里面的 BOOTPIN_CONFIG这个寄存器
来决定的。实际上 这个寄存器大家看一下,
跟我们刚才那个 寄存器结构应该很类似,对吧?
然后它会根据 这个寄存器的值呢来判定,
我是完全通过我们的 这个GPIO32和24来决定,
它到底是串口啊、CAN啊, 或者是这个并行的IO口啊,
或者是直接从Flash里边来的。
那么如果不是这个相关的值的话呢,
我们是会通过BMSP0-1、 0-2这样对应的一些位的一些,
呃,它的一些值来确定 到底是我是哪一种的Boot模式。
所以大家可以看一下。 那这样的话呢,实际上面,
我们可选的这个GPIO的话,
可以从我们这个 任意的GPIO里面的话呢,
做一些选择。 所以说Boot模式就更加的灵活。
呃,那么这一块是 关于Boot模式这一块。
那接下来这个就是 我们刚才说的这个,
呃,BOOTDEF这样的一个寄存器,
它来定义我们来怎么来 选择不同模式下选择不同的一个,
不同的一个引脚。
好,那我们接下来再来看一下这个,
呃,系统部分。 包括我们的定时器啊,
还有我们的一些外部中断 等等,这样的一些对比。
那么对于075来说 的话呢,实际上面就是,
大家看一下这里最主要差异就是因为
我们0049的话呢,它是,呃,
目前的话是64Pin和 100Pin的这种封装,
所以相对来说比075封装要小。
所以我们的GPIO位会少一些。
那另外的话,没有外扩总线, 包括这个,我们的这个,呃,
低功耗模式的话呢也会有些差异。
呃,对于这个 看门狗的一个定时器来说,
这边最主要的一个差异 就是我们在004x上面增加了一个
512分频的一个时钟的设置。
这个在075里边是没有的。
呃,机制上面基本上都是类似的。
呃,那么对于输出的这个X-BAR。
那么大家知道, 实际上我们从那个就是
37x、07x的话呢, 它的一个GPIO的设置就是
通过Input X-BAR 或者Output X-BAR来实现。
那么这种X-BAR的设置 其实比我们原来的这个
Piccolo系列的话会要灵活很多。
也就是说,大家可以自己定义,
比如说我的TD, 我要呢放到哪个引脚上面;
比如说我的的外部中断等等 这样的一些都是可以来进行设置的。
那这个Input BAR的话呢,我们这 边004x的话呢和07x会有一些差异。
实际上面就是说,它这个 Reset的这个值呢会有一定差异。
我们在这个 原来的话呢,07x里都是0。
那么它主要是说对于输出来说,
输入来说的话呢选择GPIO0。
那新的里面的话呢, 我们会 复位值会设成0xFFFE。
那实际上面就是说, 这里的1的话呢,相对于就对应的是,
呃,我们就是输出。
输出1给到这个我们的这个输入端,
然后0的话呢给到输入端 这样的一个不同的指令设置。
那么对于004x来说, 还有一个最大的差异,
就是在我们的捕获端口上面。
那么,原来的这个捕获端口的话,
实际上面我们是,它的Input的这个,
呃,我们的这个端口号 实际上是完全一一对应起来的。
就是说这个是 固定的,我们是不能去改的。
而现在对于这个 我们的捕获端口来说,
在004x里面的话呢, 它实际上是可以来进行设置的。
就是说,不是说是 一个固定的方式,而通过
INPUT15和16的话呢,可以来 选择不同的对应的这个捕获端口。
这个比原来的话呢会更加灵活一些。
所以大家可以看一下, 我们的这里的Input X-BAR的话呢,
实际上面就是可以用来 设置这个,我们的这个捕获的端口。
那么对于PWM和输出的 这个X-BAR的它的一个变化。
那么输出的X-BAR最主要我们增加 了一个CLA后头的这样的一个信号。
这个是在075里是没有的。
那么对于这个 ePWM的这个X-BAR的话呢,
我们会增加了这个,除了 增加了CLA的这个HALT信号之外,
我们还有一个 输入的7-14的这样的一个增加。
这个原先也是没有的,原先只有5-6。
那另外的话呢,我们这个 X-BAR的这个Flag的3寄存器的话呢,
也会增加了一些 功能。那最主要的是说,
我们可以用这个标志位来确定是说
当前是哪个输入源被触发了。
所以这个实际上面也是一个,
呃,比较好的一个功能。
让大家可以来做一个确认,就是 关于这个触发源来做一个确认。
呃,那么对于低功耗模式,大家看一下,
我们004x里面是 没有HIBERNATE这个模式的。
就是这样一个,呃, 应该是一个休眠的这样一个模式的。
这个在075里有,但是004x里没有。
那停止模式的话呢,也会有些差异。
对于这个, 就是说内部晶振来说的话呢,
我们跟2807x也是一样的。
就是说我们 不会在这个调电的时候,
就是把包括这个,呃,叫什么, 功耗降低的时候我们会自动的关掉,
而是我们要通过软件来把它关掉的。
那么对于外部晶振来说的话呢,
在004x里边我们就可以 通过软件在任何时候把它关掉。
这个是,也是004x里边 的话它新增加的一个功能。
那么对于这个,其他的这种 IDLE、STANDBY和HALT模式的话,
这个应该都是跟那个075是类似的。
好。那么对于CLA和DMA, 它的一些这个访问的一些差异,
大家可以看一下在07x里边, 我们的这个CLA和DMA的话会通过
CPU1的一个这个选择的一个 寄存器的话来设置它的一个仲裁。
但是在004x里面这个仲裁就没有了。
那么也就意味着说, 我们实际上面就是说,
外设的话呢是可以 通过这个直接访问这个相关的,
比如说CLA啊,包括DMA。 那也就是意味着说,CLA它是可以
去直接利用这个DMA的这个传送。
那这个其实也是比较方便的。 因为大家知道就是说,比如说,
如果说我的那个,呃, 可以DMA的话,它可以去读那个,
直接读ADC的结果。那这样的话,
我CLA的话相当于 可以直接从DMA的结果里面
就可以读到数据来做一些运算。
这个是CLA和DMA这边的一些改进。
呃,那我们再来 看一下ADC这一个部分,
或者说我们的模拟模块的一个改进。
呃,那么大家 可以看到,实际上就是说,
呃,07x和0049 都是12位的模式。
那么采样率上面的话呢,实际上面,
呃,0049会稍微快一些。 另外的话,我们的这个比较器,
我们会增加到这个, 就是说,从0型变成1型。
另外我们内部的这个DA的话呢,也 是会从,呃,跟那个075是一样的,
但是它是会少一个module。
呃,增加最多的或者说最新的 就是这个PGA的这样的一个模块了。
那我们现在来看一下。
呃,004x和075是一样的, 它只有12位的模式。
但是因为它有三个ADC模块, 所以每个的话呢3.45兆的采样率,
那么基本上 三个我们就可以 做到10.35M这样的采样率。
也就是说大家可以采样电流的 时候,我们可以采样三相电流。
两相或三相电流的话, 我们就可以同时来进行转换。
而且我们就是说, 通过这个单刀模式,
我们可以跟内部的这个PGA的话呢
来直接进行一个内部的连接。
那也就是意味着说, 大家可以通过ADC采到电流,
然后通过我们内部的PGA来做一些放大。
呃,这样可以就是省掉这个, 如果说本身的这个设计上面对于这个
板子的这个体积呀, 包括成本上面有一定要求的话,
那就可以用内部的PGA来 实现这个对于电流信号的一个放大。
呃,那我们看一下 比较器模块它的一个改进。
那么最主要的一个变化的话呢, 就是说我们增加了这个,就是说,
呃,blanking这样的一个功能。
那这个blanking的功能的话, 实际上面就是说,我们可以在
PWM周期边缘的时候的话呢,
可以有一些,比如说 我们可以有一些清除复位呀,
或者是说直接 就是trip的这样一些功能。
另外的话呢, 如果我们用斜坡产生器的话,
斜坡生成器的话呢, 实际上面我们可以通过,
呃,就是说,呃,对于trip呀,
或者是说清除复位 这样的一个方式来进行一个仲裁。
另外的话呢, 实际上面就是说,还有一个改进,
就是说我们比较器的这样的一个,
呃,对于这个判定这个 正负的这样一个输入信号的话呢,
实际上面现在它已经是 可以来进行一个选择和...不好意思,
选择和设置了。
通过我们的这个模拟系统 里面的这个master这样一个机制。
那原来的话呢, 实际上面是在07x里面的话呢,
这个输入引脚的话呢, 它实际上是和这个2807x的这个
高低输出的话呢直接耦合在一起的,
是不可以来进行一个设置的。
呃,这个是关于 比较器模块这边的一个更新。
呃,大家可以看一下, 就是说我们这边的话呢, 实际上面有两种不同 模式。那如果是建的仿真器, 我们就叫Emulation Boot的模式; 如果仿真器拿掉的话呢,就是叫 Stand-alone, 就是说离线的一个Boot模式。 那么对于建立 仿真器的情况下面的话呢, 我们实际上面Boot模式是由这个 BOOTPIN_CONFIG这个 位来,这个寄存器实现的。 大家可以看一下,这个寄存器 的话呢实际上分成了四个区域。 那么我们会根据 这个寄存器的不同的值 来判定它的不同的Boot模式。 这个实际上面就是说, 呃,跟我们原来的话, 这个话题呢还有类似的地方。 但是这个后面的这个部分的话呢, 实际上是全新的。那么大家是, 如果说要选择Boot模式的话呢 可以具体的看一下。 因为这个时间关系 就不会具体的给大家展开了。 那么这个是连接仿真器的时候。 假如不连仿真器, 可能这个是大家经常会用到的, 就是我正常调试的, 就正常运行的时候, 到底程序从哪里开始跑。 那我们这个时候的话呢, 会有另外一个这个寄存器, 它是叫BOOTPIN_CONFIG OTP里面的 BOOTPIN_CONFIG这个寄存器 来决定的。实际上 这个寄存器大家看一下, 跟我们刚才那个 寄存器结构应该很类似,对吧? 然后它会根据 这个寄存器的值呢来判定, 我是完全通过我们的 这个GPIO32和24来决定, 它到底是串口啊、CAN啊, 或者是这个并行的IO口啊, 或者是直接从Flash里边来的。 那么如果不是这个相关的值的话呢, 我们是会通过BMSP0-1、 0-2这样对应的一些位的一些, 呃,它的一些值来确定 到底是我是哪一种的Boot模式。 所以大家可以看一下。 那这样的话呢,实际上面, 我们可选的这个GPIO的话, 可以从我们这个 任意的GPIO里面的话呢, 做一些选择。 所以说Boot模式就更加的灵活。 呃,那么这一块是 关于Boot模式这一块。 那接下来这个就是 我们刚才说的这个, 呃,BOOTDEF这样的一个寄存器, 它来定义我们来怎么来 选择不同模式下选择不同的一个, 不同的一个引脚。 好,那我们接下来再来看一下这个, 呃,系统部分。 包括我们的定时器啊, 还有我们的一些外部中断 等等,这样的一些对比。 那么对于075来说 的话呢,实际上面就是, 大家看一下这里最主要差异就是因为 我们0049的话呢,它是,呃, 目前的话是64Pin和 100Pin的这种封装, 所以相对来说比075封装要小。 所以我们的GPIO位会少一些。 那另外的话,没有外扩总线, 包括这个,我们的这个,呃, 低功耗模式的话呢也会有些差异。 呃,对于这个 看门狗的一个定时器来说, 这边最主要的一个差异 就是我们在004x上面增加了一个 512分频的一个时钟的设置。 这个在075里边是没有的。 呃,机制上面基本上都是类似的。 呃,那么对于输出的这个X-BAR。 那么大家知道, 实际上我们从那个就是 37x、07x的话呢, 它的一个GPIO的设置就是 通过Input X-BAR 或者Output X-BAR来实现。 那么这种X-BAR的设置 其实比我们原来的这个 Piccolo系列的话会要灵活很多。 也就是说,大家可以自己定义, 比如说我的TD, 我要呢放到哪个引脚上面; 比如说我的的外部中断等等 这样的一些都是可以来进行设置的。 那这个Input BAR的话呢,我们这 边004x的话呢和07x会有一些差异。 实际上面就是说,它这个 Reset的这个值呢会有一定差异。 我们在这个 原来的话呢,07x里都是0。 那么它主要是说对于输出来说, 输入来说的话呢选择GPIO0。 那新的里面的话呢, 我们会 复位值会设成0xFFFE。 那实际上面就是说, 这里的1的话呢,相对于就对应的是, 呃,我们就是输出。 输出1给到这个我们的这个输入端, 然后0的话呢给到输入端 这样的一个不同的指令设置。 那么对于004x来说, 还有一个最大的差异, 就是在我们的捕获端口上面。 那么,原来的这个捕获端口的话, 实际上面我们是,它的Input的这个, 呃,我们的这个端口号 实际上是完全一一对应起来的。 就是说这个是 固定的,我们是不能去改的。 而现在对于这个 我们的捕获端口来说, 在004x里面的话呢, 它实际上是可以来进行设置的。 就是说,不是说是 一个固定的方式,而通过 INPUT15和16的话呢,可以来 选择不同的对应的这个捕获端口。 这个比原来的话呢会更加灵活一些。 所以大家可以看一下, 我们的这里的Input X-BAR的话呢, 实际上面就是可以用来 设置这个,我们的这个捕获的端口。 那么对于PWM和输出的 这个X-BAR的它的一个变化。 那么输出的X-BAR最主要我们增加 了一个CLA后头的这样的一个信号。 这个是在075里是没有的。 那么对于这个 ePWM的这个X-BAR的话呢, 我们会增加了这个,除了 增加了CLA的这个HALT信号之外, 我们还有一个 输入的7-14的这样的一个增加。 这个原先也是没有的,原先只有5-6。 那另外的话呢,我们这个 X-BAR的这个Flag的3寄存器的话呢, 也会增加了一些 功能。那最主要的是说, 我们可以用这个标志位来确定是说 当前是哪个输入源被触发了。 所以这个实际上面也是一个, 呃,比较好的一个功能。 让大家可以来做一个确认,就是 关于这个触发源来做一个确认。 呃,那么对于低功耗模式,大家看一下, 我们004x里面是 没有HIBERNATE这个模式的。 就是这样一个,呃, 应该是一个休眠的这样一个模式的。 这个在075里有,但是004x里没有。 那停止模式的话呢,也会有些差异。 对于这个, 就是说内部晶振来说的话呢, 我们跟2807x也是一样的。 就是说我们 不会在这个调电的时候, 就是把包括这个,呃,叫什么, 功耗降低的时候我们会自动的关掉, 而是我们要通过软件来把它关掉的。 那么对于外部晶振来说的话呢, 在004x里边我们就可以 通过软件在任何时候把它关掉。 这个是,也是004x里边 的话它新增加的一个功能。 那么对于这个,其他的这种 IDLE、STANDBY和HALT模式的话, 这个应该都是跟那个075是类似的。 好。那么对于CLA和DMA, 它的一些这个访问的一些差异, 大家可以看一下在07x里边, 我们的这个CLA和DMA的话会通过 CPU1的一个这个选择的一个 寄存器的话来设置它的一个仲裁。 但是在004x里面这个仲裁就没有了。 那么也就意味着说, 我们实际上面就是说, 外设的话呢是可以 通过这个直接访问这个相关的, 比如说CLA啊,包括DMA。 那也就是意味着说,CLA它是可以 去直接利用这个DMA的这个传送。 那这个其实也是比较方便的。 因为大家知道就是说,比如说, 如果说我的那个,呃, 可以DMA的话,它可以去读那个, 直接读ADC的结果。那这样的话, 我CLA的话相当于 可以直接从DMA的结果里面 就可以读到数据来做一些运算。 这个是CLA和DMA这边的一些改进。 呃,那我们再来 看一下ADC这一个部分, 或者说我们的模拟模块的一个改进。 呃,那么大家 可以看到,实际上就是说, 呃,07x和0049 都是12位的模式。 那么采样率上面的话呢,实际上面, 呃,0049会稍微快一些。 另外的话,我们的这个比较器, 我们会增加到这个, 就是说,从0型变成1型。 另外我们内部的这个DA的话呢,也 是会从,呃,跟那个075是一样的, 但是它是会少一个module。 呃,增加最多的或者说最新的 就是这个PGA的这样的一个模块了。 那我们现在来看一下。 呃,004x和075是一样的, 它只有12位的模式。 但是因为它有三个ADC模块, 所以每个的话呢3.45兆的采样率, 那么基本上 三个我们就可以 做到10.35M这样的采样率。 也就是说大家可以采样电流的 时候,我们可以采样三相电流。 两相或三相电流的话, 我们就可以同时来进行转换。 而且我们就是说, 通过这个单刀模式, 我们可以跟内部的这个PGA的话呢 来直接进行一个内部的连接。 那也就是意味着说, 大家可以通过ADC采到电流, 然后通过我们内部的PGA来做一些放大。 呃,这样可以就是省掉这个, 如果说本身的这个设计上面对于这个 板子的这个体积呀, 包括成本上面有一定要求的话, 那就可以用内部的PGA来 实现这个对于电流信号的一个放大。 呃,那我们看一下 比较器模块它的一个改进。 那么最主要的一个变化的话呢, 就是说我们增加了这个,就是说, 呃,blanking这样的一个功能。 那这个blanking的功能的话, 实际上面就是说,我们可以在 PWM周期边缘的时候的话呢, 可以有一些,比如说 我们可以有一些清除复位呀, 或者是说直接 就是trip的这样一些功能。 另外的话呢, 如果我们用斜坡产生器的话, 斜坡生成器的话呢, 实际上面我们可以通过, 呃,就是说,呃,对于trip呀, 或者是说清除复位 这样的一个方式来进行一个仲裁。 另外的话呢, 实际上面就是说,还有一个改进, 就是说我们比较器的这样的一个, 呃,对于这个判定这个 正负的这样一个输入信号的话呢, 实际上面现在它已经是 可以来进行一个选择和...不好意思, 选择和设置了。 通过我们的这个模拟系统 里面的这个master这样一个机制。 那原来的话呢, 实际上面是在07x里面的话呢, 这个输入引脚的话呢, 它实际上是和这个2807x的这个 高低输出的话呢直接耦合在一起的, 是不可以来进行一个设置的。 呃,这个是关于 比较器模块这边的一个更新。
呃,大家可以看一下, 就是说我们这边的话呢,
实际上面有两种不同 模式。那如果是建的仿真器,
我们就叫Emulation Boot的模式;
如果仿真器拿掉的话呢,就是叫
Stand-alone, 就是说离线的一个Boot模式。
那么对于建立 仿真器的情况下面的话呢,
我们实际上面Boot模式是由这个
BOOTPIN_CONFIG这个 位来,这个寄存器实现的。
大家可以看一下,这个寄存器 的话呢实际上分成了四个区域。
那么我们会根据 这个寄存器的不同的值
来判定它的不同的Boot模式。
这个实际上面就是说, 呃,跟我们原来的话,
这个话题呢还有类似的地方。 但是这个后面的这个部分的话呢,
实际上是全新的。那么大家是,
如果说要选择Boot模式的话呢 可以具体的看一下。
因为这个时间关系 就不会具体的给大家展开了。
那么这个是连接仿真器的时候。
假如不连仿真器, 可能这个是大家经常会用到的,
就是我正常调试的, 就正常运行的时候,
到底程序从哪里开始跑。 那我们这个时候的话呢,
会有另外一个这个寄存器, 它是叫BOOTPIN_CONFIG
OTP里面的 BOOTPIN_CONFIG这个寄存器
来决定的。实际上 这个寄存器大家看一下,
跟我们刚才那个 寄存器结构应该很类似,对吧?
然后它会根据 这个寄存器的值呢来判定,
我是完全通过我们的 这个GPIO32和24来决定,
它到底是串口啊、CAN啊, 或者是这个并行的IO口啊,
或者是直接从Flash里边来的。
那么如果不是这个相关的值的话呢,
我们是会通过BMSP0-1、 0-2这样对应的一些位的一些,
呃,它的一些值来确定 到底是我是哪一种的Boot模式。
所以大家可以看一下。 那这样的话呢,实际上面,
我们可选的这个GPIO的话,
可以从我们这个 任意的GPIO里面的话呢,
做一些选择。 所以说Boot模式就更加的灵活。
呃,那么这一块是 关于Boot模式这一块。
那接下来这个就是 我们刚才说的这个,
呃,BOOTDEF这样的一个寄存器,
它来定义我们来怎么来 选择不同模式下选择不同的一个,
不同的一个引脚。
好,那我们接下来再来看一下这个,
呃,系统部分。 包括我们的定时器啊,
还有我们的一些外部中断 等等,这样的一些对比。
那么对于075来说 的话呢,实际上面就是,
大家看一下这里最主要差异就是因为
我们0049的话呢,它是,呃,
目前的话是64Pin和 100Pin的这种封装,
所以相对来说比075封装要小。
所以我们的GPIO位会少一些。
那另外的话,没有外扩总线, 包括这个,我们的这个,呃,
低功耗模式的话呢也会有些差异。
呃,对于这个 看门狗的一个定时器来说,
这边最主要的一个差异 就是我们在004x上面增加了一个
512分频的一个时钟的设置。
这个在075里边是没有的。
呃,机制上面基本上都是类似的。
呃,那么对于输出的这个X-BAR。
那么大家知道, 实际上我们从那个就是
37x、07x的话呢, 它的一个GPIO的设置就是
通过Input X-BAR 或者Output X-BAR来实现。
那么这种X-BAR的设置 其实比我们原来的这个
Piccolo系列的话会要灵活很多。
也就是说,大家可以自己定义,
比如说我的TD, 我要呢放到哪个引脚上面;
比如说我的的外部中断等等 这样的一些都是可以来进行设置的。
那这个Input BAR的话呢,我们这 边004x的话呢和07x会有一些差异。
实际上面就是说,它这个 Reset的这个值呢会有一定差异。
我们在这个 原来的话呢,07x里都是0。
那么它主要是说对于输出来说,
输入来说的话呢选择GPIO0。
那新的里面的话呢, 我们会 复位值会设成0xFFFE。
那实际上面就是说, 这里的1的话呢,相对于就对应的是,
呃,我们就是输出。
输出1给到这个我们的这个输入端,
然后0的话呢给到输入端 这样的一个不同的指令设置。
那么对于004x来说, 还有一个最大的差异,
就是在我们的捕获端口上面。
那么,原来的这个捕获端口的话,
实际上面我们是,它的Input的这个,
呃,我们的这个端口号 实际上是完全一一对应起来的。
就是说这个是 固定的,我们是不能去改的。
而现在对于这个 我们的捕获端口来说,
在004x里面的话呢, 它实际上是可以来进行设置的。
就是说,不是说是 一个固定的方式,而通过
INPUT15和16的话呢,可以来 选择不同的对应的这个捕获端口。
这个比原来的话呢会更加灵活一些。
所以大家可以看一下, 我们的这里的Input X-BAR的话呢,
实际上面就是可以用来 设置这个,我们的这个捕获的端口。
那么对于PWM和输出的 这个X-BAR的它的一个变化。
那么输出的X-BAR最主要我们增加 了一个CLA后头的这样的一个信号。
这个是在075里是没有的。
那么对于这个 ePWM的这个X-BAR的话呢,
我们会增加了这个,除了 增加了CLA的这个HALT信号之外,
我们还有一个 输入的7-14的这样的一个增加。
这个原先也是没有的,原先只有5-6。
那另外的话呢,我们这个 X-BAR的这个Flag的3寄存器的话呢,
也会增加了一些 功能。那最主要的是说,
我们可以用这个标志位来确定是说
当前是哪个输入源被触发了。
所以这个实际上面也是一个,
呃,比较好的一个功能。
让大家可以来做一个确认,就是 关于这个触发源来做一个确认。
呃,那么对于低功耗模式,大家看一下,
我们004x里面是 没有HIBERNATE这个模式的。
就是这样一个,呃, 应该是一个休眠的这样一个模式的。
这个在075里有,但是004x里没有。
那停止模式的话呢,也会有些差异。
对于这个, 就是说内部晶振来说的话呢,
我们跟2807x也是一样的。
就是说我们 不会在这个调电的时候,
就是把包括这个,呃,叫什么, 功耗降低的时候我们会自动的关掉,
而是我们要通过软件来把它关掉的。
那么对于外部晶振来说的话呢,
在004x里边我们就可以 通过软件在任何时候把它关掉。
这个是,也是004x里边 的话它新增加的一个功能。
那么对于这个,其他的这种 IDLE、STANDBY和HALT模式的话,
这个应该都是跟那个075是类似的。
好。那么对于CLA和DMA, 它的一些这个访问的一些差异,
大家可以看一下在07x里边, 我们的这个CLA和DMA的话会通过
CPU1的一个这个选择的一个 寄存器的话来设置它的一个仲裁。
但是在004x里面这个仲裁就没有了。
那么也就意味着说, 我们实际上面就是说,
外设的话呢是可以 通过这个直接访问这个相关的,
比如说CLA啊,包括DMA。 那也就是意味着说,CLA它是可以
去直接利用这个DMA的这个传送。
那这个其实也是比较方便的。 因为大家知道就是说,比如说,
如果说我的那个,呃, 可以DMA的话,它可以去读那个,
直接读ADC的结果。那这样的话,
我CLA的话相当于 可以直接从DMA的结果里面
就可以读到数据来做一些运算。
这个是CLA和DMA这边的一些改进。
呃,那我们再来 看一下ADC这一个部分,
或者说我们的模拟模块的一个改进。
呃,那么大家 可以看到,实际上就是说,
呃,07x和0049 都是12位的模式。
那么采样率上面的话呢,实际上面,
呃,0049会稍微快一些。 另外的话,我们的这个比较器,
我们会增加到这个, 就是说,从0型变成1型。
另外我们内部的这个DA的话呢,也 是会从,呃,跟那个075是一样的,
但是它是会少一个module。
呃,增加最多的或者说最新的 就是这个PGA的这样的一个模块了。
那我们现在来看一下。
呃,004x和075是一样的, 它只有12位的模式。
但是因为它有三个ADC模块, 所以每个的话呢3.45兆的采样率,
那么基本上 三个我们就可以 做到10.35M这样的采样率。
也就是说大家可以采样电流的 时候,我们可以采样三相电流。
两相或三相电流的话, 我们就可以同时来进行转换。
而且我们就是说, 通过这个单刀模式,
我们可以跟内部的这个PGA的话呢
来直接进行一个内部的连接。
那也就是意味着说, 大家可以通过ADC采到电流,
然后通过我们内部的PGA来做一些放大。
呃,这样可以就是省掉这个, 如果说本身的这个设计上面对于这个
板子的这个体积呀, 包括成本上面有一定要求的话,
那就可以用内部的PGA来 实现这个对于电流信号的一个放大。
呃,那我们看一下 比较器模块它的一个改进。
那么最主要的一个变化的话呢, 就是说我们增加了这个,就是说,
呃,blanking这样的一个功能。
那这个blanking的功能的话, 实际上面就是说,我们可以在
PWM周期边缘的时候的话呢,
可以有一些,比如说 我们可以有一些清除复位呀,
或者是说直接 就是trip的这样一些功能。
另外的话呢, 如果我们用斜坡产生器的话,
斜坡生成器的话呢, 实际上面我们可以通过,
呃,就是说,呃,对于trip呀,
或者是说清除复位 这样的一个方式来进行一个仲裁。
另外的话呢, 实际上面就是说,还有一个改进,
就是说我们比较器的这样的一个,
呃,对于这个判定这个 正负的这样一个输入信号的话呢,
实际上面现在它已经是 可以来进行一个选择和...不好意思,
选择和设置了。
通过我们的这个模拟系统 里面的这个master这样一个机制。
那原来的话呢, 实际上面是在07x里面的话呢,
这个输入引脚的话呢, 它实际上是和这个2807x的这个
高低输出的话呢直接耦合在一起的,
是不可以来进行一个设置的。
呃,这个是关于 比较器模块这边的一个更新。
视频报错
手机看
扫码用手机观看
收藏本课程
视频简介
C2000 F2004x 在实时控制系统中的新特性介绍 (2)
所属课程:基于 TI C2000 的电机控制应用
发布时间:2017.12.06
视频集数:5
本节视频时长:00:10:22
观看此视频后,我们会了解到C2000 F2004x在实时控制系统中特性,还会掌握如何在C2000上实现小于1微秒的电流环的设计。
//=$v1;?>
//=$v['id']?>//=$v['down_category']?>//=$v['link']?>//=$v['is_dl']?>//=$v['link']?>//=$v['name']?>//=$v['name']?>
//=$v['id']?>//=$v['down_category']?>//=$v['path']?>//=$v['is_dl']?>//=$v['path']?>//=$v['name']?>//=$v['name']?>
////=count($lesson['bbsinfo'])?>
//=$elink?>//=$elink?>//=$tags[0]?>//=$tags[0]?>//=$elink?>//= $elink?>//=$tags[1]?>//=$tags[1]?>
//=$lesson['bbs'];?>
//=count($lesson['bbsinfo'])?>