__________________________________________________ ADAM MCII-e Peripheral Controller - version 1.26.0 __________________________________________________ Code image CRC Standard: 14ba Japanese: Not yet released Files: PeriphII-e.hex - Motorola S-record file for downloading to the MCII-e board flash via an AZedit connection to the MCII-e board. The MCII-e board must already be running a version of either the single frame MCII-e Master Controller or the multi-frame MCII-e Peripheral Controller firmware. PeriphII-e.srec - Motorola S-record file for downloading to MCII-e RAM using the Altera GERMs monitor and the Alters "nios-run" utility. (used for installing on a new MCII-e card without any existing firmware). _____________ Compatibility _____________ This firmware is intended for MCII-e System Controller boards that will be used in multi-frame ADAM systems with one or more dual bus expander cards in each frame to connect the frames to each other. It provides similar functionality to the original ADAM Peripheral Controller, but in addition, it supports AZedit connections over a network (UDP via Ethernet). If the MCII-e Peripheral Controller card is used with a second redundant controller in the same frame, then the second controller card must also be an MCII-e Peripheral Controller running a compatible version of the firmware. This firmware is compatible with: - AIO-8 version 10.3.0 or later - AIO-16 version 1.0.0 or later - RVON version 1.2.0 or later - PeriphII-e version 1.26.x - DBX version 1.26.x - AZedit version 4.2.0 or later required for full support of all features - GPIO-16 any version Support for keypanel colors requires the following minimum versions: - AIO-8 version 10.3.6 - AIO-16 version 1.1.4 - RVON-8 version 2.1.7 - RVON-16 version 2.1.6 Support for a separate call-waiting window key on the KP 32 CLD requires the following minimum versions: - KP 32 CLD version 1.2.0 - AIO-8 version 10.4.0 - AIO-16 version 1.2.0 - RVON-8 version 2.2.0 - RVON-16 version 2.2.0 Support for 2 Trunk Masters, and for IFB tallies across trunking, requires the following minimum versions: - TM-2000 version 9.0.0 Support IFB-SL tallies across trunking, requires the following minimum versions: - TM-2000 version 9.1.0 NOTE: DBX boot downloader version 0.0.1 is NOT compatible with the PeriphII-e card. The boot downloader is used when a DBX firmware download fails, or when downloading new DBX firmware that is incompatible with the PeriphII-e firmware. The DBX boot downloader must be v0.0.2 or later in order to communicate with the PeriphII-e. _____________________ Network Configuration _____________________ To configure a working Network connection for AZedit: 1. The MCII-e card must be programmed with a valid unique hardware Ethernet address. This is handled by the MCII-e board test software. The Ethernet address will be displayed on the debug serial port (via J100) at startup. If no address has been configured, the message "ERROR: Ethernet MAC address not configured!" will be displayed. 2. The MCII-e card must be programmed with valid IP Network settings matching the network it will be connected to. These consist of an IP address, IP subnet mask, and an optional IP gateway address (which may be left as 0.0.0.0 if there is no gateway). These are configured using AZedit's "Options|Ethernet Setup ..." menu command. In order change the network settings you must have a connection to AZedit via the J1 serial port (other AZedit connections only allow viewing the current settings). The current IP network settings are displayed via the debug serial port (J100) at startup. If no IP address has be configured, the message "No IP address configured. Network Interface Disabled" is displayed instead. Note: The Master Controller and Peripheral Controller firmware for the MCII-e System Controller board both use the same area of flash memory to store network settings. Thus, the network settings are retained if an MCII-e board is converted from running single frame Master Controller firmware to Peripheral Controller firmware (or vice versa). 3. The card must be configured as the master frame (DIP switch 7 closed), since slave frames don't support AZedit connections. NOTE: This version of PeriphII-e firmware does not allow AZedit to establish an AZedit session via UDP to the card acting as the standby card. It should be used with AZedit version 2.08.01 or later, which will automatically switch its UDP network connection to whichever controller is active. Earlier versions of AZedit can establish a network connection with the controller, but the connection will be lost if the other peripheral controller card becomes the active controller. ___________________ DIP Switch Settings ___________________ Position Description -------- ----------- 1 Must be open (closed => boot to GERMS monitor) 2 AZedit (J1) baud rate: open=9600, closed=38400 3 Should be open (reserved) 4 Should be open (reserved) 5 Must be open (closed => run diagnostics) 6 Must be open (closed => don't reprogram flash after download) 7 Closed for master frame (frame 1), open for slave frame (>1) 8 Must be open (closed => run diagnostics) ____________ Installation ____________ If the PeriphII-e board is already running PeriphII-e firmware, the "PeriphII-e.hex" file can be downloaded to the card via AZedit. Otherwise, the Nios_Loader utility can be used to download a new image and copy it to flash. ______________ Change History ______________ New in version 1.26.0 --------------------- * Added IFB-SL tallies IFB Special Lists now tally, similarly to IFB tallies. A key with an IFB-SL assignment displays an in-use tally whenever anyone is talking to that IFB-SL, or whenever anyone is interrupting any of the IFBs which are a member of the IFB-SL. A key with an IFB-SL assignment displays a busy tally if the key is on, and either (a) the panel has an IFB priority of 0, which means the panel is not allowed to interrupt IFBs, or (b) another panel, with a higher IFB priority, is talking to the IFB-SL, or (c) another panel, with a higher IFB priority, is interrupting any of the IFBs which are a member of the IFB-SL. * IFB-SL tallies are available across trunking IFB-SL tallies across trunking are handled like IFB tallies across trunking (see the description for this in the list of changes for version 1.25.0). Each IFB-SL has a remote tally enable flag associated with it; this flag must be checked in order for other intercoms to generate in-use and busy tallies for an IFB-SL. * Added support for adjusting IFB listen source levels From a keypanel, it is now possible to adjust the listen volume for an IFB with an AT assignment. This adjusts the volume of the crosspoint from the IFB's listen source to the keypanel's listen destination. * Command-Line Protocol enhancements Command Line Protocol supports the following additional commands: - Query and set 6- and 8-character alphas and aliases - Query and set 8-Unicode alphas and aliases (if enabled in the intercom) - Query and set input alphas (all sizes) (if enabled in the intercom) - Query which ports have communicating keypanels (available as a normal status query and as a stored query) - Query and set the date and time - Support setup pages 10 and higher The CLP documentation has been revised to include descriptions of these revisions. If CLP was used to change the alpha for a key assignment, and that assignment existed on 1 or more keypanels, it was possible for the old alpha to be resent to some of the keypanels, rather than sending the new alpha. Fixed. * Added new UPL condition: Is there a keypanel present on port X? * Fixed handling of allocated trunks on a DBX transfer of control On a transfer of control in the DBX, audio for an allocated trunk was maintained; however, changes in audio (e.g. turning a talk key on or off, for a request allocated to that trunk) might not work until the trunk allocation changed. Fixed. (This problem only exists in PeriphII-e firmware v1.25.0.) New in version 1.25.0 --------------------- * Added support for Unicode alphas Unicode alphas were previously only available in Japanese builds. Now, Unicode alphas can be enabled as part of the intercom configuration using AZedit V4.0.0 or later. Using Unicode alphas allows alphas to contain characters beyond the basic ASCII, including Cyrillic, Greek, and Latin (most European accented letters). These character sets are supported on keypanels such as the KP 32 CLD, KP 12 CLD, KP812-U, and KP-12/4U (Cyrillic). Using Unicode alphas requires compatible AIO card firmware: AIO-8 V10.5.0 and AIO-16 V1.3.0. RVON-8 / RVON-16 firmware already support Unicode alphas. * Added support for IFB tallies across trunking IFB interrupt status (and current interrupt priority) is now forwarded through the Trunk Master to all intercoms. This allows keypanels in intercom X to display the correct IFB status for IFBs in intercom Y (i.e. an in-use tally for an IFB which is being interrupted). To prevent a flood of IFB tally information from being generated, this feature is disabled by default. IFB tallies across trunking must be enabled individually for each IFB, via a new checkbox ("Remote Tallies") in the IFB edit dialog. In order for a keypanel in intercom X to display IFB interrupt status for IFB Z in intercom Y, the following conditions must all be met: - frames X and Y must both support IFB tallies across trunking - the TM-2000 must support IFB tallies across trunking - the "Remote Tallies" box for IFB Z must be checked * Added support for 2 Trunk Masters The intercom can now be connected simultaneously to two independent Trunk Masters (where each independent Trunk Master can be a single stand-alone TM-2000, or an active/standby pair). This is configured via the Options | TM Communications menu item in AZedit. The two Trunk Masters operate independently. The intercom combines the data from both Trunk Masters, e.g. when selecting a remote key assignment, the key assignment grid shows a list of matrix names which combines the matrix names defined by each of the Trunk Masters. An intercom is told its own name by the Trunk Master. If the two Trunk Masters give the intercom different names, the intercom uses the name given it by Trunk Master #1 (as defined in the TM Communications dialog). Each intercom supports up to 31 remote intercoms. If the total number of intercoms defined by the two Trunk Masters exceeds this, one or more remote intercoms will be inaccessible. In this case, TrunkEdit will report the conflict when it detects this condition (and will warn the user if an attempt is made to define too many intercom names). Both AZedit and TrunkEdit will warn the user if both Trunk Masters attempt to define the same intercom port as a trunk port. In this case, each Trunk Master will force the conflicting trunk into maintenance mode. Red LED #18 is lit when the PeriphII-e is communicating with the first Trunk Master (no change). Red LED #17 is lit when the PeriphII-e is communicating with the second Trunk Master. * Fixed handling of Command-Line Protocol requests to change key assignments In v1.24.0, if CLP was used to change a key assignment for a panel which is communicating with the intercom, the key might not be reprogrammed properly. Fixed. New in version 1.24.0 --------------------- * Added support for a separate CWW key for the KP 32 CLD The KP 32 CLD supports up to 64 talk and 64 listen keys, plus a separate call-waiting window key. In earlier versions, key 16 was the CWW key, and these two keys operated in parallel. Starting with KP 32 CLD v1.2.0, the intercom now supports a separate CWW key, and key 16 is now a regular talk/listen key. Note that the I/O card firmware (and any RVON firmware, if applicable) must be updated to a version that supports a separate CWW key. If any one of the devices (intercom controller, I/O card, or keypanel) does not support a separate CWW key, the system will operate normally, but the KP 32 CLD will operate without a separate CWW key (i.e. key 16 will be the CWW key). * Added full support for MADI-16+ cards Support for 16-channel MADI-16+ cards was added in v1.23.0. This version of firmware adds support for MADI-16+ cards with up to 64 channels of audio. * Added Port Allocation Table The Port Allocation Table controls which ports are allocated to which I/O cards. This is necessary when using MADI-16+ cards with more than 16 channels of audio. * Fixed problem with panel displaying old key label If a keypanel has key labels associated with 1 or more of its keys, and the setup page mapping for the panel is changed via AZedit, the keypanel could end up displaying the wrong label for a key. Fixed. New in version 1.23.0 --------------------- * Support for TM-2000 communications via Ethernet The intercom now supports communications with the TM-2000 via either serial or Ethernet. This can be configured from AZedit via Options | TM Communications. If serial communications is selected, the baud rate can be set from this dialog, rather than needing to reconfigure the intercom. If Ethernet communications is selected, you must specify the IP address of the TM-2000 (and also the IP address of the backup TM, if there is one). A new AZedit screen, Ethernet Link Status, shows the status of the active ontroller's Ethernet links to the (active and standby) TM-2000's. * Support for MADI cards A new screen allows MADI cards to be configured. This screen has 3 tabs. One tab allows card attributes to be configured (pass-through data, reference clock, sampling rate, etc. Another tab controls the mapping between intercom channels and MADI channels. The third tab displays the status of the various MADI cards in the system. New in version 1.22.0 --------------------- Version 1.22.0 has some features eliminated in order to reduce the memory requirements in the DBX card. New in version 1.21.0 --------------------- * Added support for keypanel colors The intercom now supports configuring colors used on the KP 32 CLD family of keypanels. The following can be configured: - default key assignment colors (per function type) - remote key assignment colors (per remote matrix + function type) - local key assignment colors (per local assignment) - colors for talk and listen indicators * Remote alphas are now transferred to the standby controller On a transfer of control, the now-active controller should have an up-to-date copy of the remote alphas, so that there is no need to wait for them to be downloaded from the Trunk Master. * Fixed active/standby problems On start-up, it was possible to get into a state in which the active controller never sent any data to the standby controller. Fixed. New in version 1.20.0 --------------------- * Support for more resources across trunking Remote scroll lists of up to 1000 items are now supported. * Support for more total resources In previous versions, an intercom was limited to approximately 2040 total local scrollable resources (key assignments). This has been increased; now, the total number of resources is only limited by the available memory, although each scroll list (PL, IFB, etc.) is limited to a maximum of 1000 items. * Support for Arbitrary Crosspoints An optional crosspoint (input port and output port) can be associated with each UPL Resource. If a crosspoint is defined, then that crosspoint is closed whenever any panel is talking or listening to that UR assignment. There is also a Reciprocal flag. If this flag is checked, then the reciprocal crosspoint (from the output port to the input port) is also closed. If a user at a keypanel tries to adjust the volume of a UPL Resource, it adjusts the volume of the crosspoint (if it is defined). The volume of the reciprocal crosspoint is not affected. * Support for Centralized Auto-Dials The intercom supports up to 999 centralized auto-dials. Associated with each auto-dial is an alpha, a scroll restrict flag, and a telephone number. Auto-dial number NNN can be accessed by dialing the sequence #NNN (Dial "##" to generate a single "#" DTMF tone.) Centralized auto-dial numbers can also be accessed via the TIF dial menus in the KP32 and the KP32CLD, for keys which have an assignment for which the "Port is a TIF" flag is set. This requires the following minimum versions: - KP32 v2.1.1 - KP32CLD v1.0.4 * Support for Enhanced Assignment Groups Associated with each Assignment Group is a new checkbox, "Members Only". If this box is checked, then only keypanels that are members of the assignment group can access the assignment group. If the box is not checked, any keypanel can access the assignment group. New in version 1.19.3 --------------------- * Prevent transfer of control during Trunk Inspect The active Peripheral Controller could sometimes spontaneously reset if AZedit was being used to inspect Trunk Port status. New in version 1.19.2 --------------------- * Can hang up TIF-951 across trunking A keypanel connected to one intercom is able to dial a TIF across trunking; however, it was not able to hang up a TIF-951. Fixed. (The problem is associated with the intercom to which the TIF-951 is connected.) * If a keypanel requests a list of hidden assignments, if there was an assignment "hidden" by the call-waiting window, it was not being sent to the panel properly. Fixed. New in version 1.19.1 --------------------- * Slave frame controller could reset In a system with 1 DBX per frame, an MCII-e Peripheral Controller plugged into a slave frame would reset whenever a card was present in slot 8 of the same frame. Fixed. * Improved active/standby private bus communications New in version 1.19.0 --------------------- * Listen panels can display IFB program sources If a key has the following assignments: Talk level 1: an IFB Talk level 2: any assignment with the alpha "@PGM" Listen: an auto-X function (e.g. auto-follow, auto-table) then the panel will display the alpha for the IFB's program source, rather than the alpha for the IFB. * Standard PAPs didn't work properly in slave frames A standard PAPs (PAP-940, PAP-951, or PAP-952) would sometimes not show the correct program input for an IFB, if the PAP was connected to a slave frame. Fixed. * Key labels display properly on PAM-32, LKP-957 panels In previous versions, a key label might not be displayed properly on a PAM-32 or LKP-957 panel. Fixed. New in version 1.18.0 --------------------- * Added support for GPIO-16 communications via Ethernet * Log destination (AZedit session) can now be configured Under the Logging menu, a new option "Configure Logging..." allows the user to specify which AZedit session receives log messages when logging to file is enabled. The only AZedit sessions which are allowed to configure the log destination are the AZedit session which is currently configured as the target for log messages, and the main serial AZedit session (connected to J1 of the ADAM MC break-out panel). * Fixed loss of wait-for-talk information In a trunking environment, if the wait-for-talk option is selected in the Trunk Master, turning on a listen key to listen to a remote port or party line causes the listener to hear the remote function if it is active (e.g. it is a 4-wire port, or a keypanel with at least 1 talk key turned on, or a party line with at least one talker). The Trunk Master tells the remote intercom to monitor that function, so that the TM knows when the listen should be activated. In a DBX system with 2 or more DBX cards per frame, if a transfer of control occurred from the active DBX to the standby DBX in frame 1, the new DBX might lose information on what functions should be monitored because of wait-for-talk. In this case, someone in a remote intercom, listening to a keypanel in the DBX system, might not hear the keypanel, even if it has talk keys latched on. This version fixes this problem. In previous versions, trunking data would need to be disconnected briefly (for a few seconds) to resolve the problem. * Fixed handling of IP address 0.0.0.0 If the MCII-e did not have an IP address configured, a new IP address could be set, but it would not take effect until the card was reset. Fixed. New in version 1.17.4 --------------------- * Could not be used in slave frames A bug introduced in v1.17.0 caused the PCII-e to spontaneously reset when used in a slave frame. Fixed. New in version 1.17.3 --------------------- * Fixed problems in Search and Replace - search and replace would not replace assignments that were on ports that did not have a keypanel attached, or were on setup pages that were not assigned to a physical panel. - searching and replacing the same assignment (ie. replace N001 with N001) would cause the peripheral controller to hang and reboot if the assignment was found on a listen key. * Fixed problem in Clear Remote Assignments - When clearing remote assignments that are no longer accessible, it would not clear remote point-to-point assignments found on listen keys. New in version 1.17.2 --------------------- * UPL can generate /MACRO/START commands to Dynacord paging system New UPL actions have been added: Start Paging System Macro, and Stop Paging System Macro. When a UPL statement with one of these actions becomes true, a /MACRO/START command is transmitted on J1. Note that AZedit would need to be connected via USB or Ethernet in this case. Support for this feature requires DBX v1.17.3 or later. New in version 1.17.1 --------------------- * Fixed problem in handling of remote scroll lists If a remotely scrollable alpha (other than an alpha for a port) in another intercom was completely scroll restricted, another remote scroll list could potentially be corrupted. AZedit would see the correct list, but a keypanel accessing the list might not see the complete list. Fixed. * Periodically reset control bus if can't receive or transmit messages To guard against the possibility of a transient causing a control bus lock-up, the MCII-e resets its control bus interface if it can't transmit (or receive) any messages for 30 seconds. New in version 1.17.0 --------------------- * Added SNMP support See the file SNMP_Details.html for further implementation details. * Added descriptions for PAPs/LCPs and I/O cards * Remote alphas don't go generic on Periph Ctlr transfer of control In a trunked environment, on a transfer of control of the Peripheral Controller, remote assignments on keypanels would turn generic (e.g. "023N") for a while, and then revert back to the proper alpha. Fixed. Now, if the standby Peripheral Controller is up to date, and a transfer of control occurs, remote alphas should not change. New in version 1.16.2 --------------------- * Spontaneous reset when extremely busy When the PCII-e became extremely busy (i.e. at startup, or when multiple AZedit sessions were active), the card could spontaneously reset because the Idle task was starved, allowing the Watchdog timer to trip. Fixed. * Exclusive control lockout after firmware download When more than one AZedit session is connected, and new firmware is downloaded to the PCII-e, then after the PCII-e resets, the DBX still thought exclusive control was granted to an AZedit session. Fixed. * Hot swapping cards with same IP address but different MAC address If a PCII-e card is hot-swapped with another card that has the same IP address but a different MAC address, it could take a long time for other devices on the network to discover the new card. Fixed. * Automatic recovery from Ethernet interface lockup It was possible for the Ethernet interface chip to lock up and stop transmitting. There is now automatic error recovery for this situation. If this condition occurs, it is automatically detected and the Ethernet interface is reset. * Could not be used in Slave Frames A bug introduced in V1.16.0 caused the PCII-e to spontaneously reset when used in a slave frame (i.e. for supporting slave frame UIO-256's). Fixed. New in version 1.16.1 --------------------- * Networked AZedits can set the IP parameters of the standby controller In v1.16.0 and earlier, only the main AZedit (serial connection via J1) could set the IP parameters of the active and standby controllers. Now, any session can set the IP parameters of the standby controller; however, only the main (J1) session can set the IP parameters of the active controller. * Matrix name change now passed to standby If the matrix name was changed in TrunkEdit, the change was not being passed to the standby. (The standby would get the name after a reset or a transfer of control.) Fixed. * Improved Ethernet handling It was possible for the Ethernet interface chip to lock up and stop transmitting. There is now improved error recovery for this situation. If this condition does occur, disconnecting the LAN cable for a few seconds should make the controller recover. New in version 1.16.0 --------------------- * Added support for Authentication Can be configured via AZedit V3.x.x with a table of user names and passwords. Users can be flagged as administrators, and/or requiring restrictions files. Authentication can be enabled/disabled globally, and individually on J9, J10 USB, and Ethernet sessions. The J1 session never needs authentication. Only administrators (or users on unauthenticated sessions) can change the authentication table. AZedit can query a list of connected users. * Added support for UIO-256's in slave frames It is possible to have multiple UIO-256's at the same polling ID, as long as they are on different frames. In this case, the GPI inputs are or'd together (an input is asserted as long as it is asserted on at least one UIO-256); and the GPI outputs operate in parallel. * PeriphII-e controllers in slave frames couldn't be downloaded. Fixed. * It was possible for the active PeriphII-e to lose the IP settings of the standby PeriphII-e. Fixed. New in version 1.15.0 --------------------- * Added Snoop Tallies An intercom can now be configured to enable Snoop Tallies. A panel displays a snoop tally if all of the following conditions hold: - The keypanel has a hot mic - None of the keypanel's keys are on - Another keypanel is listening to the panel via a point-to-point or a special list, but is not talking to the panel The snoop tally is indicated by turning the Mic Mute LED amber. In a trunked environment, snoop tallies may not always be displayed. If a panel displays a snoop tally, then someone is listening to that panel; however, depending on how trunks are allocated, it is possible for a keypanel in one intercom to snoop on a keypanel in a different intercom, without a snoop tally being displayed. * Improved control bus handling Some improvements were made to control bus handling, so there should be significantly fewer errors in communicating with AIO-8 cards. New in version 1.14.3 --------------------- * Standby controller sometimes not kept up to date There were a couple of problems which could cause the active and standby controllers to fail to keep their configurations synchronized. Hence, on a transfer of control, it could take the standby a long time to come up to date with the DBX and Trunk Master following a transfer of control. Fixed. * Ensure spurious interrupts don't cause a reset Version 1.14.2 fixes a problem caused by a spurious interrupt which looked like an illegal memory access. This version guards against other spurious interrupts (which are less likely to occur). * Standby controller wouldn't respond to AZedit search request In AZedit, under Options|Communications, if the browse button was used to discover intercoms on the network, the standby PeriphII-e wouldn't respond. Fixed. Note that these problems also exist in v1.15.0, but have been fixed in v1.16.0 and later. New in version 1.14.2 --------------------- * Fixed spurious reset problem Occasionally, a spurious interrupt would occur, which looked like an illegal memory access, and would cause the controller card to reset. Fixed. Note that this problem also exists in v1.15.0, but has been fixed in v1.16.0 and later. New in version 1.14.1 --------------------- * Fixed handling of CRCs of alpha data when talking to TM-2000 When the PeriphII-e starts communicating with the TM-2000, they exchange CRCs (checksums) of the various alpha scroll lists; only those lists with differences are sent. A problem in v1.14.0 caused the checksums to always have a mismatch, so complete scroll lists were always being exchanged. Fixed. New in version 1.14.0 --------------------- * The startup code verifies the CRC of the code image stored in flash. If there is no suitable code image, or if the code image appears corrupt (calculated CRC doesn't match CRC stored with image) then a warning message is displayed on the debug port (J100). The results of this test are displayed as part of the version information displayed by AZedit. Displayed CRC Interpretation ------------- ------------------------------------------ xxxx No code stored in flash ???? Code in flash inconsistent with stored CRC 4 hex digits The CRC of the code stored in flash * Some occurrences of "MC-IIe" have been changed to "MCII-e". * Changes to be compatible with DBX firmware including the SNOOP tally configuration option (SNOOP tally functionality requires a DBX version that supports it). New in version 0.1.0 -------------------- * Initial release