| The story behind its development.
The development of this system proved to be far more difficult than initially anticipated.
Initially, I had it on hand. ATMEGA32U4 Development began using [this method].
However, the investigation revealed that this microcontroller...USB.Although the port functions as a device,
USB.It has been determined that it cannot be used as a host.
Therefore, respond. ESP32-S3 We purchased [a new product/service] and decided to migrate our development environment.
■ Arduino IDE.from.ESP-IDF.fart.
Initially. Arduino IDE Use .ESP32-S3.Create the program,AT-300.Regarding the control section...
We were able to implement it in a relatively short amount of time.
but,YAESU.Radio equipment (FT-891.) and.USB.Due to connectionCAT.
The communication simply wouldn't work, and we hit a major roadblock here.
To solve this problem,Arduino.Leaving the environment,ESP-IDF.Transition to...
C++With low-level control,USB.We've decided to work on direct communication with the device.
■ CP2105.Making your own screwdriver.
YAESU.Radio equipment.USB.The interface includes:Silicon Labs.Made by. CP2105 It is being used.
but,ESP32-S3.For use.CP2105.The driver.GitHub.I couldn't find it even after searching above.
So the final choice was,Linux.This method involves referring to the kernel source code.
Linux.Driver (cp210x.c.) read the data and extract only the necessary processing,ESP32-S3.Reimplemented for this purpose.
This task takes approximately...5.It took several days, but the result was...FT-891.That.CAT.Communication successful.
■ FTDX3000.and built-in.USB HubThe wall.
next.FTDX3000.When we tested it, we encountered an even bigger problem.
FTDX3000.So,CP2105.In front of it.USB Hub.It was discovered that it was built-in,
The system was designed in such a way that communication could not be achieved through simple device connections.
Even after repeated trial and error,HUB.It lies beyond that.CP2105.Unable to communicate with them,
development comes to a complete standstill.
■ HUB.Driver transplant.
To solve this problem, once again...Linux.Returning to the kernel, this time... hub.c Analyze it.
USB HubThe processing required for control.ESP32-S3.I transplanted it to [location].
USB.It was an extremely painstaking process, involving meticulously checking each step,
such as enumerating ports, controlling ports, and recognizing devices, as we proceeded with the implementation.
■ The moment I almost gave up.
During development, we encountered numerous dead ends, and there were times when we couldn't see a way to resolve the issue.
Each time.ChatGPT.from"ESP32.Instead,Raspberry Pi 3 or. Zero 2W I was told, "Wouldn't it be easier to use [this method]?"
In fact, I was often advised to go in that direction, and there was a time
when I seriously considered whether I should change my environment.
■ about.30.After days of trial and error.
nevertheless.ESP32-S3.Determined to achieve it, and after much trial and error,
about.30.After several days of development,FTDX3000.But I've now completed a driver that works correctly.
■ Looking back.
This development is
- USB.Host control.
- Linux.Kernel analysis.
- Porting device drivers.
- Control design using state-based machinery.
This involved delving into a very deep area within embedded systems development.
As a result,ESP32-S3.On its own.YAESU.Connecting the radio and antenna tuner,
We were able to realize a completely standalone control system.
I feel that this experience has become an extremely valuable technical asset.
|