Giter Site home page Giter Site logo

chunithm-psoc's Introduction

chunithm-PSoC

一个可参考的chunithm手台使用PSoC芯片的例子

大体结构

  • 使用RP2040开发板作为主控芯片
  • 两块PSoC4(cy8c4245axi-483)作为触摸芯片,通过I2C与RP2040通讯
  • 由于RP2040的ADC外设数量不足,使用74hc4051多路模拟复用器芯片来轮询六个红外接收
  • 使用yubideck的io进行通讯

特别感谢

  • 凌鸽在触摸干扰调试和Air调试上提供的帮助(Air校准部分参考自LINGNITHM项目)
  • yubideck开放的io协议

关于PSoC

  • 需要的软件:PSoC Creator
  • PSoC Creator的使用可以观看youtube上的PSoC101相关教程,也可以来三连支持一下我在bilibili上传的渣翻的PSoC101教程
  • PSoC4的烧录也许可以使用普通的SWD烧录器(如jlink,daplink等),但我并没摸索出来。目前已知可行的办法:
    1.使用kitprog(可从CY8CKIT-147上掰下来)
    2.使用miniprog(将近一千块钱,好贵)
    3.使用arduino作为其SWD烧录器(我没试过,不过应该可以),详见项目PSoC4_HSSP_Arduino

备注

  • pid,vid,设备名和制造商名可以在代码中修改了,而不需要修改boards.txt
  • 受预算和个人精力限制,本项目的cad以及支架设计极为落后,所以仅供软硬件方案参考,可参考更完善成熟的方案,如LINGNITHM、GSK等
  • 由于右边Air在PCB上没空间走线过去,所以我使用了一根排线飞过去,这就是pcb原理图中有四个XH插座的原因((可以看实物图)
  • 可以将I2C通讯更改为UART通讯来达成更高的传输速度
  • 板子上加了一个EEPROM,连接到了RP2040的I2C0外设,可用于保存用户配置(未实现),因为RP2040没有自带EEPROM
  • 暂未编写灯光反馈功能
  • 如果想适配原生串口,需要修改TinyUSB库的部分代码来删除其中的DTR信号检查
  • 两个芯片之间通过left_ready(左芯片准备好开始下一次扫描),right_start(右芯片开始下一次扫描)两个信号线来保证两个芯片的同步,从而防止扫描的干扰。可以利用上两个PSoC上剩余空闲的引脚来实现其他功能(如PSoC的复位,数据传输等等)
  • 单次扫描周期目前实测为23ms,可能需要修改PSoC代码的部分配置来达成更高的扫描速度,详见CapSense Design Guide

实物图

pic0

chunithm-psoc's People

Contributors

hlcm0 avatar

Stargazers

 avatar 祀画 avatar  avatar bokutake avatar Fish avatar SoulGateKey avatar fangxx3863 avatar  avatar

Watchers

 avatar

Forkers

soulgatekey

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.