スキップしてメイン コンテンツに移動

投稿

ラベル(デュアルUSB Serial Converter)が付いた投稿を表示しています

STM32F103C6T6を デュアルUSB Serial Converterにする

実はType-C インターフェースのSTM32F103C8T6を注文した(つもりだった)のですが、後でよく見るとC8T6ではなくC6T6だった事にあとで気づいてしまいました。 C6T6はRAM/FlashともにC8T6より少ないうえ、USARTが2つしかないため、C8T6向けのファームウェアを持ってくるのに制約がありますし、もちろんプロジェクトを作るにしても制約がありますのでこのままではお蔵入りさせるしかありません。しかし、もったいないので何かに使えるようにしておきたいと思うのですが、たとえば以前紹介したC8T6向けのTriple CDCはUSARTを3つ使用するのでそのままでは使えません。どうしたものかと思いまず他のDual CDCのKeil向けのソースをCubeIDEでコンパイルできるようにしたのですが、通信はできないわけではないがCubeProgrammerでUARTでターゲットに接続できないうえ、USB接続するのに少し手間がかかるので、これはダメでした。さらにDualではなくSingleでソースをCubeIDEを使ってコードをおこしてみたのですが、これも通信はできるがCubeProgrammerのほうはダメでした。そこでもう一度気を取り直し、Triple CDCのソースを編集してDual CDCにしてみたところ思ったよりも簡単に編集でき、通信もCubeProgrammerも動作したので、本稿を挙げてみることにしました。 2023/09/24追記:rs232接続ではなく、tx/rxのみ使用する場合、9600等の低速だと、テキストサイズが大きめの場合、残念ながら暴走します。また、同じく、9600等の低速だと、zmodemによるファイル転送はサイズの大小にかかわらず、暴走してしまいます。なおkermitの場合は9600でもファイル転送できました。また、115200の場合はzmodemによるファイル転送は同時に2つ送受信できますが、テキストサイズが極端に大きい場合(例えば8k bytes)暴走します。逆に921600の場合、テキストサイズが100kを超える場合でも暴走しませんでした。また、CubeProgrammerは115200でのみ動作確認できました。なお、rs232接続でのテストは行っていません。 使用にあたって当方は責任を一切おいませんので、あし...