MPU for ethernet <====> 8 uart channels  - Page 1
Forum section: electronics / general

author: legacy
author_rank: Super Contributor
timestamp: October 08, 2019, 10:20:44 pm
content: I need to read/write up from/to eight uart channels @ 115200 bps constantly and the only resource I can export from the router is a (thank god there is not used fourth Lan) ethernet 10/100. There is nothing else.So I need to develop/find something. Any suggestion? What would you use?

author: PCB.Wiz
author_rank: Super Contributor
timestamp: October 08, 2019, 10:38:19 pm
content: Possibly Nuvoton M487 series ? - shows Ethernet and 6 LPUARTS and 2 USCI, in the summaries, so you could see if the pin map allows 8 UARTs ?Maybe more choice, I seeCommunication Interface- Up to 6 low power UART interfaces (17 Mbps), including 2 LIN interfaces- Up to 3 ISO-7816 interfaces (3.4 MHz), supporting full duplex UART mode- Two USCI interfaces, supporting configurable UART/ SPI/ I²Cand an Eval boardhttps://direct.nuvoton.com/en/numaker-pfm-m487

author: langwadt
author_rank: Super Contributor
timestamp: October 08, 2019, 10:53:02 pm
content: I believe there is an stm32f7 with 8 uarts and ethernet

author: SiliconWizard
author_rank: Super Contributor
timestamp: October 08, 2019, 10:59:12 pm
content: https://www.perle.com/products/iolan-sts-d-terminal-server.shtml

author: Gribo
author_rank: Frequent Contributor
timestamp: October 08, 2019, 11:25:58 pm
content: If you want a ready made terminal server, there are few out there, Digilent and Lantronix come to mind.If you want to develop, There are the MSP432E401 and 411 from TI - Built in PHY makes the board a breeze to design.

author: NiHaoMike
author_rank: Super Contributor
timestamp: October 08, 2019, 11:56:21 pm
content: If low volume, Raspberry Pi or similar SBC plus some USB to serial converters.

author: ebclr
author_rank: Super Contributor
timestamp: October 09, 2019, 12:21:53 am
content: If you want to solve a single user problem, Don't reinvent the wheel just buy ithttp://www.icpdas.com/products/PAC/i-7188_7186/i-7188e8.htmIf you want to reinvent the wheel, this will helphttp://wch.cn/products/CH438.html

author: Morgan127
author_rank: Contributor
timestamp: October 09, 2019, 05:55:51 pm
content: I think the easiest you could to to solve this is to useInstant-SoCon a FPGA. Instant-SoC is as easy as programming any MCU.You simply define eight UARTs as C++ objects and then use them. The tool creates the VHDL code (a RISC-V core, memories, and peripherals).Define one in and one out stream and connect them to anEthernet Core with TCP.I can recommend to use the Arty A7 board from Digilent.

author: MT
author_rank: Super Contributor
timestamp: October 09, 2019, 07:51:39 pm
content: Quote from: legacy on October 08, 2019, 10:20:44 pmSTM32H750VBT have 9UART's and ETH.

author: Jeroen3
author_rank: Super Contributor
timestamp: October 09, 2019, 08:07:01 pm
content: This is a trivial problem we solved decades ago.EKI-1528-CEhttps://www.advantech.com/products/gf-5tqv/eki-1528/mod_18430b74-ccab-4ce9-b3bf-fa1a92ae3215

author: lty1993
author_rank: Unknown
timestamp: October 10, 2019, 08:41:20 am
content: IMXRT1020 should be a good choice for this task.

author: westfw
author_rank: Super Contributor
timestamp: October 10, 2019, 10:44:45 am
content: The TI Tiva "connected" launchpad has an ethernet and 8 uarts (and is very cheap.)http://www.ti.com/tool/EK-TM4C1294XLIbought one a while ago with this sort of thing in mind, and then I decided that I really didn't want to do that any more. :-(I didn't get as far as making sure that you can use all 8 uarts and the ethernet at the same time :-(Note that what you're trying to do is relatively difficult, especially if you don't have any underlying packet structure. (well, less difficult if you have continuous data and don't care as much about latency as dialup gamer.) You want a zero-copy DMA for performance, but DMA is pretty ill-matched when it comes to async reception. When we did it back in the 68EC030 days (cisco-2500), we used Very Smart UARTs (Cirrus 24xx), and I don't think they exist any more. Later platforms used FPGAs for UARTs (and/or went direct from modem to memory), but I lost track of whether the FPGA designers did a good job, or whether we just threw more CPU at the problem.I'm not sure how a modern CPU, at ~5x the clock rate, will do with more conventional UARTs.I'm not sure how good a job modern "async servers" do. In the old days, "statistically necessary" performance for "terminal users" was far lower than theoretical max throughput, and then PPP/ARAP/XRemote/etc showed up with 115kbps external modems and the "good" vendors got serious about performance. But shortly thereafter, "internal modems" were the big deal (telco T1 to 24 user ports, or T3 to 672 ports) and async was neglected. I'd be worried that "modern" async server vendors have been "slacking." :-( (to be fair, I think the modern servers are also a fraction of the price of the old generation.)

