__________________________________________________ ADAM MCII-e Peripheral Controller - version 1.22.0 __________________________________________________ Code image CRC Standard: 8e45 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-8 version 1.2.0 or later - PeriphII-e version 1.22.x - DBX version 1.22.x - AZedit version 3.7.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 v10.3.6 or later - AIO-16 v1.1.4 or later 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.22.0 --------------------- * Eliminated certain features to reduce memory requirements Versions 1.20.0 and 1.21.0 introduced new features; however, they require the use of DBX cards with additional RAM and flash memory in order to support larger system sizes. For smaller systems, and for systems that use DBX cards with additional memory, version 1.21.0 has the most recent features, including those in v1.22.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 versions 1.21.0 and 1.20.0 --------------------------------- Versions 1.21.0 and 1.20.0 include some features which are not included in version 1.22.0, because of memory limitations in the DBX card. A description of these features is included in the release notes for version 1.21.0. 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