__________________________________________________ ADAM MCII-e Peripheral Controller - version 1.17.4 __________________________________________________ Code image CRC Standard: 684b 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.17.x - DBX version 1.17.x (must be v1.17.1 or later for full SNMP support) - AZedit version 3.1.0 or later required for full support of all features 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 Should be open (reserved) 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.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