minagi-yu / avr-usppd

AVRマイコンでUSB Power Deliveryをしたい

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AVRマイコンでUSB Power Deliveryする

概要

USB PDコントローラーを使わず、AVRのペリフェラル(CCL, SPI, USART, AC, DAC)とMOSFETだけでUSB PDをやってようと始めたプロジェクト。

このツイートのリプライツリーを見ると考えてることがわかるかも。https://twitter.com/minagi_yu/status/1478704467101257728

構成

  • CCL

受信側ではBMC((Biphase Mark Code)をデコードするために使用。送信側ではCCラインを駆動するためのトーテムポールのMOSFETの下側のゲートの出力に使用。

  • SPI

スレーブに設定して、CCLでデコードしたCCラインのデータを受信する。

  • USART

ハード回路でBMCにエンコードしないので、ボーレートを倍の周波数としてあらかじめBMCにしたデータを送信する。

  • AC

CCラインの電圧レベルは約1.2Vのため、直接デジタル入力できないため、しきい値の変換器として使用。

  • DAC

CC出力の電圧レベルも1.2Vなので送信用MOSFETのコレクタ電源として使用。

  • TCB0

300kbpsのBMCのデコードするときの遅延時間を設けるために使用。

進捗

  • 送信側の処理を無効にして、作ったUSB PDアナライザーでPDのパケットを見れた
  • 送受信を決め打ちで設定して、Appleの充電器から9Vを取り出せた
  • receiveブランチで送信側のプロトコルスタックを作成中 NOW
    • SPIのバイトオーダーが逆のほうが作りやすかったので変更
    • まずはパソコン側のソフトでSOPとかCRCとかの検証

About

AVRマイコンでUSB Power Deliveryをしたい

License:Boost Software License 1.0


Languages

Language:C 92.4%Language:Makefile 7.6%