Table of Contents

Advertisement

Quick Links

ÅAC Microtec AB owns the copyright of this document which is supplied in confidence and which shall
not be used for any purpose other than for which it is supplied and shall not in whole or in part be
reproduced, copied, or communicated to any person without written permission from the owner.
Sirius Breadboard User Manual
© ÅAC Microtec 2016
www.aacmicrotec.com
Document number
Version
Issue date
Rev. K
204911
Rev. K
2016-10-11
Sirius Breadboard User Manual
Page 1 of 106

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the Sirius and is the answer not in the manual?

Questions and answers

Summary of Contents for AAC Microtec Sirius

  • Page 1 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Sirius Breadboard User Manual Rev. K © ÅAC Microtec 2016 ÅAC Microtec AB owns the copyright of this document which is supplied in confidence and which shall not be used for any purpose other than for which it is supplied and shall not in whole or in part be reproduced, copied, or communicated to any person without written permission from the owner.
  • Page 2 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual REVISION LOG Date Change description 2015-11-10 First Release Updates for new release with lots of minor corrections and 2016-03-07 clarifications. Version C released with the following updates: ...
  • Page 3: Table Of Contents

    2.1. System Overview with peripherals ....................... 9 3. SETUP AND OPERATION ....................10 3.1. User prerequisites ............................10 3.2. Connecting cables to the Sirius Breadboard ..................... 11 3.3. Installation of toolchain ..........................12 3.3.1. Supported Operating Systems ......................... 12 3.3.2. Installation Steps ............................12 3.4.
  • Page 4 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 5.6.3. Usage description ............................ 41 5.6.4. Limitations ..............................41 5.7. Mass memory ..............................42 5.7.1. Description ............................... 42 5.7.2. RTEMS API .............................. 42 5.7.3. Usage ............................... 47 5.7.4.
  • Page 5 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 7.4.13. TCStatus ..............................82 7.4.14. TCDRControl............................83 7.4.15. HKData ..............................83 7.4.16. SCETTime ............................. 83 7.4.17. SCETConfig ............................84 7.4.18. ErrorStatus ............................. 84 7.4.19. UARTCommand ............................. 84 7.4.20.
  • Page 6 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 10. UPDATING THE SIRIUS FPGA ................... 103 10.1. Prerequisite hardware ..........................103 10.2. Prerequisite software ..........................103 10.3. Step by step guide ............................ 103 11. MECHANICAL DATA ....................104 12. ENVIRONMENTAL INFORMATION ................104 13.
  • Page 7: Introduction

    TCM-S 0.6.2 1.2. Intended users This manual is written for the software engineers using the ÅAC Sirius product suite. 1.3. Getting support If you encounter any problem using the breadboard or another ÅAC product please use the following address to get help: Email: support@aacmicrotec.com...
  • Page 8: Equipment Information

    Issue date 2016-10-11 Sirius Breadboard User Manual 2. Equipment information The Sirius Breadboard is a prototyping platform designed to support the TCM-S , and the OBC-S products. The Breadboard layout is depicted in Figure 3-1. The development board supports both a debugger interface for developing software applications and a JTAG interface for upgrading the FPGA firmware.
  • Page 9: System Overview With Peripherals

    204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 2.1. System Overview with peripherals Figure 2-1 depicts a System-on-Chip (SoC) overview including the related peripherals of the OBC-S and TCM-S products. The figure shows what parts are for which products and what parts are not yet implemented since the products are still under development.
  • Page 10: Setup And Operation

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 3. Setup and operation 3.1. User prerequisites The following hardware and software is needed for the setup and operation of the Breadboard. PC computer  1 Gb free space for installation (minimum) ...
  • Page 11: Connecting Cables To The Sirius Breadboard

    3.2. Connecting cables to the Sirius Breadboard Figure 3-1 – ÅAC Sirius Breadboard with connector numbering The Sirius Breadboard runs on a range of 4.5 to 16V DC. The instructions below refer to the connector numbering in Figure 3-1. ...
  • Page 12: Installation Of Toolchain

    Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Option 2: Connect the Display port cable to connector 7 or 8 and to the 104510 Converter board. Connect your SpaceWire system to the converter board with the SpaceWire cable.
  • Page 13: Installing The Board Support Package (Bsp)

    3.5. Deploying a Sirius application 3.5.1. Establish a debugger connection to the Breadboard The Sirius Breadboard is shipped with a debugger which connects to the PC via USB. To interface the Breadboard, the Open On-Chip Debugger (OpenOCD) software is used. A script called run_aac_debugger.sh is shipped with the toolchain package which starts an...
  • Page 14: Setup A Serial Terminal To The Device Debug Uart

    Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Figure 3-2 - Successful OpenOCD connection to the Breadboard 3.5.2. Setup a serial terminal to the device debug UART The device debug UART may be used as a debug interface for printf output etc.
  • Page 15: Programming An Application (Boot Image) To System Flash

    Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual When gdb has opened successfully, connect to the hardware through the OpenOCD server using the gdb command target remote localhost:50001 To start an executable program in hardware, first specify it's name using the gdb command file.
  • Page 16: Software Development

    2016-10-11 Sirius Breadboard User Manual 4. Software development Applications to be deployed on the Sirius Breadboard can either use a bare-metal approach or use the RTEMS OS. This corresponds to the two toolchain prefixes available: or1k-aac- elf-* or or1k-aac-rtems4.11-* Drivers for both are available in the BSP, see chapter 3.4 and the BSP README for more information.
  • Page 17: Rtems

    204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 5. RTEMS 5.1. Introduction This section presents the RTEMS drivers. The Block diagram representing driver functionality access via the RTEMS API is shown in Figure 5-1. Figure 5-1 - Functionality access via RTEMS API www.aacmicrotec.com...
  • Page 18: Watchdog

    204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 5.2. Watchdog 5.2.1. Description This section describes the driver as one utility for accessing the watchdog device. 5.2.2. RTEMS API This API represents the driver interface from a user application’s perspective for the RTEMS driver.
  • Page 19: Usage

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 5.2.2.3. size_t write(…) Any data is accepted as a watchdog kick. Argument name Type Direction Description File descriptor received at open void * Character buffer to read data from...
  • Page 20 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Default value of the watch dog is enabled. When debugged it must be set disabled otherwise the system restart occasionally. 5.2.3.1. RTEMS The RTEMS driver must be opened before it can access the watchdog device. Once opened, all provided operations can be used as described in the RTEMS API defined in subchapter 5.2.2.
  • Page 21: Error Manager

    204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Inclusion of <errno.h> is required for retrieving error values on failures. Inclusion of <bsp/wdt_rtems.h> is required for accessing watchdog device name RTEMS_WATCHDOG_DEVICE_NAME. CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER must be defined for using the watchdog driver.
  • Page 22 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual errno values EALREADY Device already opened 5.3.2.2. int close(…) Closes access to the device. Argument name Type Direction Description File descriptor received at open Return value Description Device closed successfully 5.3.2.3.
  • Page 23 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual ERRMAN_SET_EDAC_MULTI_ERRCNT_IOCTL Sets the EDAC multiple error count register ERRMAN_SET_CPU_PARITY_ERRCNT_IOCTL Sets the CPU Parity error count register ERRMAN_SET_POWER_LOSS_ENABLE_IOCTL Sets the power loss enable state Return value Description Command executed...
  • Page 24: Usage

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual ERRMAN_WDTFLG A previous Watch Dog Timer Reset has been detected Clear flag by write a ‘1’ ERRMAN_RFLG A previous Manual Reset has been detected Clear flag by write a ‘1’...
  • Page 25 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Figure 5-3 - RTEMS driver usage description Interrupt message queue The error manager RTEMS driver exposes a message queue service which can be subscribed to. The name of the queue is “’E’, ‘M’, ‘G’, ‘R’”.
  • Page 26: Limitations

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 5.3.3.2. RTEMS application example In order to use the error manager driver on RTEMS environment, the following code structure is suggested to be used: #include <bsp.h> #include <fcntl.h>...
  • Page 27: Scet

    204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 5.4. SCET 5.4.1. Description This section describes the driver as a utility for accessing the SCET device. 5.4.2. RTEMS API This API represents the driver interface from a user application’s perspective for the RTEMS driver.
  • Page 28 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 5.4.2.3. int ioctl(…) Ioctl allows for disabling/enabling of the SCET and setting of the timeout. Argument name Type Direction Description File descriptor received at open Command to send Value to write or a pointer to a buffer where data will be written.
  • Page 29: Usage

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual SCET_SET_GP_TRIGGER_LEVEL_IOCTL uint32_t in/out Pointer input argument selects which GP trigger. Return value is the current value of that trigger. 0 = trigger activates on a rising edge...
  • Page 30 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Figure 5-4 - RTEMS driver usage description 5.4.3.1.1. Time handling Getting the current SCET time in RTEMS can be done in two ways: 1. Using read call, reading 6 bytes.
  • Page 31 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual ‘S’, ‘G’, ‘T’, ‘0’ handles messages sent from the general purpose trigger 0. Event name Description TRIGGER0 Trigger 0 was triggered ‘S’, ‘G’, T’, ‘1’ handles messages sent from the general purpose trigger 1.
  • Page 32 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 5.4.3.3. RTEMS application example In order to use the scet driver on RTEMS environment, the following code structure is suggested to be used: #include <bsp.h> #include <fcntl.h>...
  • Page 33: Uart

    Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 5.5. UART 5.5.1. Description This driver is using the de facto standard interface for a 16550D UART given in [RD5] and as such has an 8-bit interface, but has been expanded to provide a faster and more delay- tolerant implementation.
  • Page 34 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Return value Description A file descriptor for the device on success See errno values errno values ENODEV Device does not exist EALREADY Device is already open Device name...
  • Page 35 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual EPERM Device not open EINVAL Invalid number of characters to be read 5.5.2.4. Function ssize_t write(…) Write data to the UART. The write call is blocking until all data have been transmitted.
  • Page 36: Usage Description

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual UART_IOCTL_MODE_SELECT uint32_t Set the mode of the interface. Possible values: UART_RTEMS_MODE_RS422 (default) UART_RTEMS_MODE_RS485 UART_RTEMS_MODE_LOOPBACK (TX connected to RX internally) UART_IOCTL_RX_FLUSH uint32_t Flushes the RX software FIFO UART_IOCTL_SET_PARITY uint32_t Set parity.
  • Page 37: Limitations

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 5.5.3.1. RTEMS application example In order to use the uart driver in the RTEMS environment, the following code structure is suggested to be used: #include <bsp.h> #include <fcntl.h>...
  • Page 38 Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual The driver functionality is accessed through the RTEMS POSIX API for ease of use. In case of a failure on a function call, the errno value is set for determining the cause.
  • Page 39 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Return value Description Fildes A file descriptor for the device on success See errno values errno values EEXISTS Device already exists EALREADY Device is already open EINVAL Invalid options 5.6.2.4.
  • Page 40 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Return value Description >=0 Number of bytes that were read. See errno values errno values EINVAL Invalid options 5.6.2.6. Function int ioctl(...) Input/output control for UART32. Argument name...
  • Page 41: Usage Description

    204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 5.6.3. Usage description The following #define needs to be set by the user application to be able to use the UART32: CONFIGURE_APPLICATION_NEEDS_UART32_DRIVER 5.6.3.1. RTEMS application example In order to use the UART32 driver on RTEMS environment, the following code structure is suggested to be used: #include <bsp.h>...
  • Page 42: Mass Memory

    204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 5.7. Mass memory 5.7.1. Description This section describes the mass memory driver’s design and usability. 5.7.2. RTEMS API This API represents the driver interface from a user application’s perspective for the RTEMS driver.
  • Page 43 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Return value Description Device closed successfully see errno values errno values The file descriptor fd is not an EBADF open file descriptor 5.7.2.3. size_t lseek(…) Sets page offset for read/ write operations.
  • Page 44 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Return value Description >0 Number of bytes that were read. see errno values errno values The file descriptor fd is not an open file EBADF descriptor Page offset set in lseek is out of range...
  • Page 45 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Command Type Direction Description MASSMEM_IO_BAD_BLOCK_CHECK uint32_t Block number. Return value Description Block is OK. Bad block 5.7.2.6.2. Reset mass memory device Command Type Direction Description MASSMEM_IO_RESET Return value...
  • Page 46 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Return value Description Always 5.7.2.6.7. Erase block Command Type Direction Description MASSMEM_IO_ERASE_BLOCK uint32_t Block number Return value Description Always 5.7.2.6.8. Read spare area Reads the spare area with given data.
  • Page 47: Usage

    204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 5.7.3. Usage 5.7.3.1. RTEMS 5.7.3.1.1. Overview The RTEMS driver accesses the mass memory by the reference a page number. There are MASSMEM_BLOCKS blocks starting from block number 0 and MASSMEM_PAGES_PER_BLOCK pages within each block starting from page 0.
  • Page 48: Limitations

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual #include <bsp.h> #include <fcntl.h> #include <unistd.h> #include <errno.h> #include <bsp/massmem_flash_rtems.h> #define CONFIGURE_APPLICATION_NEEDS_MASS_MEMORY_FLASH_DRIVER #define CONFIGURE_INIT rtems_task Init (rtems_task_argument argument); #include <bsp/bsp_confdefs.h> #include <rtems/confdefs.h> rtems_task Init (rtems_task_argument argument) fd = open(MASSMEM_DEVICE_NAME, O_RDWR);...
  • Page 49: Spacewire

    204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 5.8. Spacewire 5.8.1. Description This section describes the SpaceWire driver’s design and usability. 5.8.2. RTEMS API This API represents the driver interface from a user application’s perspective for the RTEMS driver.
  • Page 50 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Return value Description Device name deregistered successfully see errno values errno values The file descriptor fd is not an open file EBADF descriptor 5.8.2.3. size_t read(…) Receives a packet.
  • Page 51: Usage

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual errno values The file descriptor fd is not an open file EBADF descriptor Packet size is 0 or larger than EINVAL SPWN_MAX_PACKET_SIZE. 5.8.2.5. int ioctl(…) Additional supported operations via POSIX Input/Output Control API.
  • Page 52 Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Only one logical address can be registered at a time yet multiple logical addresses can be used at the same time within an application. Logical addresses between 0 – 31 and 255 are reserved by the ESA’s ECSS SpaceWire standard and cannot be registered to.
  • Page 53 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 5.8.3.2. RTEMS application example In order to use the driver in RTEMS environment, the following code structure is suggested to be used: #include <bsp.h> #include <fcntl.h> #include <unistd.h>...
  • Page 54: Limitations

    204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual CONFIGURE_EXECUTIVE_RAM_SIZE must also be defined for objects needed by the driver. 5.8.4. Limitations Currently, default transmission/reception bit rate is set to 50 MBAUD and cannot be altered during operation. This functionality is planned to be added in a future release.
  • Page 55: Rtems Api

    Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 5.9.2. RTEMS API This API represents the driver interface of the module from an RTEMS user application's perspective. The driver functionality is accessed through the RTEMS POSIX API for ease of use. In case of a failure on a function call, the errno value is set for determining the cause.
  • Page 56 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Argument name Type Direction Description File descriptor received at open. void* Pointer to character buffer to put the read data count size_t Number of bytes to read, must be set to 1.
  • Page 57: Usage Description

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual GPIO_IOCTL_SET_DIRECTION uint32_t Set input/output direction of the pin. '0' output mode '1' input mode GPIO_IOCTL_GET_FALL_EDGE_DETECTION uint32_t Get falling edge detection status of the pin. '0' detection disabled...
  • Page 58: Limitations

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual #include <bsp.h> #include <fcntl.h> #include <unistd.h> #include <errno.h> #include <bsp/gpio_rtems.h> #define CONFIGURE_APPLICATION_NEEDS_GPIO_DRIVER #define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER #define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER #define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM #define CONFIGURE_MAXIMUM_DRIVERS 15 #define CONFIGURE_MAXIMUM_SEMAPHORES 20 #define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 30...
  • Page 59: Ccsds

    Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 5.10. CCSDS 5.10.1. Description This section describes the driver as a utility for accessing the CCSDS IP. On the telemetry, the frames are encoded with Reed Solomon encoding that conforms to the CCSDS standard with a (255-223) RS encoder implementation and an interleaving depth of 5.
  • Page 60 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Element Size (in bits) Description transfer_frame_version_no The transfer frame version number Scid The SCID Vcid The virtual channel id of the TM frame vcf_flag The OCF-flag Mcfc...
  • Page 61 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 5.10.2.2. Datatype struct tc_frame_t This datatype is a struct representing a telecommand transfer frame. The elements are described in the table below: Element Size (in bits) Description...
  • Page 62 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual tm_conv_bypassed uint8_t Bypassing of the TM convolutional encoder 0 - No bypass 1 - Bypass tm_pseudo_rand_bypassed uint8_t Bypassing of the TM pseudo randomizer encoder 0 - No bypass...
  • Page 63 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 5.10.2.7. int open(…) Opens the devices provided by the CCSDS RTEMS driver. The device can only be opened once at a time. Argument name Type Direction Description...
  • Page 64 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Return value Description ≥0 number of bytes that were written. see errno values errno values EINVAL Wrong arguments A physical access on the device failed 5.10.2.10. size_t read(…) To read a Telecommand Transfer frame a read-operation on device “/dev/ccsds-tc”...
  • Page 65 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Command table Device Parameter type Description CCSDS_SET_TM_CONFIG /dev/ccsds-tm tm_config_t Sets a configuration of the TM path. See 5.10.2.3 CCSDS_GET_TM_CONFIG /dev/ccsds-tm tm_config_t * Returns the configuration of the TM path. See 5.10.2.3...
  • Page 66: Usage Description

    204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 5.10.3. Usage description 5.10.3.1. Send Telemetry Open the device “/dev/ccsds-tm”, “/dev/ccsds-tc” and “/dev/ccsds”. Set up the TM path by ioctl-call CCSDS_SET_TM_CONFIG on device “/dev/ccsds-tm” or ioctl CCSDS_INIT on device “/dev/ccsds”...
  • Page 67: Adc

    204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 5.11. ADC 5.11.1. Description This section describes the driver for accessing the ADC device when reading the house- keeping (HK) data. The following ADC channels contain housekeeping information: Parameter...
  • Page 68 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual ADC_IOCTL_SPS_503_8 SPS 503.8 ADC_IOCTL_SPS_381 SPS 381 ADC_IOCTL_SPS_200_3 SPS 200.8 ADC_IOCTL_SPS_100_5 SPS 100.5 ADC_IOCTL_SPS_59_52 SPS 59.52 ADC_IOCTL_SPS_49_68 SPS 49.68 ADC_IOCTL_SPS_20_01 SPS 20.01 ADC_IOCTL_SPS_16_63 SPS 16.63 ADC_IOCTL_SPS_10 SPS 10...
  • Page 69 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual EINVAL Invalid options 5.11.2.4. Function ssize_t read(…) This is a blocking call to read data from the ADC. Note! The size of the given buffer must be a multiple of 32 bit as this is the minimum return element from a read, see bit definition table below.
  • Page 70: Usage

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual ADC_GET_CLOCK_DIVISOR uint32_t Set the clock divisor of the clock used for communication with the ADC chip. ADC_ENABLE_CHANNEL uint32_t Enable specified channel number to be included when sampling. Minimum 0 and maximum 15.
  • Page 71: Limitations

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual #include <bsp.h> #include <fcntl.h> #include <unistd.h> #include <errno.h> #include <bsp/adc_rtems.h> #define CONFIGURE_APPLICATION_NEEDS_ADC_DRIVER #include <bsp/bsp_confdefs.h> #include <rtems/confdefs.h> #define CONFIGURE_INIT rtems_task Init (rtems_task_argument argument); rtems_task Init (rtems_task_argument argument){ rtems_status_code status;...
  • Page 72: Description

    Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 5.12.1. Description This driver software for the SPI RAM IP, handles the initialization, configuration and access of the NVRAM. The NVRAM is divided into a system memory area and a user memory area. The system memory start at SPI RAM address 0x100 and the user memory start at SPI RAM address 0x200.
  • Page 73 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Return value Description Device closed successfully See errno values errno values EINVAL Invalid options 5.12.2.4. Function ssize_t read(...) Read data from the SPI RAM. The call block until all data has been received from the SPI RAM.
  • Page 74 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual offset void* SPI RAM read/write byte offset. Must be a multiple of 4. whence SEEK_SET and SEEK_CUR are supported. Return value Description >=0 Byte offset See errno values...
  • Page 75: Usage Description

    204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 5.12.3. Usage description The following #define needs to be set by the user application to be able to use the SPI RAM: CONFIGURE_APPLICATION_NEEDS_SPI_RAM_DRIVER 5.12.3.1. RTEMS application example In order to use the SPI RAM driver on RTEMS environment, the following code structure is suggested to be used: #include <bsp.h>...
  • Page 76: Spacewire Router

    204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 6. Spacewire router In both OBC-S and TCM-S products, a smaller router is integrated onto their relative SoCs. The routers all use path addressing (see [RD2]) and given the topology illustrated in Figure 6-1, the routing addressing can be easily calculated.
  • Page 77: Tcm-Stm

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 7. TCM-S 7.1. Description The TCM-S handles receiving of Telecommands (TCs) and Telemetry (TM) as well as Spacewire communication using the RMAP protocol. TC, received from ground, can be of two command types; a pulse command or a Telecommand.
  • Page 78: Spacewire Rmap

    Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 7.3. Spacewire RMAP According to [RD3], a 40-bits address consisting of an 8-bit Extended Address field and a 32-bit Address field is used in RMAP. This has been utilized in the TCM-S...
  • Page 79: Output

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual TMSend 0xFF 0x00001000 Sends telemetry on virtual channel 0. TCStatus 0xFF 0x01000000 Reads latest telecommand status. Enables/Disables Derandomizer of TCDRControl 0xFF 0x01000100 telecommands. HKData 0xFF 0x02000000 Reads Houskeeping data.
  • Page 80: Tmconfig

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Table 7-5: TMStatus data Byte Type Description 0x00 – No Error UINT8 0x01 – FIFO error. 0x00 – No transfer in progress. UINT8 0x00 – Transfer in progress.
  • Page 81: Tmmcfccontrol

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 7.4.5. TMMCFCControl Controls the Master Channel Frame Counter generation for transfer frames. Table 7-9: TMMFControl data Byte Type Description 0x00 – Disable UINT8 0x01 – Enable (Default) 7.4.6.
  • Page 82: Tmbrset

    Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 7.4.10. TMBRSet Configures the telemetry clock frequency. The telemetry clock is fed to the radio. The frequency of the telemetry clock is the system clock (50 MHz) divided by the divisor. E.g. if the divisor value is set to 25, the telemetry clock frequency is 2 MHz Note! If the convolutional encoding is disabled, as defined in subchapter 7.4.9, the...
  • Page 83: Tcdrcontrol

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Bit 15:12 – Unused Bit 11:0 – Line 11:0 UINT8 Number of accepted CPDU commands. Wraps after 0x0F. Derandomizer setting 0x00 – Disabled. UINT8 0x01 – Enabled.
  • Page 84: Scetconfig

    204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual shall be added to the seconds counter. SCETSubSeconds when reading. When writing a value to SCETSubSeconds, this must be a 2’s complementary value UINT16 that shall be added to the subseconds counter.
  • Page 85: Mmstatus

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 0 - nn Array of UINT8 Data 7.4.21. MMStatus Reads mass memory status. Table 7-25: MMStatus data Byte Type Description Chip 3 status Bit 7 - WP# (write protect)
  • Page 86: Mmpartitionconfig

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 7.4.24. MMPartitionConfig The partition configuration of the specified partition is read by this command. Table 7-28: MMPartitionConfig data Byte Type Description Size in bytes. Must be in multiples of mass memory block size...
  • Page 87: Tcerror

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Table 7.31 TMError data Byte Type Description UINT8 Counts the number of checksum errors. Wraps at 0xFF. 7.4.29. TCError Contains status of the TC path. Table 7.32 TCError data...
  • Page 88: Device Command Distribution Service

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Table 7-34: Telecommand Acceptance Report – Failure (1,2) Packet ID Packet Sequence Control Code UINT8. UINT16 UINT16 0 – Illegal APID 7.7.2. PUS-2 Device Command Distribution Service...
  • Page 89: System-On-Chip Definitions

    Issue date 2016-10-11 Sirius Breadboard User Manual 8. System-on-Chip definitions The ÅAC Sirius products include two boards built around the OR1200 fault tolerant processor, the OBC-S and the TCM-S . Below are the peripherals, memory sections and interrupts defined for the SoC for these two boards. Some of these might not be equipped in this development release.
  • Page 90: Interrupt Sources

    204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 8.2. Interrupt sources The following interrupts are available to the processor: Table 8-2 - Sirius interrupt assignment Interrupt no. Function Description Reserved Internal use UART Debug UART interrupt signal...
  • Page 91: Boot Images And Boot Procedure

    Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 8.4. Boot images and boot procedure 8.4.1. Description The bootrom is a small piece of software built into a read-only memory inside the System- on-Chip. Its main function is to load a software image from the system flash to RAM and start it by jumping to the reset vector (0x100).
  • Page 92: Limitations

    0 takes precedence. 8.7. SoC information map The information included in the SoC info block for the Sirius products have the following contents in Table 8-6. This information must be used from gdb prompt and can be used as a control of which SoC version that is flashed on the board.
  • Page 93 Issue date 2016-10-11 Sirius Breadboard User Manual x/3xw 0xC1000000 and you will get the below information presented. Table 8-6 Sirius SoC info Base address Function Description number When building the SoC, a Unix timestamp is taken and put into the TIME_STAMP system.
  • Page 94: Connector Interfaces

    2016-10-11 Sirius Breadboard User Manual 9. Connector interfaces Figure 9-1 - Sirius ports 9.1. RESET, Reset pushbutton The reset pushbutton resets the SoC using the dedicated devrst pin of the FPGA. In normal development this can be used as an alternative to the soft reset described in 5.3. Note: This button must not be used during an update of the SoC (FPGA).
  • Page 95: Debug-Sw

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Pin 8 RTL-JTAG-TDO Test Data Out, data shifted out of the device Pin 9 Ground Pin 10 RTL-JTAG-TCK Test Clock 9.3. DEBUG-SW The following pins are available on the ST60-18P, connector. See Table 9-2.
  • Page 96: Spw2 - Spacewire

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Pin 7 SPW1_SIN_LVDS_N SpaceWire strobe in negative, pair with p2 Pin 8 SPW1_SOUT_LVDS_P SpaceWire strobe out positive, pair with p4 Pin 9 SPW1_DOUT_LVDS_P SpaceWire data out positive, pair with p5 9.5.
  • Page 97: Digitals, 3X I2C, Pps And 12Xgpio

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Pin 16 Board ground Pin 17 Board ground Pin 18 Board ground Pin 19 Board ground Pin 20 Board ground Pin 21 Board ground Pin 22 Board ground...
  • Page 98: Com02_Rs4Xx, 3Xrs422/485

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual synchronization Pin 24 PPS_INPUT_RS422_P Pin 25 Board ground 9.8. COM02_RS4XX, 3xRS422/485 The following pins are available on the nanoD15 socket connector, see Table 9-7 Table 9-7 COM02_RS4XX pinouts...
  • Page 99: Ccsds Rs422, S-Band Trx (Tcm-S)

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual Pin 11 UART5_RX_RS4XX_P UART Port 5 RX Pin 12 UART5_RX_RS4XX_N Pin 13 UART5_TX_RS4XX_P UART Port 5 TX Pin 14 UART5_TX_RS4XX_N Pin 15 Ground 9.10. CCSDS RS422, S-BAND TRX (TCM-S)
  • Page 100: Ccsds Lvds, Rs422, X-Band Trx (Tcm-S)

    204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 9.11. CCSDS LVDS, RS422, X-BAND TRX (TCM-S) The following pins are available on the nano-D25, socket connector, see Table 9-9 Table 9-10 X-BAND TRX pin-outs Pin # Signal name...
  • Page 101: Umbi - Baseband Umbilical (Tcm-S)

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 9.13. UMBI – Baseband Umbilical (TCM-S) The following pins are available on the nano-D15 socket connector, see Table 9-10 Table 9-11 UMBI pin-outs Pin # Signal name...
  • Page 102: Pulse Command Outputs

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 9.14. Pulse Command Outputs The following pins are available on the nano-D25, socket connector, see Table 9-10 Table 9-12 Pulse command pin-outs Pin # Signal name Description...
  • Page 103: Updating The Sirius Fpga

    Please note that you either need to launch FPExpress with super user rights or change the user rights to the usb node. If the programming was successful one of the last commands should be: programmer: Chain programming PASSED. The Sirius FPGA image is now updated www.aacmicrotec.com Page 103 of 106...
  • Page 104: Mechanical Data

    TCM-S and OBC-S boards. Figure 11-1 - The Sirius board mechanical dimensions 12. Environmental information The Sirius Breadboard is an engineering model and as such it is only intended for office usage. Table 12-1 - Environmental temperature ranges Environment Range Operating temperature EM 0-40 ºC...
  • Page 105: Glossary

    Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual 13. Glossary Analog Digital Converter APID Application Process ID Board Support Package CCSDS The Consultative Committee for Space Data Systems EDAC Error Detection and Correction Engineering model...
  • Page 106 Document number 204911 Version Rev. K Issue date 2016-10-11 Sirius Breadboard User Manual www.aacmicrotec.com Page 106 of 106...

Table of Contents