最近我被要求设计一款双通道讯号转换器,从双极输入电压到双极输出电流;我马上假设这应该是一个纯类比设计,但有些事情却困扰了我。其中一个明确的需求是,每个通道要有一颗根据输入讯号变化亮度的双色LED,并以红灯或是绿灯来分别指示讯号为正或是负。 这会遇到两个问题;第一,LED驱动会需要升压,所以没有接近零的死区;第二,我可以预见一个状况是当讯号为负,LED(以及可能是输出)却呈现正值,反之亦然。这种状况的机械当量称作为后座力(backlash)。我认为并非要采用可变电压来驱动LED,而是采用PWM驱动器如Linear的LTC6992,但我仍会产生一个偏移,也无法解决后座力的问题。 此外,我会需要两颗PWM驱动器(每个通道一颗),这也可能得增加额外的电路让LED由红变绿;于是一个合乎逻辑的作法是去找适合的低阶微控制器(MCU)。 我先从Microchip的产品找起,但我发现适合的是**体容量较小的16C系列,意味着得使用组合语言。我曾在其他的开发案使用过16C系列,却遇到指令集不足(该系列MCU是RISC架构元件)以及**体区段(memorysegmentation)问题;因为这样的偏见,我又找了NXP的元件以及Freescale的ARMCortex-M0晶片。 因为选择太多,我开始犹豫不决。不过以前我曾在一个案子采用Freescale的CodeWarrior开发环境,却发现我们得额外付费才能取得我们需要的支援服务,这又让我产生偏见。 总之我现在可以告诉你,我已经成为Cypreess的PSoC 的支持者。我曾采用PSoC 1做过许多个小规模设计案,以及用PSoC 5做过一个大型设计;我也听过一些关于采用ARMCortex-M0核心的PSoC 4的一些热门讨论,但看到PSoC 4的价格,实在是令我惊喜。 还好我的设计案在价格上有一些机动性,而且据了解,PSoC 的配置灵活性通常能减少一些外部元件的运用;当然,我们已经有仿真器以及一些经验,所以我决定进一步看看这款元件以及搭配的PSoC 4PioneerKit开发工具(可相容Arduino外壳)。该款开发工具采用多才多艺的PSoC 4200系列元件,这也成为我的设计案出发点。 想知道更多与PSoC 相关的资讯?请连结Cypress资源中心 Cypress提供了很棒的开发环境PSoC Creator,能让你进行产品配置、编程以及除错;PSoC 的架构介于MCU与FPGA之间,除了处理器核心,该元件具备一些可配置的类比电路,以及一些可编程数位电路(不过与FPGA的又不太相同)。开发者也能随着元件取得一系列所需功能IP进行配置;该开发环境如下图所示。 PSoC Creator开发环境
|