Hi,
I am writing a driver for an Industry Pack that has two 85230 Zilog ESCC's
on it running on a carrier card.
I have written basic I/O code in C that allows me to talk back and forth at
the desired rates SDLC 1.2288Mbps and UART rates up to around 300k, but it
is time to wrap it into a real QNX device driver now.
Currently all code is in one file / thread with an interrupt handler and a
signal handler.
Interrupt - polls chips until all channels are happy, acks interrupts and
goes to sleep.
Signal- kicked each ms to check for a gap in a stream of > 3 char times a
current baud rate. This is how I detect end of message, because I can't read
the register that contains that flag. The extra access time is too much for
my schedule at 1.2288 Mbps.
Main thread - that stuffs fifos for channels to test transmittion , and
prestuffs 4 bytes into the chips' tx fifo's to kick start the transmission.
I have been reading through the section in the help on writing a resource
manager and put together some of the example code and thought I almost had
what I needed. Then I found the section on IO-CHAR. Apparently this does all
the stuff I was doing manually. What I could not find was documentation on
the function calls that IO-CHAR uses.
I have looked at the 8250's manager and see it calling tti() tto() ttc(),
but where can I find information on how these functions work?
Also I read there is a way to pend on a special character to mark start/end
of a message. This is prefect for SDLC mode, but I would need to return a
character that is outside the range of 0-255 since SDLC sync flags 0x7E are
stripped from the data stream, and data can actually have that value without
being a flag (strings of > 5 1's in a row get bit stuffed with a 0 on TX
side and the extra 0's are removed on the RX side in hardware before it goes
to the RX fifo).
I found some sorce code for ttc and tti, but could not find tto, or a good
explanation of how all the little pieces work together. I was pi$$ed at
myself when I realized that ttc was doing all the stuff I had been working
so hard to figure out how to do on my own.
Also, is there an option to STTY to do things like specify protocol
(SDLC/UART/BySync/MonoSync/etc..) or bit encoding (NRZ/FM1/FM0/Manchester,
etc..). I would prefer to have the capability to do that sort of setup
through the standard STTY when done, not having to write a specialized
client side application to set this up with a device control statement if
possible. That is where I was headed based on the general notes on writing a
resource manager.
Thanks,
Jeddy
Building a SDLC 1.2288 Mbps driver for Zilog ESCC 85230 chip
bridged with qdn.public.ddk.input
Building a SDLC 1.2288 Mbps driver for Zilog ESCC 85230 chip
Post by john eddy » Sat Jun 29, 2002 4:00 pm
Post Reply
1 post
• Page 1 of 1
Return to “qdn.public.ddk.input”
Jump to
- New qnx.* Newsgroup
- ↳ qnx.newuser
- ↳ qnx.rtos
- ↳ qnx.gui
- ↳ qnx.development_tools
- ↳ qnx.ddk
- ↳ qnx.porting
- ↳ qnx.bsp
- ↳ qnx.qnx4
- ↳ qnx.3rdparty_product_announcements
- ↳ qnx.cafe
- ↳ qnx.public.sysadmin
- ↳ qnx.evaluation
- QDN Newsgroups
- ↳ qdn.cafe
- ↳ qdn.public.qnx2
- ↳ qdn.public.qnx4
- ↳ qdn.public.neutrino
- ↳ qdn.public.photon
- ↳ qdn.public.porting
- ↳ qdn.public.news
- ↳ qdn.public.qnxjobs
- ↳ qdn.public.qnxrtp.newuser
- ↳ qdn.public.qnxrtp.installation
- ↳ qdn.public.qnxrtp.os
- ↳ qdn.public.qnxrtp.photon
- ↳ qdn.public.qnxrtp.devtools
- ↳ qdn.public.qnxrtp.applications
- ↳ qdn.public.qnxrtp.advocacy
- ↳ qdn.public.qnx4.photon
- ↳ qdn.public.qnx4.devtools
- ↳ qdn.public.articles
- ↳ qdn.public.ddk.graphics
- ↳ qdn.public.ddk.network
- ↳ qdn.public.ddk.audio
- ↳ qdn.public.ddk.input
- ↳ qdn.public.ddk.usb
- ↳ qdn.public.ddk.printer
- ↳ qdn.public.qnxrtp.porting
- ↳ qdn.public.qnxrtp.games
- ↳ qdn.public.qnxrtp.embedded
- ↳ qdn.public.qnxrtp.mips
- ↳ qdn.public.qnxrtp.powerpc
- ↳ qdn.public.qnxrtp.strongarm
- ↳ qdn.public.qnxrtp.x86
- ↳ qdn.public.sysadmin
- ↳ qdn.public.qnxrtp.xscale
- ↳ qdn.public.qnxrtp.sh4
- ↳ qdn.public.newuser
- ↳ qdn.public.installation
- ↳ qdn.public.devtools
- ↳ qdn.public.ddk
- ↳ qdn.public.bsp
- Other QNX Newsgroups
- ↳ comp.os.qnx
- ↳ openqnx.developer