MCP cover image
See in Github
2020-04-17

Python接口到MCP2200

2

Github Watches

6

Github Forks

9

Github Stars

Drive the MCP2200 with python

MCP2200 is the Microchip USB-Serial transceiver. Datasheet

The USB link is also used to configure the device, and, as a bonus, to easily manage some GPIO and EEPROM on the device.

When connected to a computer, it creates 2 new USB devices

  • A USB CDC that's the actual virtual serial port any tool will use to communicate.
  • A USB HID, that can be used to personalize and configure the chip.

The MCP2200 is delivered along with a user interface that helps easily configuring it. BUT... it's pure Windows !!

Thanksfully, Microchip delivers this document as well : The fully documented HID protocol

This project implements the microchip specifications at 3 levels :

  • The graphical configuration tool
  • The USB HID specification
  • The API as described in the component's datasheet

Install

git clone https://github.com/cdtx/mcp2200.git
cd mcp2200
pip install -r requirements.txt
python setup install

GUI

GUI

Example at USB HID level

from cdtx.mcp2200.device import MCP2200Device

try:
    dev = mcp2200Device(autoConnect=True)
except:
    sys.exit('Cannot connect the device')

try:
    # Set GPIO 0 as output and set it
    config = dev.read_all()
    # Reset bit0 of IO_bmap
    config['IO_bmap'] &= 0xFE
    dev.configure(**config)
    dev.set_clear_outputs(Set_bmap=0x01, Clear_bmap=0x00)
finally:
    mcp2200.disconnects()

Example at API level

from cdtx.mcp2200.api import SimpleIOClass

# Init class and connect device
dev = SimpleIOClass()
dev.InitMCP2200(0x04d8, 0x00df)
assert dev.GetNoOfDevices() == 1

# Set GPIO 0 as output and set it
dev.SelectDevice(0)
assert dev.IsConnected() == True
# Set all pins as outputs
dev.ConfigureIO(0x00)
dev.SetPin(0)
assert dev.ReadPinValue(0) == 1

Problem with permissions ?

1. Quick and dirty solution is to install and run as root

2. Prefer allowing current user to manage USB devices

Add the following rule to file /etc/udev/rules.d/50-myrules.rules (create if necessary)
```
ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="00df", GROUP:="plugdev", MODE="0660"
```

The current user must belong to the __plugdev__ group
```
sudo usermode -a -G plugdev ${USER}
```

[Source](https://askubuntu.com/questions/112568/how-do-i-allow-a-non-default-user-to-use-serial-device-ttyusb0)

相关推荐

  • Yusuf Emre Yeşilyurt
  • I find academic articles and books for research and literature reviews.

  • https://suefel.com
  • Latest advice and best practices for custom GPT development.

  • https://maiplestudio.com
  • Find Exhibitors, Speakers and more

  • Carlos Ferrin
  • Encuentra películas y series en plataformas de streaming.

  • Joshua Armstrong
  • Confidential guide on numerology and astrology, based of GG33 Public information

  • Alexandru Strujac
  • Efficient thumbnail creator for YouTube videos

  • Emmet Halm
  • Converts Figma frames into front-end code for various mobile frameworks.

  • Elijah Ng Shi Yi
  • Advanced software engineer GPT that excels through nailing the basics.

  • lumpenspace
  • Take an adjectivised noun, and create images making it progressively more adjective!

  • Lists Tailwind CSS classes in monospaced font

  • https://zenepic.net
  • Embark on a thrilling diplomatic quest across a galaxy on the brink of war. Navigate complex politics and alien cultures to forge peace and avert catastrophe in this immersive interstellar adventure.

  • apappascs
  • 发现市场上最全面,最新的MCP服务器集合。该存储库充当集中式枢纽,提供了广泛的开源和专有MCP服务器目录,并提供功能,文档链接和贡献者。

  • ShrimpingIt
  • MCP系列GPIO Expander的基于Micropython I2C的操作,源自ADAFRUIT_MCP230XX

  • Mintplex-Labs
  • 带有内置抹布,AI代理,无代理构建器,MCP兼容性等的多合一桌面和Docker AI应用程序。

  • ravitemer
  • 一个功能强大的Neovim插件,用于管理MCP(模型上下文协议)服务器

  • jae-jae
  • MCP服务器使用剧作《无头浏览器》获取网页内容。

  • patruff
  • Ollama和MCP服务器之间的桥梁,使本地LLMS可以使用模型上下文协议工具

  • pontusab
  • 光标与风浪冲浪社区,查找规则和MCP

  • n8n-io
  • 具有本机AI功能的公平代码工作流程自动化平台。将视觉构建与自定义代码,自宿主或云相结合,400+集成。

  • WangRongsheng
  • 🧑‍🚀 llm 资料总结(数据处理、模型训练、模型部署、 o1 模型、mcp 、小语言模型、视觉语言模型)|摘要世界上最好的LLM资源。

    Reviews

    3 (1)
    Avatar
    user_1ZnlJ6UD
    2025-04-17

    The mcp2200 by cdtx is a phenomenal tool for efficient USB-to-serial conversion. I appreciate its reliable functionality and seamless integration in my projects. The detailed documentation on GitHub makes it easy to get started and utilize its full potential. If you need a solid converter, this is a must-have!