comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Interfacing Ada With Full Runtime Directly to Electronic Chips
Date: Mon, 2 Jan 2017 10:14:37 +0100
Date: 2017-01-02T10:14:37+01:00	[thread overview]
Message-ID: <o4d5lu$12i7$1@gioia.aioe.org> (raw)
In-Reply-To: 9ca07b79-db85-4d4a-b082-61cd75fcc1c8@googlegroups.com

On 2017-01-02 03:42, patrick@spellingbeewinnars.org wrote:

> If I want to connect any sort of computer running Linux directly to
> a  circuit using "full Ada" with tasking support what are my options?
> By circuit, I mean a variety of electronic components and in this
> case  with no microcontroller, an A/D chip is a simple example.

I don't understand what you mean. Modern peripherals do not use 
dual-ported RAM, the only way you could have it connected without some 
sort of microcontroller.

> I am thinking that single board computers like BeagleBone are my
> best  bet, they have plenty of GPIO lines.
>
> Has anyone interfaced directly with chips via SPI or IC2 via a GPIO
> PCI card or GPIO-USB adapter ?

We access GPIO digital and analogue converters using Linux driver. 
Ada.Text_IO is basically all what is needed. Well, that's Linux. AFAIK, 
no decent Linux driver (with interrupts, IOCTL, asynchronous I/O) is 
available. But BB's AD/DA is garbage anyway. You could not use it 
without additional hardware which would in the end turn more expensive 
than other options.

> Is there any other options?

For quality I/O we are using EtherCAT and ModBus I/O terminals.

EtherCAT is very fast but extremely complicated. Don't believe people 
saying they have full EtherCAT stack implementations. That would be no 
more than a third of what is really needed to talk to complex terminals. 
I have implemented EtherCAT master myself.

ModBus is simple, the stack is free. Terminals are a bit sluggish. With 
the internal cycle of 3ms you cannot poll them faster than at 5ms. And 
if you have many of them it promptly becomes hundreds of milliseconds.

For both you will need tasking, of course.

There is 1-wire and OWFS. I didn't evaluate this option in depth but 
from the S/W design point of view it looks no better than GPIO text I/O. 
And it is not much cheaper than I/O terminals.

I would never use a USB adapter because of the nature of USB communication.

PCI card is out question for a BB.

Happy New Year!

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

  reply	other threads:[~2017-01-02  9:14 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-02  2:42 Interfacing Ada With Full Runtime Directly to Electronic Chips patrick
2017-01-02  9:14 ` Dmitry A. Kazakov [this message]
2017-01-02 13:28   ` patrick
2017-01-02 17:19     ` Dmitry A. Kazakov
2017-01-03  2:41       ` patrick
2017-01-03  5:33     ` Shark8
2017-01-03 10:34       ` Dmitry A. Kazakov
2017-01-03 18:02         ` Shark8
2017-01-03 20:34           ` Dmitry A. Kazakov
2017-01-03 20:50             ` Shark8
2017-01-03 21:41               ` Dmitry A. Kazakov
2017-01-02 14:02 ` Brian Drummond
2017-01-02 15:02 ` Dennis Lee Bieber
2017-01-02 16:25 ` Simon Wright
2017-01-02 16:46   ` patrick
2017-01-04 19:29   ` antispam
2017-01-04 20:51     ` Simon Wright
2017-01-04 22:05       ` antispam
2017-01-03  7:55 ` philip.munts
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox