不知道大家是否听说过MOXA这个品牌的多路串口设备,这个品牌在工业领域比较常见。
SPI转UART
理论上配合可以利用STM32F103的两路SPI,配合SPI/UART转换IC(如NXP SC16IS752或国产SJ000)可以实现多路的USB/UART转换。一路SPI可以转2/4路UART,而每个IC对应额外的CS/INT引脚。反正8~16路是可以实现的。
英语中从一到十的词根可以用上了:
- Mono/single/one
- di-/double/two
- tri-/triple/three
- quad-/four
- penta-/five
- hexa-/six
- hepta-/seven
- octa-/eight
- nota-/nine
- deca-/ten
- ......
以上来自
雅虎问答
一般1/2/4/8路比较符合我们工程师的二进制思维,偶尔有看到过五路、六路的,比如MikroElectronika的熊爪扩展板(五路)。
片内UART
STM32F103C8片内自带三路UART,可以用来实现USB/UART x 3的多路串口设备。不过一般来说很少有把三路UART都利用上的,大多两路即可。
Github源码
在Github有若干相关工程:
以上工程大多基于GCC,如果要开发和修改代码,建议在Linux下编译。我测试下来,Ubuntu 12.04/18.04LTS可以识别出两路CDC。
衍生项目
我准备首先使用单路USB/CDC对接一路SX127X。然后将选择一个较为稳定的工程,作为两路LoRaWAN的接入平台,使用双路USB/CDC对接两路SX127X。
由于C++类继承的关系,会使用Arduino C++/mbed C++来实现,而非CubeMX C SDK。