Posts Tagged Silicon Labs
CP2102 on DNS-323
In one of my personal projects, I needed to connect and use a USB to RS232 (Serial) converter on my D-Link DNS-323. Weird requirements, I know. Anyway…
Plenty of these converters exist out there, but I choose to go for a CP2102:
Innocently, I first tried to compile the code source of this module which can be found on the following page:
http://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx
After a few painful and unsuccessful tries, I decided to look around for the already-compiled module.
While wondering why I didn’t think of that before, I used the instructions below to install the required modules on my NAS:
cd /mnt/HD_a2/ffp/lib/ |
mkdir modules |
mkdir modules/2.6.12.6-arm1 |
cd modules/2.6.12.6-arm1 |
wget http://dev.skcserver.de/dns323/modules_v1.03/kernel/drivers/usb/serial/usbserial.ko |
wget http://dev.skcserver.de/dns323/modules_v1.03/kernel/drivers/usb/serial/cp2101.ko |
chmod 755 usbserial.ko |
chmod 755 cp2101.ko |
Once the modules are installed, the next step is to initialize them.
I wrote the following script for this purpose so you can execute it anytime you need it:
1 | #!/bin/sh |
2 |
3 | insmod /ffp/lib/modules/2.6.12.6-arm1/usbserial.ko |
4 | insmod /ffp/lib/modules/2.6.12.6-arm1/cp2101.ko |
5 | mknod /dev/ttyUSB0 c 188 0 |
6 | chmod 0666 /dev/ttyUSB0 |
At this point in time, you should have your module initialized on your D-Link DNS-323.
You can check the kernel ring buffer using the dmesg command to verify it loaded properly.
This is a snapshot of what I have in my kernel ring buffer after I ran the script above:
usbcore: registered new driver usbserial |
drivers/usb/serial/usb-serial.c: USB Serial support registered for Generic |
usbcore: registered new driver usbserial_generic |
drivers/usb/serial/usb-serial.c: USB Serial Driver core v2.0 |
drivers/usb/serial/usb-serial.c: USB Serial support registered for CP2101 |
CP2101 1-1:1.0: CP2101 converter detected |
usb 1-1: reset full speed USB device using ehci_platform and address 5 |
usb 1-1: CP2101 converter now attached to ttyUSB0 |
usbcore: registered new driver CP2101 |
drivers/usb/serial/cp2101.c: Silicon Labs CP2101/CP2102 RS232 serial adaptor driver v0.04 |
Finally, you can test the communication with your USB to RS232 converter by connecting a LED between the RXD and 3V outputs and running the following script:
1 | #!/bin/sh |
2 |
3 | while [ true ] |
4 | do |
5 | echo "hello world!!!" > /dev/ttyUSB0 |
6 | echo "sent" |
7 | sleep 1 |
8 | done |
If you see the LED blinking, it means you succeed!