author: PCB.Wiz
author_rank: Super Contributor
timestamp: October 10, 2019, 09:16:34 pm
content: Quote from: westfw on October 10, 2019, 10:44:45 amThat may come down to their FIFO size, and if the OP uses Hardware Handshake.You can still buy external UARTS, even up to octal models, but they are now niche products, with fairly high prices.Quote from: westfw on October 10, 2019, 10:44:45 amYes. The baud rate is not a deal breaker, but running 8 duplex buffers, and re-packeting for Ethernet, is going to need some care in selecting buffer sizes, & SW, and it not looking easy to test if there is no hardware handshake.The OP may have known/defined coms channels this needs to manage, and other combinations can be skipped in testing.

author: nctnico
author_rank: Super Contributor
timestamp: October 10, 2019, 09:48:05 pm
content: Quote from: PCB.Wiz on October 10, 2019, 09:16:34 pmBack in the old days memory was expensive. Nowadays a small Linux system can easely buffer several megabytes per port and keep up with 8 UARTs. With todays hardware handling and transferring data from a relatively small amount of UARTs is a piece of cake. Ofcourse you'll need to read the buffers faster than they fill but there hardly isn't a realtime constraint.

author: westfw
author_rank: Super Contributor
timestamp: October 11, 2019, 12:05:35 am
content: QuoteMemory is not the problem. 1MB at 115.2kbps is over 80s of buffering, BTW. Which would be unacceptable for most cases.A linux system with 8port of serial card might be a pretty good solution, though.I'd be extremely curious as how well linux + 8x cheap USB/Serial modules would work. (and there are some USB/quad-uart chips like the CP2108 andFT4232H. Though I'm pretty sure that they're not the "sweet point", price wise.)

author: PCB.Wiz
author_rank: Super Contributor
timestamp: October 11, 2019, 01:13:12 am
content: Quote from: westfw on October 11, 2019, 12:05:35 amOne benefit of FT4232 is less messing about with low-level drivers, and I see DK & Mouser have a USB-COM232-PLUS4 well stocked. thatincludesRS232 buffers and 4 DB9 connectors,- just 2 would be needed for 8 UARTS.The OP has not said now any of these they need ? If it is just 1, even the boxed solution someone linked above would be valid.

author: legacy
author_rank: Super Contributor
timestamp: October 11, 2019, 12:03:03 pm
content: Quote from: nctnico on October 10, 2019, 09:48:05 pmIn the far 1992, I bought a quad uart module for a BBS server (before the internet, there was BBS). It was an ISA 16bit bit card with four advanced UART chip able to handle up to 128Kbyte of buffer each.It has 4x128Kbyte for buffering, implemented with fast-static ram, it also has switches to manually assign the address and interrupt, so you don't have to fight with obscure firmware (like PCIbios-shit?) to dynamically "plug and pray" anything. I really loved it, but it cost something like 250 euro, converting "lira" into "euro".Quote from: nctnico on October 10, 2019, 09:48:05 pmCurrently, I have fixed(1) a couple of Quad 16950 UART miniPCI modules made by Oxford Semiconductor. Two modules give me 8 UART ports, and I can allocate 4Mbyte of ram as a buffer. This works great even on an old MIPS32 router made in 2005 (which is, anyway, what my customer actually uses at the moment), but it's not the kind of stuff I would replace with modern "low cost" USB-quad-uart because everything I have tried has sucked great.(1) they are "PCI_IO_legacy(2)", it means you cannot reprogram the PCI-BAR because the base_size always return 0x00, and this means the device only consumes fixed resources at fixed addresses.It's not a problem when you install one quad-UART module, but when you install two quad-UART modules their address have a conflict. Anyway, I workaround-ed this problem in hardware by adding an offset to the address line. It's ugly to see, but it works.(2) currently deprecated in modern Linux kernel >= v5.*

author: legacy
author_rank: Super Contributor
timestamp: October 11, 2019, 12:09:57 pm
content: Quote from: PCB.Wiz on October 11, 2019, 01:13:12 amThe purpose of this topic is evaluating different modern solutions, since (and as my nickname indicates) I am really tempted to recycle an old 332 chip, and force its TPU engine (it's a built-in co-processor) to provide 8 UART channels. This would be technically good, and I already have written the software, but ... the 332 chip is deprecated since 2007.It's time to update

author: legacy
author_rank: Super Contributor
timestamp: October 11, 2019, 12:15:50 pm
content: Quote from: PCB.Wiz on October 11, 2019, 01:13:12 amNever tried these, so I have ordered a couple of samples.The price is not a constraint

author: Gribo
author_rank: Frequent Contributor
timestamp: October 11, 2019, 10:36:18 pm
content: NXP Still makes the 68332. I have a customer that is very fond of it and uses it in several designs.