Version 1.3.2 of the V6M6 host library contains some significant changes
for the interface to the TDM Subsystem, the IMSCSA module and
building TDM Maps for the IMHDLC Module.
Some situations may require the TDM controller on the V6M6 baseboard to
generate superframe pulses but not frame pulses. One example is when
an IMSCSA module is being used. The IMSCSA module must be the source of
TDM frame pulses but is not capable of generating superframe pulses.
To allow the hardware to do this, the TDM FPGA configuration requires the
modification available in the flash object file, progtdm19.mcs.
The TDM controller needs to know both the number of frames per superframe
and the number of slots per frame, but be told not to generate frame pulses.
The library function, pci_tdm_init, was modified to provide a way
to specify these parameters. The function still takes the same five
arguments.
Note that the spf (slots-per-frame) argument may now be passed as a
negative value to specify that no frame pulses should be generated.
A new function, pci_tdm_timing, was added to the library.
This function provides the functionality of pci_tdm_init
plus the ability to specify the source of TDM clock.
The following macros, defined in <pciutil.h>, may be used for the
clksrc argument:
TDM Subsystem Control Changes in Version 1.3.2
int
pci_tdm_init (tdm, clk, bps, spf, fps)
PCI_TDM *tdm - pointer from pci_tdmopen.
int clk - clock freq in MHz: 0, 1, 2, 4, 8, or 16
int bps - bits per time slot: 8, 16, or 32
int spf - slots per frame: 0 or 1 to 128, or -1 to -128
int fps - frames per super frame: 0 or 2 to 31
int
pci_tdm_timing (tdm, clksrc, clk, bps, spf, fps)
PCI_TDM *tdm - pointer from pci_tdmopen.
int clksrc - TDM clock source: see below
int clkfrq - clock freq in MHz: 1, 2, 4, 8, or 16
int bps - bits per time slot: 8, 16, or 32
int spf - slots per frame: 0 or 1 to 128, or -1 to -128
int fps - frames per super frame: 0 or 2 to 31
The clkfrq, bps, spf and fps
arguments are used in the same way as for pci_tdm_init.
The function returns 1 for successful TDM setup or 0 in case of an error.
TDM_BASECLK - clocks generated from the TDM controller
TDM_EXPCLK - clocks from the front panel TDM expansion,
which is set to SLAVE mode.
TDM_MODCLK(mod) - clocks generated from module mod
where mod is a number from 0 to 5.
When TDM_MODCLK is used, it's value may be offset by a unit number
to specify, for example, which of the two T1 lines on an IM2T1 module
should be used to source the clock.