The chips in the converter is MAX485 and CH340G.
I connected the RS485 devices as the following picture.
The result of lsusb
Bus 001 Device 005: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter //These two are the converters I plug in.
Bus 001 Device 003: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
But when ls /dev/tty* ,I failed to find /dev/ttyUSB0 and /dev/ttyUSB1 .
If I try it on Ubuntu, there is no such problem. Can anyone tells me what happened.
Thanks a lot.
As I understand from your case you're only able to recognize the devices connected on an Ubuntu machine right? Specifically which Ubuntu version and which name does it display in Ubuntu? In the Edison, the USB port near the power supply appears as /dev/ttyACMx or /dev/ttyUSBx. Are you using the Arduino IDE, have you already installed all the required drivers?
Take a look at https://software.intel.com/en-us/troubleshooting-and-faq-for-arduino-ide https://software.intel.com/en-us/troubleshooting-and-faq-for-arduino-ide . You can find information and suggestions to install the required drivers needed.
Let us know if you found this information useful.
Yes,the situation is as you have understood.
I'm using Ubuntu 12.04LTS. The two device are normally /dev/ttyUSB0 and /dev/ttyUSB1 . I have also tried Raspberry pi 2 with the latest Raspbian Jessie image, and it performed as same as I tried on an Ubuntu machine. I could alse recognize ttyUSB0 ttyUSB1. The Raspberry pi worked as well as Ubuntu.
I flashed the latest firmware on Edison, and related drivers like ftdi,modbus are surely installed.
I didn't use Arduino IDE. I just used the cross compile environment to compile a cpp file on an Ubuntu machine and scp it to Edison. I think it doesn't matter.
May be it is related to the chip CH340g inside the cheap converter. I have bought a new 485-to-USB convert from Sparkfun. When I recieve the new converter, I will try it to confirm wheter the converter caused these matters.
Thank you very much for your timely help!
The kernel needs to have the driver to be able to communicate. And the Edison kernel hardly has any drivers built-in or built as modules. We build our own kernel to include FTDI support.
On Ubuntu almost all drivers are provided as modules and loaded into the kernel when needed (as you should be able to see when doing lsmod with the converter plugged-in.
I think you need to build your own kernel to add this (or probably most other) drivers. I don't think the drivers are available pre-built and installable through a package.
Keep us updated on your progress and if the converter was causing these issues. Take into account @FerryT's suggestion and let us know your results.
I'm so sorry that I forgot to reply you. Sorry...
I'm still waiting for my converter from sparkfun.
I have tried intalling the driver from source code but failed. Maybe it relates to the kernel version. And it takes too much time to build a new kernel, so I didn't try it.
Using the converter from sparkfun could be the easiest and the fastest way.
I will test it and upgrade my result as soon as the package arrivies.
I've bought a new converter with chips ft232rl and max485 in it and it works.
So there is something wrong with the CH340G.
If we want to use CH340G, we must build our own kernel!
I will update the result and process if I have time rebuilding the kernel.