BeagleBone Black 1000000 Baud, 1 MBaud

Hi,

I’m currently running Debian, uname -r ==> 3.8.13-bone47. I am trying to interface with a PIC that has a 1 M baud rate. OS calls as well as C calls using termios.h both say they support 1000000, but the communication is always garbled. If I stty -F /dev/ttyO0 1000000. then check the Baud rate it responds as set. Setting Baud to 921600 works fine and communication is clear, but would require an external clock on the PIC.

Does BBB hardware support 1 MBaud? Does 3.8.13-bone47 support 1 MBaud? Is there some kernel settings that I have to do to make it work? Is there another kernel that I could flash that would make it work? Ideally I would hope someone has an example C code that brings up a 1 MHz connection that they could share.

Thanks,

j

The beaglebone black should be able to handle serial up to around 3.7Mbit. I do recall someone saying something about potential issues once going over some value above 1Mbit - e.g. it was a long time ago when I read about that . . .

Anyway, read these posts . . . forward to back, or back to forward if you’re impatient.
https://groups.google.com/forum/#!searchin/beagleboard/serial$20peter|sort:date/beagleboard/GC0rKe6rM0g/b1ql-jPBqOkJ

I’m using my BB-W and BB-B with 3.5MBit in order to read data that comes from an FPGA. No basic problems with that since ever, even with old Angstrom 3.2 and Angstrom 3.8.
Just the Debian 3.8 until Debian 3.18 are suffering from the problem described here:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/tty/serial/8250/8250_omap.c?id=61929cf0169d91366fd3f30d6ee60681b037bc19

Means: If you have low amounts of data coming from your PIC, it is not an issue. If these are larger amounts, the Kernel gets stuck.
Just 3.19 fixes this problem and 4.1 as well as 4.2.

Gunter,

We are experiencing this issue with Kernel 4.1. Did you have to do anything special at all?

Jim

I’ve come back to this problem and this is what I’ve seen:

Will do 1 MBaud and 31250, won’t enumerate as a USB drive in Windows, Mac, Linux
BBB-eMMC-flasher-debian-8.1-console-armhf-2015-07-19-2gb.img
bone-debian-7.8-lxde-4gb-armhf-2015-03-01-4gb.img
various 3.14 and 3.8 versions do this, but I didn’t keep the date stamps like I should have
Setting custom Baud by B38400 and then a custom divider works

Will do 31250 and enumerates under Windows, Mac, Linux
WON’T do 1 MBaud
bone-debian-7.9-lxde-4gb-armhf-2015-11-12-4gb.img
Setting custom Baud by BOTHER works

I’m hoping that change that allowed for enumeration happened before the switch that crippled B1000000. Does anyone know an image that consistently enumerates the USB ( and 192.168.7.2 ) as well as provides for custom Baud of 31250 and 1 MBaud?

Thanks,

Jeff