Peter Valencic Posted February 17, 2017 Posted February 17, 2017 Hi, In my project I want to use UART on GPIO pin (8,10). I wrote a simple Java app to decet serial ports on my orange PC but it return only /dev/ttyS0 - Serial Here is simple java code using rxtxlibrary.. package org.mbp; import gnu.io.CommPortIdentifier; /** * * @author Peter */ public class TestCom { /** * @param args the command line arguments */ public static void main(String[] args) { System.out.println("-------------------------------"); System.out.println(System.getProperty("java.version")); System.out.println(System.getProperty("os.name")); java.util.Enumeration<CommPortIdentifier> portEnum = CommPortIdentifier.getPortIdentifiers(); while (portEnum.hasMoreElements()) { CommPortIdentifier portIdentifier = portEnum.nextElement(); System.out.println(portIdentifier.getName() + " - " + getPortTypeName(portIdentifier.getPortType())); } } static String getPortTypeName(int portType) { switch (portType) { case CommPortIdentifier.PORT_I2C: return "I2C"; case CommPortIdentifier.PORT_PARALLEL: return "Parallel"; case CommPortIdentifier.PORT_RAW: return "Raw"; case CommPortIdentifier.PORT_RS485: return "RS485"; case CommPortIdentifier.PORT_SERIAL: return "Serial"; default: return "unknown type"; } } } Whe I run the code on orangepiPC I get only one UART which is /dev/ttyS0 ------------------------------- 1.7.0_121 Linux /dev/ttyS0 - Serial Is there some configuration file to enable / disable UARTS? thank you.
martinayotte Posted February 17, 2017 Posted February 17, 2017 Other UARTs are not enabled by default. For Legacy, you need to edit the FEX. For Mainline, where we have now overlays, you need to add them in the /boot/armbianEnv.txt : overlays=sun8i-h3-uart1 sun8i-h3-uart2 sun8i-h3-uart3
Peter Valencic Posted February 17, 2017 Author Posted February 17, 2017 Ok! will this be fine? will try.. thank you verbosity=7 console=both machid=1029 bootm_boot_mode=sec rootdev=UUID=74434014-190f-406c-9b73-2c99c49383ba rootfstype=ext4 overlays=sun8i-h3-uart1 sun8i-h3-uart2 sun8i-h3-uart3
Peter Valencic Posted February 17, 2017 Author Posted February 17, 2017 Hmm.. tryed but still get only one serial cmd : cd '/home/projekt/NetBeansProjects//TestCom'; '/usr/bin/java' -Dfile.encoding=UTF-8 -jar /home/projekt/NetBeansProjects//TestCom/dist/TestCom.jar ------------------------------- 1.7.0_121 Linux /dev/ttyS0 - Serial
Peter Valencic Posted February 17, 2017 Author Posted February 17, 2017 Have tryed also with python but here I get nothing Have installed Serial lib from https://pypi.python.org/pypi/pyserial
martinayotte Posted February 17, 2017 Posted February 17, 2017 Are you sure you are using latest Mainline ? Please, provide output of "uname -a" and "ls -l /boot/dtb/overlay" and "dmesg | grep serial" and "cat /proc/device-tree/soc/serial@01c28400/status"
Peter Valencic Posted February 17, 2017 Author Posted February 17, 2017 Thank you for your help! here is for: ls -l /boot/dtb/overlay I don't have subdirectory dtb dmesg | grep serial cat /proc/device-..... (I don't have this folder) thank you for your help. I don't have much experience in linux but must do a project for thesis ;(
Peter Valencic Posted February 17, 2017 Author Posted February 17, 2017 Will try to upgrade ... sed -i "s/apt/beta/" /etc/apt/sources.list.d/armbian.list apt-get update apt-get upgrade
Nickb333 Posted February 17, 2017 Posted February 17, 2017 I get the same values: You have 3.4 kernel = LEGACY so you need to edit the FEX. See https://docs.armbian.com/Hardware_Allwinner/#updating-a-fex Once you have a fex file to edit after bin2fex you should refer to http://linux-sunxi.org/Fex_Guide HTH.
martinayotte Posted February 17, 2017 Posted February 17, 2017 Ahhh ! You are not using Mainline kernel ! ... Since you are using Legacy kernel, it doesn't use DeviceTree, so no overlays too. You need to tweak FEX file, in other word script.bin, you need to decompile it, tweak it, and recompile it. Check this guide : http://linux-sunxi.org/Fex_Guide#.5Buart_para.5D
Ford Prefect Posted February 18, 2017 Posted February 18, 2017 Other UARTs are not enabled by default. For Legacy, you need to edit the FEX. For Mainline, where we have now overlays, you need to add them in the /boot/armbianEnv.txt : Hi Does this means that it could be possible to change the use of the GPIO pins "on the fly" I mean without rebooting.
Blars Posted February 18, 2017 Posted February 18, 2017 Hi Does this means that it could be possible to change the use of the GPIO pins "on the fly" I mean without rebooting. Sure. Just write a driver module that manipulates the proper bits in the setup registers, read the data sheet for your CPU and the kernel source code. The "confidential" H3 data sheet is on the sunxi web site. Apparently the H2 used on the opi zero is very close, but I have not found it's data sheet. This is not something I would recommend for beginner programmers.
Recommended Posts