RZ/A1H Group. Application Note. SSI Sample Program. Introduction. Target Devices. R01AN2076EJ0101 Rev Jul. 16, 2014

Size: px
Start display at page:

Download "RZ/A1H Group. Application Note. SSI Sample Program. Introduction. Target Devices. R01AN2076EJ0101 Rev Jul. 16, 2014"

Transcription

1 Application Note RZ/A1H Group R01AN2076EJ0101 Rev.1.01 Introduction This application note describes a sample program for full-duplex communication with an audio codec (WM8978) through the use of the serial sound interface (hereinafter referred to as SSI) function of RZ/A1H. The features of the SSI program are as follows: - It sets SSI to master transceiver mode to establish full-duplex communication with an audio codec (WM8978). - It provides an example of starting and stopping playback by switching the operation of SSI (starting and stopping operation) every five seconds. Target Devices RZ/A1H Group When applying the sample program covered in this application note to another microcomputer, modify the program according to the specifications for the target microcomputer and conduct an extensive evaluation of the modified program. R01AN2076EJ0101 Rev.1.01 Page 1 of 63

2 Contents 1. Specifications Operation Check Conditions Related Application Note Peripheral Functions Description of Hardware Hardware Configuration List of Pins to Be Used Software Description Operation Outline Memory Mappings Allocation of Sample Program Sections MMU Settings Interrupts Basic Data Types List of Constants/Error Codes List of Structures/Unions List of Variables List of Functions Function Specifications R_SSI_RamInit R_SSI_SsiInit R_SSI_DmaInit R_SSI_SsiStart R_SSI_DmaStart R_SSI_SsiStop R_SSI_SsiDmaStop R_SSI_SsiDmaAdsSet Flowcharts Main Processing Main Processing (during SSI Operation) Main Processing (Stopping SSI) Main Processing (Resuming SSI) DMA Transfer End Interrupt Processing OS Timer Interrupt Processing Initialization of SSI Control Information SSI Initialization DMAC Initialization SSI Activation DMAC Activation SSI Termination Termination of SSI Transmission and Reception Buffer Registration SSI Error Interrupt Processing Initialization of DMA Control Information Queue Initialization Queue Setup Enabling of DMA Transfer Termination of DMA Transfer Initialization of DMA (Buffer -> SSI) Update of DMA Transfer Source Addresses R01AN2076EJ0101 Rev.1.01 Page 2 of 63

3 Initialization of DMA (SSI -> Buffer) Update of DMA Transfer Destination Addresses Termination of DMA Transfer Sample Code Documents for Reference R01AN2076EJ0101 Rev.1.01 Page 3 of 63

4 1. Specifications Table 1.1 lists the peripheral functions to be used and their uses. Table 1.1 Peripheral Functions to Be Used and Their Uses Peripheral functions SSI channel 0 INTC (Interrupt ID: 172) INTC (Interrupt ID: 41) INTC (Interrupt ID: 42) INTC (Interrupt ID: 135) DMAC channel 0 DMAC channel 1 OSTM channel 1 RSPI channel 4 Uses SSI transmission and reception SSI error (transmission underflow error, reception overflow error) detection DMA transfer end (SSI -> buffer) detection DMA transfer end (buffer -> SSI) detection Timing generation for switching operation to stop playback Audio data transfer (SSI -> buffer) Audio data transfer (buffer -> SSI) For time measurement for switching operation to start and stop playback Audio codec (WM8978) control R01AN2076EJ0101 Rev.1.01 Page 4 of 63

5 2. Operation Check Conditions The operation of the sample code covered in this application note is checked under the following conditions: Table 2.1 Operation Check Conditions Item Description Microcomputer used RZ/A1H Operating frequency [MHz] CPU Clock(Iφ): 400 MHz Image processing clock(gφ): MHz Internal Bus Clock(Bφ): MHz Peripheral Clock(P1φ): MHz Peripheral Clock(P0φ): MHz Operating voltage Power-supply voltage(i/o): 3.3 V Power-supply voltage (internal): 1.18 V Integrated development ARM integrated development environment environment ARM Development Studio 5 (DS-5TM) Version 5.16 C compiler ARM C/C++ Compiler/Linker/Assembler Ver.5.03 [Build102] Compiler options (excluding addition of directory paths) -O3 -Ospace --cpu=cortex-a9 --littleend arm --no_unaligned_access -g --asm --no_autoinline -c Operating mode Boot mode 0 (CS0 space 16-bit boot) Board to be used R7S72100 CPU board: RTK772100BC00000BR Device used (functionality to be used on the board) <R7S72100 CPU board: on RTK772100BC00000BR> - Functional setting of the DIP switch SW2-2 for system configuration: ON (P4_[7:4] is used as the SSIF pin.) - Jumper JP10: 1-2 short (P4_1 is used as the SSL40 output pin.) R01AN2076EJ0101 Rev.1.01 Page 5 of 63

6 3. Related Application Note The application notes related to this application note are listed below for reference. RZ/A1H Group Initialization Example (R01AN1864EJ) RZ/A1H Group Register Definition Header File iodefine.h (R01AN1860EJ) RZ/A1HGroup Renesas Serial Peripheral Interface EEPROM Read/Write Example (R01AN1806EJ) R01AN2076EJ0101 Rev.1.01 Page 6 of 63

7 4. Peripheral Functions The information about the basics of SSIF, DMAC, INTC, RSPI and OSTM is found in "RZ/A1H Group User's Manual Hardware." R01AN2076EJ0101 Rev.1.01 Page 7 of 63

8 5. Description of Hardware 5.1 Hardware Configuration Figure 5.1 gives an example of Hardware Configuration RZ/A1H SSI SSISCK MHz AUDIO_X1 SSIWS0 SSIRxD0 R Flash Memory Large-capacity On-chip RAM RSPI SSITxD0 RSPCK4 MOSI4 SSL40 Audio Codec (WM8978) Figure 5.1 Example of Hardware Configuration 5.2 List of Pins to Be Used Table 5.1 lists Pins to Be Used and Their Functions. Table 5.1 Pins to Be Used and Their Functions Pin name I/O Description AUDIO_CLK Input Not used. AUDIO_X1 Input Oversampling clock input. AUDIO_X2 Output Not used. SSISCK0 Output Serial bit clock. SSIWS0 Output Word selection. SSITxD0 Output Serial data output. SSIRxD0 Input Serial data input. RSPCK4 Output Clock output. MOSI4 Output Master transmission data. SSL40 Output Slave select R01AN2076EJ0101 Rev.1.01 Page 8 of 63

9 6. Software Description 6.1 Operation Outline Figure 6.1 shows a schematic diagram of operation of the sample code. Audio data received from the SSIRxD0 pin is transferred to the reception FIFO data register (SSIFRDR) via the reception data register (SSIRDR) of SSI channel 0. After the data is transferred to the SSIFRDR register, SSI activates DMAC channel 0 by using a DMAC transfer request made through a received-data-full interrupt. A buffer (large-capacity on-chip RAM) for 441 samples (1764 bytes) is configured as the transfer destination of DMAC channel 0. The buffer has four sides and successively receives data by switching between the sides each time a DMA transfer is completed. A DMAC transfer request made through a transmitted-data-empty interrupt of SSI is used to activate DMAC channel 1 to transfer audio data stored in a buffer (large-capacity on-chip RAM) to the transmission FIFO data register (SSIFTDR) of SSI channel 0. The data that has been transferred to the SSIFTDR register is transferred to the the transmission data register (SSITDR) when it is detected that the SSITDR register is empty, and then it is output from the SSITxD0 pin. Each time a transfer of data from one buffer side is completed, the buffer is switched to another side to successively transfer data. The full-duplex communication described above is carried out for five seconds, and it is stopped for five seconds. Then, this operation is repeated. Large-capacity on-chip RAM Serial sound interface (SSI) Lch Rch Channel 0(transmission) DMAC (Channel 1) SSITxD0 Audio data Lch Rch Audio data received by SSI channel 0 is directly transmitted to SSI channel 0 Buffer 4sides Lch Rch Channel 0(reception) DMAC (Channel 0) Lch Rch SSIRxD0 Audio data Figure 6.1 Overview of Operation R01AN2076EJ0101 Rev.1.01 Page 9 of 63

10 6.2 Memory Mappings Figure 6.2 shows the address spaces of the RZ/A1H group and the memory map of the R7S72100 CPU board RTK772100BC00000BR. In the sample program, code and data that use the ROM area are allocated to the R flash memory connected to the CS0 space, and code and data that use the RAM area are allocated to the large-capacity on-chip RAM. Address spaces of the RZ/A1H group R7S72100 CPU board memory mapping H FFFF FFFF Others (2550 MB) Others (2550 MB) Mirror spaces H 60A H H 5C H Large-capacity on-chip RAM (10MB) SPI multi-i/o-bus space 2 (64 MB) SPI multi-i/o-bus space 1 (64 MB) Large-capacity on-chip RAM mirror space SPI multi-i/o-bus mirror space 2 SPI multi-i/o-bus mirror space 1 CS5 space (64 MB) CS4 space (64 MB) CS5 mirror space CS4 mirror space H H 4C CS3 space (64 MB) CS3 mirror space H CS2 space (64 MB) CS2 mirror space H CS1 space (64 MB) CS1 mirror space H CS0 space (64 MB) CS0 mirror space Others (502 MB) Others (502 MB) H 20A H H 1C H Large-capacity on-chip RAM (10 MB) SPI multi-i/o-bus space 2 (64 MB) SPI multi-i/o-bus space 1 (64 MB) Large-capacity on-chip RAM (10 MB) Serial flash memory (64 MB) Serial flash memory (64MB) Normal spaces CS5 space (64 MB) CS4 space (64 MB) User area H H 0C CS3 space (64 MB) SDRAM (64 MB) H H H CS2 space (64 MB) CS1 space (64 MB) CS0 space (64 MB) SDRAM (64 MB) R flash memory (64 MB) R flash memory (64 MB) Figure 6.2 Memory Map R01AN2076EJ0101 Rev.1.01 Page 10 of 63

11 6.2.1 Allocation of Sample Program Sections In the sample program, in order to ensure the high-speed handling of interrupts, the exception handling vector table and the IRQ interrupt handler are allocated to the large-capacity on-chip RAM to operate these on the large-capacity on-chip RAM. A scatter loading function is used to perform the following: transferring data from R flash memory areas for the exception handling vector table and for the program code of the IRQ interrupt handler to the large-capacity on-chip RAM; clearing, to 0, data sections that do not have initial values; and initializing data sections that have initial values. For details of the scatter loading function, refer to the chapter of Image Structure and Generation in Using the Linker in ARM Compiler toolchain, which is provided by ARM. Table 6.1 and Table 6.2 show the sections used in the sample program, and Figure 6.3 shows the initial allocation of sections (load view) of the sample program, and the allocation of the sections after the use of the scatter loading function (execution view). R01AN2076EJ0101 Rev.1.01 Page 11 of 63

12 Table 6.1 Sections to Be Used (1/2) Area Name Description Type Load Area Execution Area VECTOR_TABLE Exception handling vector table. Code FLASH FLASH RESET_HANDLER Program code area for reset handler operation. This area consists of the following sections. - INITCA9CACHE (L1 cache setting) - INIT_TTB (MMU setting) - RESET_HANDLER (reset handler) Code FLASH FLASH CODE_BASIC_SETUP Program code area for operating frequencies and flash memory optimization. Code FLASH FLASH InRoot CODE_FPU_INIT CODE_RESET CODE_IO_REGRW CODE CONST This area consists of sections allocated to the root area, such as the standard C library. Program code area for initialization of NEON and VFP. This area consists of the following sections. - CODE_FPU_INIT - FPU_INIT Program code area for hardware initialization. This area consists of the following sections. - CODE_RESET (start-up operation) - INIT_VBAR (vector base setting) Program code area for read/write functions for IO registers. Default program code area. All sections of code types with section names that are not defined in C sources are allocated to this area. Default constant data area. All sections of RO data types with section names that are not defined in C sources are allocated to this area. Code and RO Data FLASH FLASH Code FLASH FLASH Code FLASH FLASH Code FLASH FLASH Code FLASH FLASH RO Data FLASH FLASH R01AN2076EJ0101 Rev.1.01 Page 12 of 63

13 Table 6.2 Sections to Be Used (2/2) Area Name Description Type Load Area Execution Area VECTOR_MIRROR_ TABLE CODE_HANDLER_ JMPTBL CODE_HANDLER DATA_HANDLER_ JMPTBL Exception handling vector table. (Section for transfer to and execution on the large-capacity on-chip RAM) Program code area for user-defined functions of the IRQ interrupt handler. Program code area for the IRQ interrupt handler. This area consists of the following sections. - CODE_HANDLER - IRQ_FIQ_HANDLER Registration table data area for user-defined functions of the IRQ interrupt handler. Code FLASH LRAM Code FLASH LRAM Code FLASH LRAM RW Data FLASH LRAM ARM_LIB_STACK Application stack area. ZI Data - LRAM IRQ_STACK IRQ mode stack area. ZI Data - LRAM FIQ_STACK FIQ mode stack area. ZI Data - LRAM SVC_STACK Supervisor (SVC) mode stack area. ZI Data - LRAM ABT_STACK Abort (ABT) mode stack area. ZI Data - LRAM TTB MMU conversion table area. ZI Data - LRAM ARM_LIB_HEAP Application heap area. ZI Data - LRAM DATA Area for data with default initial values. RW Data FLASH LRAM All sections of RW data types with section names that are not defined in C sources are allocated to this area. BSS Area for data without default initial values. All sections of ZI data types with section names that are not defined in C sources are allocated to this area. ZI Data - LRAM BSS_AUDIO_OUT_BUF Section that stores audio data. ZI Data - LRAM [Note] 1. In load areas and execution areas described in the table, FLASH and LRAM denote areas for the R flash memory and the large-capacity on-chip RAM, respectively. [Note] 2. The names of sections are basically the same as those of their respective areas; however, RESET_HANDLER, InRoot, CODE_FPU_INIT, CODE_RESET, CODE, CONST, CODE_HANDLER, DATA, and BSS each consist of multiple sections. For details of areas and sections, refer to manuals of ARM Compiler toolchain. R01AN2076EJ0101 Rev.1.01 Page 13 of 63

14 H'FFFF FFFF RZ/A1H group address space H'609F FFFF Section arrangement (load view) Memory allocation after scatter loading Section arrangement (execution view) H'60A H' Large-capacity onchip RAM (10MB) H' H' Clear to 0 BSS_AUDIO_OUT_BUF H' H'209F FFFF Clear to 0 H'200B 8000 Initialize data that have initial values. BSS DATA H' H' H' H' H'2002 E000 H'2002 C000 H' Obtain areas for stacks and the like. Initialize data that have initial values. ARM_LIB_HEAP TTB ABT_STACK SVC_STACK FIQ_STAC IRQ_STACK ARM_LIB_STACK DATA_HANDLER_JMPTBL CODE_HANDLER H' CODE_HANDLER_JMPTBL H' VECTOR_MIRROR_TABLE H' H'03FF FFFF H' DATA DATA_HANDLER_JMPTBL H'20A H' H'1C H' H' Large-capacity onchip RAM (10MB) CODE_HANDLER CODE_HANDLER_JMPTBL CONST CODE CODE_IO_REGRW CODE_RESET CODE_FPU_INIT InRoot Transfer program code that requires high-speed processing to the onchip RAM. CONST CODE CODE_IO_REGRW CODE_RESET CODE_FPU_INIT InRoot H'0C H' H' H' CS0space (64MB) H' H' H' CODE_BASIC_SETUP RESER_HANDLER VECTOR_MIRROR_TABLE VECTOR_TABLE Transfer the exception handling vector to the on-chip RAM. CODE_BASIC_SETUP RESER_HANDLER VECTOR_TABLE Figure 6.3 Section Allocation R01AN2076EJ0101 Rev.1.01 Page 14 of 63

15 6.2.2 MMU Settings The MMU is set to manage 4 GB of memory, starting at address H , in 1-MB units according to the memory mappings for the hardware resources for RZ/A1H7S72100 CPU board RTK772100BC00000BR (the MMU settings are configured in the ttb_init.s file). When this memory area is customized for your system, the minimum unit should be 1 MB. Table 6.3 shows the MMU Settings for the sample program. Table 6.3 MMU Settings Definition name Description Address Size Memory type M_SIZE_R CS0 and CS1 spaces (R flash memory) H to H 07FFFFFF 128MB Normal memory with L1 cache enabled M_SIZE_SDRAM CS2 and CS3 spaces (SDRAM) H to H 0FFFFFFF M_SIZE_CS45 CS4 and CS5 spaces H to H 17FFFFFF M_SIZE_SPI SPI multi-io-bus spaces 1 and 2 M_SIZE_RAM M_SIZE_IO_1 Large-capacity on-chip RAM space On-chip peripheral module and reserved area H to H 17FFFFFF H to H 209FFFFF H 20A00000 to H 3FFFFFFF M_SIZE_R_M CS0 and CS1 mirror spaces H to H 47FFFFFF M_SIZE_SDRAM_M CS2 and CS3 mirror spaces H to H 4FFFFFFF M_SIZE_CS45_M CS4 and CS5 mirror spaces H to H 57FFFFFF M_SIZE_SPI_M M_SIZE_RAM_M M_SIZE_IO_2 SPI multi-io-bus mirror spaces 1 and 2 Large-capacity on-chip RAM mirror space Mirror spaces for both on-chip peripheral module and reserved area H to H 57FFFFFF H to H 609FFFFF H 60A00000 to H 7FFFFFFF 128MB 128MB 128MB 10MB 502MB 128MB 128MB 128MB 128MB 10MB 2550MB Normal memory with L1 cache enabled Strong reorder memory with L1 cache disabled Normal memory with L1 cache enabled Normal memory with L1 cache enabled Strong reorder memory with L1 cache disabled Normal memory with L1 cache disabled Normal memory with L1 cache disabled Strong reorder memory with L1 cache disabled Normal memory with L1 cache disabled Normal memory with L1 cache disabled Strong reorder memory with L1 cache disabled R01AN2076EJ0101 Rev.1.01 Page 15 of 63

16 6.3 Interrupts Table 6.4 shows interrupts for the sample code. Table 6.4 Interrupts for the Sample Code Interrupt (factor ID) Priority Process Outline SSII0 (172) 4 When a SSI error (transmission underflow error, reception overflow error) is detected, this interrupt occurs. It is used to perform a soft reset of the SSI module to reset SSI. After that, SSI transmission and reception operations are performed. DMAINT0 (41) 5 When an audio data transfer is completed (SSI -> buffer), this interrupt occurs. The period is about 10 ms, and this interrupt is used to assign the start address of the next buffer to the DMAC destination address register. DMAINT1 (42) 5 When an audio data transfer is completed (buffer -> SSI), this interrupt occurs. The period is about 10 ms, and this interrupt is used to assign the start address of the next buffer to the DMAC source address register. OSTMI1 (135) 6 This interrupt occurs every five seconds. It is used as a trigger to stop playback. R01AN2076EJ0101 Rev.1.01 Page 16 of 63

17 6.4 Basic Data Types Table 6.5 shows basic data types for the sample code. Table 6.5 Basic Data Types for the Sample Code Symbol Description char_t 8-bit character bool_t Logical data type. The value is true (= 1) or false (= 0). int_t Signed integer for high-speed operation. The signed integer for this sample code is a 32-bit integer. int8_t 8-bit signed integer int16_t 16-bit signed integer int32_t 32-bit signed integer int64_t 64-bit signed integer uint8_t 8-bit unsigned integer uint16_t 16-bit unsigned integer uint32_t 32-bit unsigned integer uint64_t 64-bit unsigned integer float32_t 32-bit floating point float64_t 64-bit floating point float128_t 128-bit floating point R01AN2076EJ0101 Rev.1.01 Page 17 of 63

18 6.5 List of Constants/Error Codes Table 6.6 to Table 6.11 list constants used in the sample program, and Table 6.12 lists error codes of the sample program. Table 6.6 Constants for the Sample Code (1) Constant Setting Description AUDIO_BUFF_SIZE 1764 Audio buffer byte size. SAMPLE_MODE_IDLE 0 Idle state. SAMPLE_MODE_PLAY 1 Playback state. SAMPLE_MODE_MAX 2 Number of states. SAMPLE_EVENT_OFF 0 Timer events are disabled. SAMPLE_EVENT_ON 1 Timer events are enabled. SAMPLE_EVENT_MAX 2 Number of timer events. SSI_CHANNEL0 0 SSI Channel 0. This constant is used to specify the SSI channel number to be used. SSI_CHANNEL1 1 SSI Channel 1. This constant is used to specify the SSI channel number to be used. SSI_CHANNEL2 2 SSI Channel 2. This constant is used to specify the SSI channel number to be used. SSI_CHANNEL3 3 SSI Channel 3. This constant is used to specify the SSI channel number to be used. SSI_CHANNEL4 4 SSI Channel 4. This constant is used to specify the SSI channel number to be used. SSI_CHANNEL5 5 SSI Channel 5. This constant is used to specify the SSI channel number to be used. SSI_CHANNEL_MAX 6 Number of SSI channels. SSI_RX 1 SSI reception (SSI -> buffer) operation. This constant is used to choose SSI reception operation. SSI_TX 2 SSI transmission (buffer -> SSI) operation. This constant is used to choose SSI transmission operation. SSI_FULLDUPLEX 3 SSI full-duplex operation. This constant is used to choose SSI full-duplex operation. SSI_ID_SSII0 172 SSI channel 0 interrupt ID. This constant is used to specify the SSI interrupt ID to be used. SSI_ID_SSII1 175 SSI channel 1 interrupt ID. This constant is used to specify the SSI interrupt ID to be used. SSI_ID_SSII2 178 SSI channel 2 interrupt ID. This constant is used to specify the SSI interrupt ID to be used. SSI_ID_SSII3 180 SSI channel 3 interrupt ID. This constant is used to specify the SSI interrupt ID to be used. R01AN2076EJ0101 Rev.1.01 Page 18 of 63

19 Table 6.7 Constants for the Sample Code (2) Constant Setting Description SSI_ID_SSII4 183 SSI channel 4 interrupt ID. This constant is used to specify the SSI interrupt ID to be used. SSI_ID_SSII5 185 SSI channel 5 interrupt ID. This constant is used to specify the SSI interrupt ID to be used. SSI_SSICR_TUIEN_INIT_VALUE H The initial setting of the TUIEN bit of a SSI control register. (Transmission underflow interrupt is disabled.) SSI_SSICR_TOIEN_INIT_VALUE H The initial setting of the TOIEN bit of a SSI control register. (Transmission overflow interrupt is disabled.) SSI_SSICR_RUIEN_INIT_VALUE H The initial setting of the RUIEN bit of a SSI control register. (Reception underflow interrupt is disabled.) SSI_SSICR_ROIEN_INIT_VALUE H The initial setting of the ROIEN bit of a SSI control register. (Reception overflow interrupt is disabled.) SSI_SSICR_IIEN_INIT_VALUE H The initial setting of the IIEN bit of a SSI control register. (Idle mode interrupt is disabled.) SSI_SSICR_MUEN_INIT_VALUE H The initial setting of the MUEN bit of a SSI control register. (Not in a mute state.) SSI_SSICR_TEN_INIT_VALUE H The initial setting of the TEN bit of a SSI control register. (Transmission operation is disabled.) SSI_SSICR_REN_INIT_VALUE H The initial setting of the REN bit of a SSI control register. (Reception operation is disabled.) SSI_SSICR0_CKS_VALUE H The setting of the CKS bit of the SSI channel 0 control register. (Oversampling clock: AUDIO_X1) This setting is defined in drv_ssif_user.h. Change it as necessary. SSI_SSICR0_CHNL_VALUE H The setting of the CHNL bit of the SSI channel 0 control register. (Channel: Each system word consists of one channel.) This setting is defined in drv_ssif_user.h. Change it as necessary. SSI_SSICR0_DWL_VALUE H The setting of the DWL bit of the SSI channel 0 control register. (Data word length: 16 bits) This setting is defined in drv_ssif_user.h. Change it as necessary. SSI_SSICR0_SWL_VALUE H The setting of the SWL bit of the SSI channel 0 control register. (System word length: 32 bits) This setting is defined in drv_ssif_user.h. Change it as necessary. SSI_SSICR0_SCKD_VALUE H The setting of the SCKD bit of the SSI channel 0 control register. (Serial bit clock direction: master mode) This setting is defined in drv_ssif_user.h. Change it as necessary. SSI_SSICR0_SWSD_VALUE H The setting of the SWSD bit of the SSI channel 0 control register. (Serial WS direction: master mode) This setting is defined in drv_ssif_user.h. Change it as necessary. R01AN2076EJ0101 Rev.1.01 Page 19 of 63

20 Table 6.8 Constants for the Sample Code (3) Constant Setting Description SSI_SSICR0_SCKP_VALUE H The setting of the SCKP bit of the SSI channel 0 control register. (Serial bit clock polarity: SSIWS and SSIDATA are changed on a falling edge of SSISCK.) This setting is defined in drv_ssif_user.h. Change it as necessary. SSI_SSICR0_SWSP_VALUE H The setting of the SWSP bit of the SSI channel 0 control register. (Serial WS polarity: SSIWS is low level on the 1st channel and high level on the 2nd channel.) This setting is defined in drv_ssif_user.h. Change it as necessary. SSI_SSICR0_SPDP_VALUE H The setting of the SPDP bit of the SSI channel 0 control register. (Serial padding polarity: low level) This setting is defined in drv_ssif_user.h. Change it as necessary. SSI_SSICR0_SDTA_VALUE H The setting of the SDTA bit of the SSI channel 0 control register. (Serial data alignment: serial data and padding bits are transmitted and received in this order.) This setting is defined in drv_ssif_user.h. Change it as necessary. SSI_SSICR0_PDTA_VALUE H The setting of the PDTA bit of the SSI channel 0 control register. (Parallel data alignment: the lower part of parallel data (SSITDR, SSIRDR) is first transmitted and received.) This setting is defined in drv_ssif_user.h. Change it as necessary. SSI_SSICR0_DEL_VALUE H The setting of the DEL bit of the SSI channel 0 control register. (Serial data delay: a delay of one clock cycle between SSIWS and SSIDATA.) This setting is defined in drv_ssif_user.h. Change it as necessary. SSI_SSICR0_CKDV_VALUE H The setting of the CKDV bit of the SSI channel 0 control register. (Serial oversampling clock division ratio: AUDIOφ/8.) This setting is defined in drv_ssif_user.h. Change it as necessary. SSI_SSICR1_CKS_VALUE H The setting of the CKS bit of the SSI channel 1 control register. (Oversampling clock: AUDIO_X1.) This setting is defined in drv_ssif_user.h. Change it as necessary. SSI_SSICR1_CHNL_VALUE H The setting of the CHNL bit of the SSI channel 1 control register. (Channel: each system word consists of one channel.) This setting is defined in drv_ssif_user.h. Change it as necessary. SSI_SSICR1_DWL_VALUE H The setting of the DWL bit of the SSI channel 1 control register. (Data word length: 16 bits.) This setting is defined in drv_ssif_user.h. Change it as necessary. R01AN2076EJ0101 Rev.1.01 Page 20 of 63

21 Table 6.9 Constants for the Sample Code (4) Constant Setting Description SSI_SSICR1_SWL_VALUE H The setting of the SWL bit of the SSI channel 1 control register. (System word length: 32 bits.) This setting is defined in drv_ssif_user.h. Change it as necessary. SSI_SSICR1_SCKD_VALUE H The setting of the SCKD bit of the SSI channel 1 control register. (Serial bit clock direction: master mode.) This setting is defined in drv_ssif_user.h. Change it as necessary. SSI_SSIFCR_TIE_INIT_VALUE H The initial setting of the TIE bit of a SSI FIFO control register. (Transmission interrupt enable: transmitted-data-empty interrupt (TXI) requests are disabled.) SSI_SSIFCR_RIE_INIT_VALUE H The initial setting of the RIE bit of a SSI FIFO control register. (Reception interrupt enable: received-data-full interrupt (RXI) requests are disabled.) SSI_SSIFCR_TFRST_INIT_VALU E SSI_SSIFCR_RFRST_INIT_VALU E H The initial setting of the TFRST bit of a SSI FIFO control register. (Transmission FIFO data register reset: reset operation is enabled.) H The initial setting of the RFRST bit of a SSI FIFO control register. (Reception FIFO data register reset: reset operation isenabled.) SSI_SSIFCR0_TTRG_VALUE H The initial setting of the TTRG bit of the SSI channel 0 FIFO control register. (Transmitted data count trigger: 7.) This setting is defined in drv_ssif_user.h. Change it as necessary. SSI_SSIFCR0_RTRG_VALUE H The initial setting of the RTRG bit of the SSI channel 0 FIFO control register. (Received data count trigger: 1.) This setting is defined in drv_ssif_user.h. Change it as necessary. SSI_SSITDMR_RXDMUTE_INIT_ VALUE H The initial setting of the RXDMUTE bit of a SSI TDM mode register. (Received direct data MUTE setting: received data is output directly.) SSI_SSITDMR_TDM_INIT_VALUE H The initial setting of the TDM bit of a SSI TDM mode register. (DM mode: TDM mode is disabled.) SSI_SSITDMR0_CONT_VALUE H The initial setting of the CONT bit of the SSI channel 0 TDM mode register. (WS continue mode: WS continue mode is disabled.) This setting is defined in drv_ssif_user.h. Change it as necessary. SSI_ERR_INT_LV 4 SSI error (transmission underflow error, reception overflow error) interrupt level. DMA_TRNEND_INT_LV 5 DMA transfer end interrupt level. SSI_IDLE_WAIT 45 Wait time for transition to an idle state during an attempt to stop SSI (fail-safe function) When stopping SSI, it is necessary to wait until the SSI module enters an idle state. Because of a possible failure in transition to an idle state, this setting is used to determine the wait time as a fail-safe means. This setting is defined in drv_ssif_user.h. Change it as necessary. R01AN2076EJ0101 Rev.1.01 Page 21 of 63

22 Table 6.10 Constants for the Sample Code (5) Constant Setting Description DMA_CHANNEL0 0 DMA channel 0. This constant is used to specify the DMA channel number to be used. DMA_CHANNEL1 1 DMA channel 1. This constant is used to specify the DMA channel number to be used. DMA_CHANNEL2 2 DMA channel 2. This constant is used to specify the DMA channel number to be used. DMA_CHANNEL3 3 DMA channel 3. This constant is used to specify the DMA channel number to be used. DMA_CHANNEL4 4 DMA channel 4. This constant is used to specify the DMA channel number to be used. DMA_CHANNEL5 5 DMA channel 5. This constant is used to specify the DMA channel number to be used. DMA_CHANNEL6 6 DMA channel 6. This constant is used to specify the DMA channel number to be used. DMA_CHANNEL7 7 DMA channel 7. This constant is used to specify the DMA channel number to be used. DMA_CHANNEL8 8 DMA channel 8. This constant is used to specify the DMA channel number to be used. DMA_CHANNEL9 9 DMA channel 9. This constant is used to specify the DMA channel number to be used. DMA_CHANNEL10 10 DMA channel 10. This constant is used to specify the DMA channel number to be used. DMA_CHANNEL11 11 DMA channel 11. This constant is used to specify the DMA channel number to be used. DMA_CHANNEL12 12 DMA channel 12. This constant is used to specify the DMA channel number to be used. DMA_CHANNEL13 13 DMA channel 13. This constant is used to specify the DMA channel number to be used. DMA_CHANNEL14 14 DMA channel 14. This constant is used to specify the DMA channel number to be used. DMA_CHANNEL15 15 DMA channel 15. This constant is used to specify the DMA channel number to be used. R01AN2076EJ0101 Rev.1.01 Page 22 of 63

23 Table 6.11 Constants for the Sample Code (6) Constant Setting Description N0_SIDE 0 When updating DMA Next0 registers, this constant is used to specify the registers to be updated. N1_SIDE 1 When updating DMA Next1 registers, this constant is used to specify the registers to be updated. DMA_TRANSFER_SIZE_16 H DMA transfer size is 16 bits. DMA_TRANSFER_SIZE_32 H DMA transfer size is 32 bits. DMA_STOP_WAIT 200 Wait time for the DMA module to stop during an attempt to stop DMA (fail-safe function) When stopping DMA, it is necessary to wait for the DMA module to stop. To prepare for a possible failure of DMA to be stopped, this setting is used to determine the wait time as a fail-safe means. This setting must be adjusted by the user. R01AN2076EJ0101 Rev.1.01 Page 23 of 63

24 Table 6.12 Error Codes for the Sample Code Constant Setting Description DEVDRV_SUCCESS 0 Value returned if operation is successfully completed. DEVDRV_ERROR -1 Value returned if operation has failed. DEVDRV_QUEUE_EMPTY -10 Value returned if no buffer is registered in the queue. DEVDRV_QUEUE_FULL -11 Value returned if the queue is full (a buffer cannot be registered in the queue). R01AN2076EJ0101 Rev.1.01 Page 24 of 63

25 6.6 List of Structures/Unions Figure 6.4 to Figure 6.6 show the structures and unions used in the sample program. typedef struct{ Function pointer to be executed in the main routine according to the state. int32_t (* SampleFunc)(void); /* Function pointer */ } sample_ssif_play_t; Figure 6.4 Structures and Unions Used in the Sample Program (Main) typedef struct{ SSI module register addresses volatile uint32_t *ssicr; /* control register(ssicr) */ volatile uint32_t *ssifcr; /* FIFO control register(ssifcr) */ volatile uint32_t *ssisr; /* status register(ssisr) */ volatile uint32_t *ssifsr; /* FIFO status register(ssifsr) */ volatile uint32_t *ssiftdr; /* Tx FIFO data register(ssiftdr) */ volatile uint32_t *ssifrdr; /* Rx FIFO data register(ssifrdr) */ volatile uint32_t *ssitdmr; /* TDM mode register(ssitdmr) */ } ssif_reg_t; typedef struct DMAC channel numbers used by SSI modules. { uint32_t txdma_channel; /* DMA registration situation */ uint32_t rxdma_channel; /* DMA registration situation */ } ssi_regist_info_t; Figure 6.5 Structures and Unions Used in the Sample Program (SSI Module) R01AN2076EJ0101 Rev.1.01 Page 25 of 63

26 typedef struct{ DMA module register addresses. volatile uint32_t *n0sa; /* Next0 Source Address Register(N0SA) */ volatile uint32_t *n0da; /* Next0 Destination Address Register(N0DA) */ volatile uint32_t *n0tb; /* Next0 Transaction Byte Register(N0TB) */ volatile uint32_t *n1sa; /* Next1 Source Address Register(N1SA) */ volatile uint32_t *n1da; /* Next1 Destination Address Register(N1DA) */ volatile uint32_t *n1tb; /* Next1 Transaction Byte Register(N1TB) */ volatile uint32_t *chstat; /* Channel Status Register(CHSTAT) */ volatile uint32_t *chctrl; /* Channel Control Register(CHCTRL) */ volatile uint32_t *chcfg; /* Channel Configuration Register(CHCFG) */ volatile uint32_t *chitvl; /* Channel Interval Register(chitvl) */ volatile uint32_t *chext; /* Channel Extension Register(CHEXT) */ volatile uint32_t *dstat_en; /* DMA Status EN Register(DSTAT_EN) */ volatile uint32_t *dctrl; /* DMA Control Register(DCTRL) */ volatile uint32_t *dmars; /* DMA Expansion resource selector(dmars) */ } dma_reg_t; typedef struct { Control information to be used in the DMA driver. uint32_t direct; /* Transfer direction */ uint32_t module_name; /* Name of transmit peripheral module */ uint32_t module_channel; /* Channel number of the DMA */ bool_t transfer_continue; /* Transfer continuation */ fp_type user_trnend_func; /* Callback interrupt function */ } dma_regist_info_t; Figure 6.6 Structures and Unions Used in the Sample Program (DMA Module) R01AN2076EJ0101 Rev.1.01 Page 26 of 63

27 6.7 List of Variables Table 6.13 and Table 6.14 list static variables, and Table 6.15 lists const type variables. Table 6.13 Static Variables (1) Type Variable Name Contents Function Used uint32_t audio_out_buf Buffer for storing data received from the audio codec. To the audio codec, data received by this buffer is transmitted. This buffer consists of four sides, and each time a transmission or reception is completed, the buffer is switched between the sides to perform successive transmissions and receptions. uint32_t mute_buf Buffer for storing mute data. When transmitting mute data to the audio codec, the mute data is transmitted from this buffer. uint32_t g_txbuf_side Variable for controlling the transmission side of audio_out_buf. The transmission side is switched during transmission operations as follows: side 2 -> side 3 -> side 0 -> side 1 -> side 2 -> side 3 -> side 0. uint32_t g_rxbuf_side Variable for controlling the reception side of audio_out_buf. The reception side is switched during reception operations as follows: side 0 -> side 1 -> side 2 -> side 3 -> side 0 -> side 1 -> side 2. uint32_t sample_rx_flag Variable for indicating that a transfer of audio data to one side (1764 bytes) of audio_out_buf is completed. uint32_t sample_timer_ event This variable is used to control switching operation to start and stop playback. This variable is set by an OSTM interrupt (five seconds), and is referred to by the main routine. The main routine stops playback according to this variable. Sample_Main Sample_ssif_StartPlay Sample_ssif_Play DMA_DmaInit DMA_DmaTxInit DMA_TxRegSet DMA_CheckDmaMute DmaInt Sample_Set_TxbufSide Sample_Get_TxbufSide Sample_Updata_TxbufS ide Sample_Set_RxbufSide Sample_Get_RxbufSide Sample_Updata_RxbufS ide Sample_Main Sample_ssif_StartPlay Sample_ssif_Play Sample_RxDMA_Interru pt Sample_Clear_eventFla g Sample_Get_eventFlag Sample_OSTM1_Interru pt R01AN2076EJ0101 Rev.1.01 Page 27 of 63

28 Table 6.14 Static Variables (2) Type Variable Name Contents Function Used ssi_regist_info_t ssi_regist_info This variable is used to control the DMA channel number to be used by SSI modules. dma_regist_info_t dma_regist This variable is used to manage DMA module control information related to SSI. queue_inf_t queue This variable is used to manage information on the transmission and reception buffers specified by the user*. * Information such as the start address and the byte size of transmission and reception buffers. Values to be specified in DMA Next registers are a buffer address and a transfer size that are stored in this variable. R_SSI_RamInit R_SSI_DmaInit R_SSI_DmaStart R_SSI_SsiDmaStop R_SSI_SsiDmaAdsSet SsiErrInt DMA_DmaInit DMA_DmaAdsSet DMA_DmaStart DMA_DmaTxInit DMA_DmaRxInit DMA_TxRegSet DMA_RxRegSet DmaInt DMA_DmaAdsSet DMA_QueueInit DMA_DmaStop DMA_TxRegSet DMA_RxRegSet QueueSet DmaInt R01AN2076EJ0101 Rev.1.01 Page 28 of 63

29 Table 6.15 Const Type Variables Type Variable Name Contents Function Used ssif_reg_t Ssif Stores register addresses of each SSI module. uint16_t ssi_int_id Stores the interrupt ID of each SSI module. uint32_t ssi_ssicr_reg Stores the initial setting of each SSI control register. uint32_t ssi_ssifcr_reg Stores the initial setting of each SSI FIFO control register. uint32_t ssi_ssitdmr_reg Stores the initial setting of each SSI TDM mode register. uint8_reg_bit_inf_t ssi_swrstcr1_bit_ tbl Stores the amount of masking and shifting of software reset bits for each SSI module. uint32_reg_bit_inf_t ssi_ssifcr_bit_tbl Stores the amount of masking and shifting of TIE, RIE, TFRST, and RFRST bits in SSI FIFO control registers. uint32_reg_bit_inf_t ssi_ssisr_bit_tbl Stores the amount of masking and shifting of TUIRQ, ROIRQ, and IIRQ bits in SSI status registers. uint32_reg_bit_inf_t ssi_ssicr_bit_tbl Stores the amount of masking and shifting of TUIEN, ROIEN, TEN, and REN bits in SSI control registers. dma_reg_t g_dma_reg_tbl Stores register addresses of each DMA module. uint16_t dma_ssif_dmars_ reg Stores the initial setting of each DMA extended resource selector register. uint16_t dma_int_id Stores the interrupt ID of each DMA module. R_SSI_SsiInit R_SSI_SsiStart R_SSI_SsiStop R_SSI_SsiDmaAdsSet SsiErrInt R_SSI_SsiInit R_SSI_SsiStart R_SSI_SsiStop R_SSI_SsiInit R_SSI_SsiStop SsiErrInt R_SSI_SsiInit R_SSI_SsiStop SsiErrInt R_SSI_SsiInit R_SSI_SsiStop R_SSI_SsiInit R_SSI_SsiStop SsiErrInt R_SSI_SsiStart R_SSI_SsiStop R_SSI_SsiStart R_SSI_SsiStop R_SSI_SsiStart R_SSI_SsiStop R_SSI_SsiDmaAdsSet SsiErrInt DMA_DmaStart DMA_DmaStop DMA_DmaTxInit DMA_DmaRxInit DMA_TxRegSet DMA_RxRegSet DmaInt DMA_DmaTxInit DMA_DmaRxInit DMA_DmaStart DMA_DmaStop R01AN2076EJ0101 Rev.1.01 Page 29 of 63

30 6.8 List of Functions Table 6.16 list the List of Functions. Table 6.16 List of Functions Function Name Page Number R_SSI_RamInit 31 R_SSI_SsiInit 31 R_SSI_DmaInit 32 R_SSI_SsiStart 33 R_SSI_DmaStart 34 R_SSI_SsiStop 35 R_SSI_SsiDmaStop 36 R_SSI_SsiDmaAdsSet 37 R01AN2076EJ0101 Rev.1.01 Page 30 of 63

31 6.9 Function Specifications This section contains the specifications for the functions that are implemented in the sample code R_SSI_RamInit R_SSI_RamInit Synopsis Header Declaration Description This function initializes control information used by the SSI driver. drv_ssif.h drv_ssif_user.h void R_SSI_RamInit(void) This function performs the following operation. - Initialization of control information used by the SSI driver. Be sure to execute this API before executing other APIs. Arguments None None Return value None R_SSI_SsiInit R_SSI_SsiInit Synopsis Header Declaration Description This function initializes a SSI. drv_ssif.h drv_ssif_user.h int32_t R_SSI_SsiInit(uint32_t ssi_channel) This function initializes the SSI specified by the argument ssi_channel. - Make the SSI exit a module standby state. - Perform software rest on the SSI and then release software reset. - Specify settings for SSI pins (SSISCK, SSIWS, and SSIDATA). Provide code for these settings in a user function described in drv_ssif_user.c, according to the SSI to be used. - Initializes the SSI (system word length, data length, transfer size, etc.). The initial settings are described as macros in ssif_user.h. Change them according to the settings to be used. - Specify settings for SSI interrupts (transmission underflow, reception overflow). Arguments uint32_t ssi_channel The channel number of the SSI to be initialized. Return value DEVDRV_SUCCESS: Initialization is successful. DEVDRV_ERROR: Initialization failed. - The channel number of the SSI specified by the argument does not exist. R01AN2076EJ0101 Rev.1.01 Page 31 of 63

32 6.9.3 R_SSI_DmaInit R_SSI_DmaInit Synopsis Header Declaration Description Arguments Return value This function initializes a DMAC. drv_ssif.h drv_ssif_user.h int32_t R_SSI_DmaInit(uint32_t ssi_channel, uint32_t dma_channel, uint32_t direct, fp_type func) This function initializes the DMAC to be used for SSI transmission and reception operations. The argument direct selects the transfer direction between transmission and reception. If the value of direct is SSI_TX, transmission (buffer -> SSI) is selected and the DMAC specified by the argument dma_channel is initialized accordingly. Also, if the value of direct is SSI_RX, reception (SSI -> buffer) is selected and the DMAC specified by the argument dma_channel is initialized accordingly. Configuration of a DMAC is as follows: - Set the DMA mode to register mode. - Set the DMA transfer mode to single transfer mode. - Set the DMA transfer size to 32 bits. - Set the levels of DMAC ACK and DREQ signals. - Select SSI transmitted-data-empty interrupt as the factor for activating the DMA (buffer -> SSI). - Select SSI received-data-full interrupt as the factor for activating the DMA (SSI -> buffer). - Specify settings for DMA transfer end interrupt. - Register the callback function specified by the argument func so that it is called after a transfer is completed. uint32_t ssi_channel The channel number of the SSI to be initialized. (0-5) uint32_t dma_channel The channel number of the DMA to be initialized. (0-15) uint32_t direct Selection from transmission and reception (SSI_TX: void *func transmission, SSI_RX: reception) The callback function to be called upon completion of a transfer. DEVDRV_SUCCESS: Initialization is successful. DEVDRV_ERROR: Initialization failed. - The channel number of the SSI or the DMAC does not exist. - An attempt is being made to reconfigure the DMAC that has already been initialized. R01AN2076EJ0101 Rev.1.01 Page 32 of 63

33 6.9.4 R_SSI_SsiStart R_SSI_SsiStart Synopsis Header Declaration Description This function activates a SSI. drv_ssif.h drv_ssif_user.h int32_t R_SSI_SsiStart(uint32_t ssi_channel, uint32_t direct) This function specifies settings for activating a SSI. The argument direct selects the transfer direction between transmission and reception. If the value of direct is SSI_TX, transmission (buffer -> SSI) is selected, and the SSI specified by the argument ssi_channel is configured to enable transmission. Also, if the value of direct is SSI_RX, reception (SSI -> buffer) is selected, and the SSI specified by the argument ssi_channel is configured to enable reception. The SSI specified by the argument is configured as follows: If the value of direct is SSI_TX : - Initialize the transmission FIFO. - Clear the error interrupt status (transmission underflow). - Enable error interrupt (transmission underflow). - Enable transmitted-data-empty interrupt. - Enable transmission. If the value of direct is SSI_RX : - Initialize the reception FIFO. - Clear the error interrupt status (reception overflow). - Enable an error interrupt (reception overflow). - Enable received-data-full interrupt. - Enable SSI reception. If the value of direct is SSI_RX SSI_TX. - Initialize the transmission and reception FIFOs. - Clear the error interrupt status (reception overflow, transmission overflow). - Enable error interrupt (reception overflow, transmission underflow). - Enable transmitted-data-empty interrupt and received-data-full interrupt. - Enable SSI transmission and reception. Arguments Return value uint32_t ssi_channel uint32_t direct The channel number of the SSI to be initialized. (0-5) Selection from transmission and reception (SSI_TX: transmission, SSI_RX: reception) DEVDRV_SUCCESS: Activation is successful. DEVDRV_ERROR: Activation failed. - The channel number of the SSI does not exist. - A macro other than SSI_TX and SSI_RX has been assigned to direct. R01AN2076EJ0101 Rev.1.01 Page 33 of 63

34 6.9.5 R_SSI_DmaStart R_SSI_DmaStart Synopsis Header Declaration Description This function activates a DMAC. drv_ssif.h drv_ssif_user.h int32_t R_SSI_DmaStart(uint32_t ssi_channel, uint32_t direct) This function activates a DMAC, and if transmission is selected (the value of direct is SSI_TX), it enables transmission of data to a SSI. If reception is selected (the value of direct is SSI_RX), it enables reception of data from the SSI. If transmission is selected (direct: SSI_TX), execute the R_SSI_SsiDmaAdsSet function to register a buffer in the queue before executing this function. If this function is executed without executing the R_SSI_SsiDmaAdsSet function, mute data is output. If reception is selected (direct: SSI_RX), execute the R_SSI_SsiDmaAdsSet function to register a buffer in the queue before this function. If this function is executed without executing the R_SSI_SsiDmaAdsSet function, a value indicating an error is returned and reception is not started. Also, before executing this function, be sure to use the R_SSI_SsiInit function and the R_SSI_DmaInit function to initialize the SSI and the DMAC. Arguments Return value uint32_t ssi_channel uint32_t direct The channel number of the SSI to be initialized. (0-5) Selection from transmission and reception (SSI_TX: transmission, SSI_RX: reception) DEVDRV_SUCCESS: Activation is successful. DEVDRV_ERROR: Activation failed. - The channel number of the SSI does not exist. - A macro other than SSI_TX and SSI_RX has been assigned to direct. - The DMAC has not been initialized by using the initialization function. - With reception selected, no buffer has been registered using the R_SSI_SsiDmaAdsSet function. R01AN2076EJ0101 Rev.1.01 Page 34 of 63

35 6.9.6 R_SSI_SsiStop R_SSI_SsiStop Synopsis Header Declaration Description This function stops a SSI. drv_ssif.h drv_ssif_user.h int32_t R_SSI_SsiStop(uint32_t ssi_channel) This function stops operation of the SSI specified by the argument ssi_channel. For transmitter (transmission) operation: - Stop transmission process. - Disable transmitted-data-empty interrupt. - Disable error interrupt (transmission underflow error). - Wait until the SSI enters an idle state. - Perform software rest on the SSI specified by the argument. For receiver (reception) operation: - Stop reception process. - Disable received-data-full interrupt. - Disable error interrupt (reception overflow error). - Wait until the SSI enters an idle state. - Perform software reset on the SSI specified by the argument. For transceiver (full-duplex communication) operation: - Stop transmission and reception process. - Disable transmitted-data-empty interrupt and received-data-full interrupt. - Disable error interrupt (transmission underflow error, reception overflow error). - Wait until the SSI enters an idle state. - Perform software reset on the SSI specified by the argument. Arguments uint32_t ssi_channel The channel number of the SSI to be initialized. (0-5) Return value DEVDRV_SUCCESS: SSI successfully stopped. DEVDRV_ERROR: SSI failed to stop. - The channel number of the SSI does not exist. R01AN2076EJ0101 Rev.1.01 Page 35 of 63

36 6.9.7 R_SSI_SsiDmaStop R_SSI_SsiDmaStop Synopsis Header Declaration Description This function stops SSI transmission and reception. drv_ssif.h drv_ssif_user.h int32_t R_SSI_SsiDmaStop(uint32_t ssi_channel) This function stops operation of the SSI specified by the argument ssi_channel. For transmitter (transmission) operation: - Stop the DMAC (buffer -> SSI) related to the SSI specified by an argument. Then, set the source address register to specify a mute buffer, and start output of mute data. For receiver (reception) operation: - Stop reception process. - Disable received-data-full interrupt. - Disable error interrupt (reception overflow error). - Wait until the SSI enters an idle state. - Perform software reset on the SSI specified by an argument. For transceiver (full-duplex communication): - Stop transmission and reception process. - Disable transmitted-data-empty interrupt and received-data-full interrupt. - Disable error interrupt (transmission underflow error, reception overflow error). - Wait until the SSI enters an idle state. - Perform software reset on the SSI specified by an argument. Arguments Return value uint32_t ssi_channel uint32_t direct The channel number of the SSI to be initialized. (0-5) Selection from transmission and reception (SSI_TX: transmission, SSI_RX: reception) DEVDRV_SUCCESS: SSI successfully stopped. DEVDRV_ERROR: SSI failed to stop. - The channel number of the SSI module does not exist. R01AN2076EJ0101 Rev.1.01 Page 36 of 63

37 6.9.8 R_SSI_SsiDmaAdsSet R_SSI_SsiDmaAdsSet Synopsis Header Declaration Description This function registers a buffer in the queue. drv_ssif.h drv_ssif_user.h int32_t R_SSI_SsiDmaAdsSet( const uint32_t ssi_channel, const uint32_t direct, volatile const void * const buf, const uint32_t buf_size ) This function registers transmission and reception buffers in the queue. If an argument is set for transmission (direct: SSI_TX), it registers a transmission buffer in the queue, or if the argument is set for reception (direct: SSI_RX), it registers a reception buffer in the queue. A four-stage queue is provided separately for transmission and reception. If transmission is selected (direct: SSI_TX), use this function to register a transmission buffer in the queue before a transfer is completed for the transmission buffer already registered in the queue. If registration is not in time, mute data is output. If reception is selected (direct: SSI_RX), register the next reception buffer in the queue before the reception buffer already registered in the queue becomes full. If registration is not in time, the lastly registered reception buffer is overwritten with data. Arguments Return value uint32_t ssi_channel uint32_t direct void * const buf, uint32_t buf_size The channel number of the SSI to be initialized. (0-5) Selection from transmission and reception (SSI_TX: transmission, SSI_RX: reception) The start address of a transmission or reception buffer. The size of a transmission or reception buffer. DEVDRV_SUCCESS: Queue registration is successful. DEVDRV_ERROR: Queue registration failed. - The channel number of the SSI does not exist. DEVDRV_QUEUE_FULL: Registration failed because the queue was full. R01AN2076EJ0101 Rev.1.01 Page 37 of 63

This application note describes the sample driver which is decoded from the JPEG image data, and encoded to the JPEG image data.

This application note describes the sample driver which is decoded from the JPEG image data, and encoded to the JPEG image data. JPEG Codec Unit "JCU" Sample Driver Introduction APPLICATION NOTE R01AN1862EJ0103 Rev.1.03 This application note describes the sample driver which is decoded from the JPEG image data, and encoded to the

More information

RZ/A1LU Group APPLICATION NOTE. Example of Booting from Serial Flash Memory. Abstract. Products. R01AN3093EJ0100 Rev Nov.

RZ/A1LU Group APPLICATION NOTE. Example of Booting from Serial Flash Memory. Abstract. Products. R01AN3093EJ0100 Rev Nov. APPLICATION NOTE RZ/A1LU Group R01AN3093EJ0100 Rev.1.00 Abstract This application note describes an example of booting from the serial flash memory via the SPI multi-i/o bus controller (hereinafter called

More information

RX Family APPLICATION NOTE. Simple I 2 C Module Using Firmware Integration Technology. Introduction. Target Device.

RX Family APPLICATION NOTE. Simple I 2 C Module Using Firmware Integration Technology. Introduction. Target Device. APPLICATION NOTE RX Family R01AN1691EJ0220 Rev. 2.20 Introduction This application note describes the simple I 2 C module using firmware integration technology (FIT) for communications between devices

More information

RX Family APPLICATION NOTE. I 2 C Bus Interface (RIIC) Module Using Firmware Integration Technology. Introduction. Target Device.

RX Family APPLICATION NOTE. I 2 C Bus Interface (RIIC) Module Using Firmware Integration Technology. Introduction. Target Device. I 2 C Bus Interface (RIIC) Module Using Firmware Integration Technology Introduction APPLICATION NOTE R01AN1692EJ0231 Rev. 2.31 This application note describes the I 2 C bus interface (RIIC) module using

More information

1. Overview Ethernet FIT Module Outline of the API API Information... 5

1. Overview Ethernet FIT Module Outline of the API API Information... 5 Introduction APPLICATION NOTE R01AN2009EJ0115 Rev.1.15 This application note describes an Ethernet module that uses Firmware Integration Technology (FIT). This module performs Ethernet frame transmission

More information

Clock Synchronous Control Module for Serial Flash Memory Access Firmware Integration Technology

Clock Synchronous Control Module for Serial Flash Memory Access Firmware Integration Technology APPLICATION NOTE RX Family R01AN2662EJ0234 Rev.2.34 Introduction This application note explains how to control and use serial flash memory with microcontrollers manufactured by Renesas Electronics. Refer

More information

SPI Framework Module Guide

SPI Framework Module Guide Application Note Introduction This module guide will enable you to effectively use a module in your own design. Upon completion of this guide, you will be able to add this module to your own design, configure

More information

SD Mode SD Memory Card Driver Firmware Integration Technology

SD Mode SD Memory Card Driver Firmware Integration Technology APPLICATION NOTE RX Family R01AN4233EJ0202 Rev.2.02 Introduction This application note describes the SD Mode SD Memory Card driver which uses Firmware Integration Technology (FIT). This driver controls

More information

RX Family, RL78 Family

RX Family, RL78 Family Introduction APPLICATION NOTE This application note explains the method of controlling R1EV24xxx, R1EX24xxx, and HN58X24xxx series I 2 C serial EEPROM, manufactured by Renesas Electronics, by using a Renesas

More information

SCI Multi-Mode Module Using Firmware Integration Technology

SCI Multi-Mode Module Using Firmware Integration Technology Introduction APPLICATION NOTE R01AN1815EJ0211 Rev.2.11 This application note describes the serial communications interface (SCI) module which uses Firmware Integration Technology (FIT). This module uses

More information

SpiNNaker Application Programming Interface (API)

SpiNNaker Application Programming Interface (API) SpiNNaker Application Programming Interface (API) Version 2.0.0 10 March 2016 Application programming interface (API) Event-driven programming model The SpiNNaker API programming model is a simple, event-driven

More information

Serial Communication. Simplex Half-Duplex Duplex

Serial Communication. Simplex Half-Duplex Duplex 1.5. I/O 128 Serial Communication Simplex Half-Duplex Duplex 129 Serial Communication Master-Slave Master Master-Multi-Slave Master Slave Slave Slave (Multi-)Master Multi-Slave Master Slave Slave Slave

More information

Updating Program Code by Using Flash Self Programming with CAN Controller

Updating Program Code by Using Flash Self Programming with CAN Controller APPLICATION NOTE V850E2/ML4 R01AN1343EJ0100 Rev.1.00 Abstract This document describes an example to update program code by reprogramming on-chip flash memory in V850E2/ML4 using flash self programming

More information

Bluetooth low energy Protocol Stack

Bluetooth low energy Protocol Stack APPLICATION NOTE R01AN2768EJ0130 Rev.1.30 Introduction This manual describes how to develop an application using the Bluetooth low energy software (hereafter called BLE software), and overview of RWKE

More information

Mobile Operating Systems Lesson 01 Operating System

Mobile Operating Systems Lesson 01 Operating System Mobile Operating Systems Lesson 01 Operating System Oxford University Press 2007. All rights reserved. 1 Operating system (OS) The master control program Manages all software and hardware resources Controls,

More information

Taking Advantage of Using the dmax DMA Engine in Conjunction with the McASP Peripheral on the TMS320C67x DSP

Taking Advantage of Using the dmax DMA Engine in Conjunction with the McASP Peripheral on the TMS320C67x DSP 01001000100000110000001000001100 010010001000 Taking Advantage of Using the dmax DMA Engine in Conjunction with the McASP Peripheral on the TMS30C67x DSP SPRP498 Name: Gaganjot Singh Maur Title: Application

More information

This application note describes the specification of the JPEG codec unit (in the following, JCU) driver of SH7268/SH7269.

This application note describes the specification of the JPEG codec unit (in the following, JCU) driver of SH7268/SH7269. APPLICATION NOTE SH7268/7269 Group JPEG Codec Unit "JCU" Sample Driver R01AN2338EJ0104 Rev. 1.04 Introduction This application note describes the specification of the JPEG codec unit (in the following,

More information

RL78/G14, RL78/G1C, RL78/L12, RL78/L13, RL78/L1C Group

RL78/G14, RL78/G1C, RL78/L12, RL78/L13, RL78/L1C Group APPLICATION NOTE RL78/G14, RL78/G1C, RL78/L12, RL78/L13, RL78/L1C Group Clock Synchronous Single Master Control Software Using CSI Mode of Serial Array Unit Introduction This application note explains

More information

M68HC08 Microcontroller The MC68HC908GP32. General Description. MCU Block Diagram CPU08 1

M68HC08 Microcontroller The MC68HC908GP32. General Description. MCU Block Diagram CPU08 1 M68HC08 Microcontroller The MC68HC908GP32 Babak Kia Adjunct Professor Boston University College of Engineering Email: bkia -at- bu.edu ENG SC757 - Advanced Microprocessor Design General Description The

More information

PCI to SH-3 AN Hitachi SH3 to PCI bus

PCI to SH-3 AN Hitachi SH3 to PCI bus PCI to SH-3 AN Hitachi SH3 to PCI bus Version 1.0 Application Note FEATURES GENERAL DESCRIPTION Complete Application Note for designing a PCI adapter or embedded system based on the Hitachi SH-3 including:

More information

Serial Peripheral Interface Bus SPI

Serial Peripheral Interface Bus SPI Serial Peripheral Interface Bus SPI SPI Bus Developed by Motorola in the mid 1980 s Full-duplex, master-slave serial bus suited to data streaming applications for embedded systems Existing peripheral busses

More information

Special Topics for Embedded Programming

Special Topics for Embedded Programming 1 Special Topics for Embedded Programming ETH Zurich Fall 2018 Reference: The C Programming Language by Kernighan & Ritchie 1 2 Overview of Topics Microprocessor architecture Peripherals Registers Memory

More information

AN Multifunction Serial Interface of FM MCU. Contents. 1 Introduction

AN Multifunction Serial Interface of FM MCU. Contents. 1 Introduction AN99218 Author: Edison Zhang Associated Part Family: FM0+, FM3, FM4 Associated Code Examples: None Related Application Notes: None AN99218 explains the various modes of the multifunction serial (MFS) interface.

More information

1 The Attractions of Soft Modems

1 The Attractions of Soft Modems Application Note AN2451/D Rev. 0, 1/2003 Interfacing a Low Data Rate Soft Modem to the MCF5407 Microprocessor The traditional modem has been a box or an add-on card with a phone connection on one end and

More information

Serial Communication. Simplex Half-Duplex Duplex

Serial Communication. Simplex Half-Duplex Duplex 1.5. I/O 135 Serial Communication Simplex Half-Duplex Duplex 136 Serial Communication Master-Slave Master Master-Multi-Slave Master Slave Slave Slave (Multi-)Master Multi-Slave Master Slave Slave Slave

More information

Product Technical Brief S3C2413 Rev 2.2, Apr. 2006

Product Technical Brief S3C2413 Rev 2.2, Apr. 2006 Product Technical Brief Rev 2.2, Apr. 2006 Overview SAMSUNG's is a Derivative product of S3C2410A. is designed to provide hand-held devices and general applications with cost-effective, low-power, and

More information

1. Specifications Operational Overview of Functions Used Principles of Operation Description of Software...

1. Specifications Operational Overview of Functions Used Principles of Operation Description of Software... APPLICATION NOTE SH7080 Group Introduction This application note describes the serial data transmission function that uses the transmit-fifo-data-empty interrupt source of the SCIF (Serial Communication

More information

Product Technical Brief S3C2412 Rev 2.2, Apr. 2006

Product Technical Brief S3C2412 Rev 2.2, Apr. 2006 Product Technical Brief S3C2412 Rev 2.2, Apr. 2006 Overview SAMSUNG's S3C2412 is a Derivative product of S3C2410A. S3C2412 is designed to provide hand-held devices and general applications with cost-effective,

More information

Application Note, V1.0, Jul AP XC16x. Interfacing the XC16x Microcontroller to a Serial SPI EEPROM. Microcontrollers

Application Note, V1.0, Jul AP XC16x. Interfacing the XC16x Microcontroller to a Serial SPI EEPROM. Microcontrollers Application Note, V1.0, Jul. 2006 AP16095 XC16x Interfacing the XC16x Microcontroller to a Serial SPI EEPROM Microcontrollers Edition 2006-07-10 Published by Infineon Technologies AG 81726 München, Germany

More information

Design and development of embedded systems for the Internet of Things (IoT) Fabio Angeletti Fabrizio Gattuso

Design and development of embedded systems for the Internet of Things (IoT) Fabio Angeletti Fabrizio Gattuso Design and development of embedded systems for the Internet of Things (IoT) Fabio Angeletti Fabrizio Gattuso Microcontroller It is essentially a small computer on a chip Like any computer, it has memory,

More information

EFM32 Series 0: DMA (ARM PrimeCell µdma PL230)

EFM32 Series 0: DMA (ARM PrimeCell µdma PL230) EFM32 Series 0: DMA (ARM PrimeCell µdma PL230) EFM32 - DMA DMA has read/write access to most of the EFM32 memory map Flash writes can not be done in memory map, but through sequenced writes to peripheral

More information

Product Technical Brief S3C2440X Series Rev 2.0, Oct. 2003

Product Technical Brief S3C2440X Series Rev 2.0, Oct. 2003 Product Technical Brief S3C2440X Series Rev 2.0, Oct. 2003 S3C2440X is a derivative product of Samsung s S3C24XXX family of microprocessors for mobile communication market. The S3C2440X s main enhancement

More information

Example of Setting the SCIF for Clocked Synchronous Serial Communication (Full-Duplex Communication)

Example of Setting the SCIF for Clocked Synchronous Serial Communication (Full-Duplex Communication) APPLICATION NOTE Example of Setting the SCIF for Clocked Synchronous Serial Communication (Full-Duplex Communication) Introduction This application note presents an example of configuring the serial communication

More information

Infineon C167CR microcontroller, 256 kb external. RAM and 256 kb external (Flash) EEPROM. - Small single-board computer (SBC) with an

Infineon C167CR microcontroller, 256 kb external. RAM and 256 kb external (Flash) EEPROM. - Small single-board computer (SBC) with an Microcontroller Basics MP2-1 week lecture topics 2 Microcontroller basics - Clock generation, PLL - Address space, addressing modes - Central Processing Unit (CPU) - General Purpose Input/Output (GPIO)

More information

LM3S2D93 ROM USER S GUIDE ROM-LM3S2D93-UG-461. Copyright Texas Instruments Incorporated

LM3S2D93 ROM USER S GUIDE ROM-LM3S2D93-UG-461. Copyright Texas Instruments Incorporated LM3S2D93 ROM USER S GUIDE ROM-LM3S2D93-UG-461 Copyright 2008-2011 Texas Instruments Incorporated Copyright Copyright 2008-2011 Texas Instruments Incorporated. All rights reserved. Stellaris and StellarisWare

More information

CLD SC58x CDC Library v.1.00 Users Guide Users Guide Revision For Use With Analog Devices ADSP-SC58x Series Processors. Closed Loop Design, LLC

CLD SC58x CDC Library v.1.00 Users Guide Users Guide Revision For Use With Analog Devices ADSP-SC58x Series Processors. Closed Loop Design, LLC CLD SC58x CDC Library v.1.00 Users Guide Users Guide Revision 1.00 For Use With Analog Devices ADSP-SC58x Series Processors Closed Loop Design, LLC 748 S MEADOWS PKWY STE A-9-202 Reno, NV 89521 support@cld-llc.com

More information

An SPI Temperature Sensor Interface with the Z8 Encore! SPI Bus

An SPI Temperature Sensor Interface with the Z8 Encore! SPI Bus Application Note An SPI Temperature Sensor Interface with the Z8 Encore! SPI Bus AN012703-0608 Abstract This Application Note provides an overview of Zilog s Z8 Encore! Serial Peripheral Interface (SPI)

More information

Hello, and welcome to this presentation of the STM32 Universal Synchronous/Asynchronous Receiver/Transmitter Interface. It covers the main features

Hello, and welcome to this presentation of the STM32 Universal Synchronous/Asynchronous Receiver/Transmitter Interface. It covers the main features Hello, and welcome to this presentation of the STM32 Universal Synchronous/Asynchronous Receiver/Transmitter Interface. It covers the main features of this USART interface, which is widely used for serial

More information

1. Specification Applicable Conditions Description of Functions Used Principles of Operation... 5

1. Specification Applicable Conditions Description of Functions Used Principles of Operation... 5 APPLICATION NOTE Introduction This application note describes the usage of the I 2 C bus interface 2 (IIC2) module in the multi-master mode. Target Device H8SX/1663 Contents 1. Specification... 2 2. Applicable

More information

HOW TO DIVIDE BOOT AND FLASH AREAS

HOW TO DIVIDE BOOT AND FLASH AREAS HOW TO DIVIDE BOOT AND FLASH AREAS CC-RL C COMPILER FOR RL78 FAMILY Oct 10, 2016 Rev. 2.00 Software Product Marketing Department, Software Business Division Renesas System Design Co., Ltd. R20UT3475EJ0200

More information

Intelop. *As new IP blocks become available, please contact the factory for the latest updated info.

Intelop. *As new IP blocks become available, please contact the factory for the latest updated info. A FPGA based development platform as part of an EDK is available to target intelop provided IPs or other standard IPs. The platform with Virtex-4 FX12 Evaluation Kit provides a complete hardware environment

More information

EE4390 Microprocessors. Lessons 2, 3 68HC12 Hardware Overview, Subsystems, and memory System

EE4390 Microprocessors. Lessons 2, 3 68HC12 Hardware Overview, Subsystems, and memory System EE4390 Microprocessors Lessons 2, 3 68HC12 Hardware Overview, Subsystems, and memory System 1 Overview 68HC12 hardware overview Subsystems Memory System 2 68HC12 Hardware Overview "Copyright of Motorola,

More information

ECE 598 Advanced Operating Systems Lecture 8

ECE 598 Advanced Operating Systems Lecture 8 ECE 598 Advanced Operating Systems Lecture 8 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 15 February 2018 Homework #3 Due. Announcements Homework #4 Posted Soon 1 (Review)

More information

Evaluations proceeds by issuing ping commands on a device connected to the evaluation board and confirming the responses from the board.

Evaluations proceeds by issuing ping commands on a device connected to the evaluation board and confirming the responses from the board. APPLICATION NOTE RZ/T1 Group R01AN3501EJ0110 Rev.1.10 Outline This application note explains a sample program to be run with the Ethernet drivers that support evaluation board provided in the Renesas Starter

More information

Course Introduction. Purpose: Objectives: Content: 27 pages 4 questions. Learning Time: 20 minutes

Course Introduction. Purpose: Objectives: Content: 27 pages 4 questions. Learning Time: 20 minutes Course Introduction Purpose: This course provides an overview of the Direct Memory Access Controller and the Interrupt Controller on the SH-2 and SH-2A families of 32-bit RISC microcontrollers, which are

More information

Implementing In-Application Programming on the ADuC702x

Implementing In-Application Programming on the ADuC702x Implementing In-Application Programming on the ADuC702x By Johnson Jiao [Johnson.Jiao@analog.com] and Raven Xue [Raven.Xue@analog.com] Background The ADuC702x Precision Analog Microcontroller provides

More information

Fredrick M. Cady. Assembly and С Programming forthefreescalehcs12 Microcontroller. шт.

Fredrick M. Cady. Assembly and С Programming forthefreescalehcs12 Microcontroller. шт. SECOND шт. Assembly and С Programming forthefreescalehcs12 Microcontroller Fredrick M. Cady Department of Electrical and Computer Engineering Montana State University New York Oxford Oxford University

More information

Hello, and welcome to this presentation of the STM32 Low Power Universal Asynchronous Receiver/Transmitter interface. It covers the main features of

Hello, and welcome to this presentation of the STM32 Low Power Universal Asynchronous Receiver/Transmitter interface. It covers the main features of Hello, and welcome to this presentation of the STM32 Low Power Universal Asynchronous Receiver/Transmitter interface. It covers the main features of this interface, which is widely used for serial communications.

More information

Hello and welcome to this Renesas Interactive module that provides an overview of the RX DMA Controller

Hello and welcome to this Renesas Interactive module that provides an overview of the RX DMA Controller Hello and welcome to this Renesas Interactive module that provides an overview of the RX DMA Controller 1 The purpose of this Renesas Interactive module is to give you a basic understanding of the RX Direct

More information

LM3S9D81 ROM USER S GUIDE ROM-LM3S9D81-UG-461. Copyright Texas Instruments Incorporated

LM3S9D81 ROM USER S GUIDE ROM-LM3S9D81-UG-461. Copyright Texas Instruments Incorporated LM3S9D81 ROM USER S GUIDE ROM-LM3S9D81-UG-461 Copyright 2008-2011 Texas Instruments Incorporated Copyright Copyright 2008-2011 Texas Instruments Incorporated. All rights reserved. Stellaris and StellarisWare

More information

SCIF Asynchronous Serial Data Transfer Function Using the DTC. 1. Specifications Operational Overview of Functions Used...

SCIF Asynchronous Serial Data Transfer Function Using the DTC. 1. Specifications Operational Overview of Functions Used... Introduction APPLICATION NOTE This application note describes data transmission and reception that uses the internal SCIF (Serial Communication Interface with FIFO) for asynchronous serial transfer and

More information

Using the i.mxrt L1 Cache

Using the i.mxrt L1 Cache NXP Semiconductors Document Number: AN12042 Application Note Rev. 0, 08/2017 Using the i.mxrt L1 Cache 1. Introduction i.mxrt series takes advantage of the ARM Cortex-M7 core with 32K/32K L1 I/D-Cache.

More information

Input/Output Programming

Input/Output Programming Input/Output Programming Chapter 3: Section 3.1, 3.2 Input and output (I/O) programming Communicating with I/O devices Busy-wait I/O Interrupt-driven I/O I/O devices Devices may include digital and non-digital

More information

6 Direct Memory Access (DMA)

6 Direct Memory Access (DMA) 1 License: http://creativecommons.org/licenses/by-nc-nd/3.0/ 6 Direct Access (DMA) DMA technique is used to transfer large volumes of data between I/O interfaces and the memory. Example: Disk drive controllers,

More information

ECE254 Lab3 Tutorial. Introduction to MCB1700 Hardware Programming. Irene Huang

ECE254 Lab3 Tutorial. Introduction to MCB1700 Hardware Programming. Irene Huang ECE254 Lab3 Tutorial Introduction to MCB1700 Hardware Programming Irene Huang Lab3 Requirements : API Dynamic Memory Management: void * os_mem_alloc (int size, unsigned char flag) Flag takes two values:

More information

L2 - C language for Embedded MCUs

L2 - C language for Embedded MCUs Formation C language for Embedded MCUs: Learning how to program a Microcontroller (especially the Cortex-M based ones) - Programmation: Langages L2 - C language for Embedded MCUs Learning how to program

More information

Wireless Sensor Networks. Introduction to the Laboratory

Wireless Sensor Networks. Introduction to the Laboratory Wireless Sensor Networks Introduction to the Laboratory c.buratti@unibo.it +39 051 20 93147 Office Hours: Tuesday 3 5 pm @ Main Building, third floor Credits: 6 Outline MC1322x Devices IAR Embedded workbench

More information

MICROPROCESSOR BASED SYSTEM DESIGN

MICROPROCESSOR BASED SYSTEM DESIGN MICROPROCESSOR BASED SYSTEM DESIGN Lecture 5 Xmega 128 B1: Architecture MUHAMMAD AMIR YOUSAF VON NEUMAN ARCHITECTURE CPU Memory Execution unit ALU Registers Both data and instructions at the same system

More information

Department of Computer Science, Institute for System Architecture, Operating Systems Group. Real-Time Systems '08 / '09. Hardware.

Department of Computer Science, Institute for System Architecture, Operating Systems Group. Real-Time Systems '08 / '09. Hardware. Department of Computer Science, Institute for System Architecture, Operating Systems Group Real-Time Systems '08 / '09 Hardware Marcus Völp Outlook Hardware is Source of Unpredictability Caches Pipeline

More information

Memory Expansion. Lecture Embedded Systems

Memory Expansion. Lecture Embedded Systems Memory Expansion Lecture 22 22-1 In These Notes... Memory Types Memory Expansion Interfacing Parallel Serial Direct Memory Access controllers 22-2 Memory Characteristics and Issues Volatility - Does it

More information

RX Smart Configurator

RX Smart Configurator APPLICATION NOTE RX Smart Configurator User s Guide: e² studio R20AN0451ES0120 Rev.1.20 Introduction This application note describes the basic usage of the RX Smart Configurator (hereafter called the Smart

More information

ARM CORTEX-R52. Target Audience: Engineers and technicians who develop SoCs and systems based on the ARM Cortex-R52 architecture.

ARM CORTEX-R52. Target Audience: Engineers and technicians who develop SoCs and systems based on the ARM Cortex-R52 architecture. ARM CORTEX-R52 Course Family: ARMv8-R Cortex-R CPU Target Audience: Engineers and technicians who develop SoCs and systems based on the ARM Cortex-R52 architecture. Duration: 4 days Prerequisites and related

More information

RX Family APPLICATION NOTE

RX Family APPLICATION NOTE Using the Graphic LCD Controller Module Firmware Integration Technology Introduction APPLICATION NOTE R01AN3509EJ0100 Rev. 1.00 This application note describes the method to display images on the TFT-LCD

More information

Wi-Fi Framework Module Guide

Wi-Fi Framework Module Guide Application Note Renesas Synergy Platform R11AN0252EU0100 Rev.1.00 Introduction This Module Guide will enable you to effectively use a module in their own design. On completion of this guide, you will

More information

Multifunction Serial Interface (PDL_MFS) Features. General Description. When to Use a PDL_MFS Component. Quick Start 1.0

Multifunction Serial Interface (PDL_MFS) Features. General Description. When to Use a PDL_MFS Component. Quick Start 1.0 1.0 Features Configures the Multi-Function Serial (MFS) Interface to one of the following modes: UART (Asynchronous normal serial interface) Clock synchronous serial interface (SPI and I 2 S can be supported)

More information

ECE 598 Advanced Operating Systems Lecture 8

ECE 598 Advanced Operating Systems Lecture 8 ECE 598 Advanced Operating Systems Lecture 8 Vince Weaver http://www.eece.maine.edu/~vweaver vincent.weaver@maine.edu 11 February 2016 Homework #3 Due. Announcements Homework #4 Posted Soon 1 HW#3 Comments

More information

Using FlexIO to emulate communications and timing peripherals

Using FlexIO to emulate communications and timing peripherals NXP Semiconductors Document Number: AN12174 Application Note Rev. 0, 06/2018 Using FlexIO to emulate communications and timing peripherals 1. Introduction The FlexIO is a new on-chip peripheral available

More information

UM2330 User manual. ST8500 boot. Introduction

UM2330 User manual. ST8500 boot. Introduction UM30 User manual ST8500 boot Introduction This user manual describes ST8500 bootloader functionalities and operations to be done for a correct device boot and the firmware images download. The following

More information

1. Specification Applicable conditions Description of Modules Used Principles of Operation... 8

1. Specification Applicable conditions Description of Modules Used Principles of Operation... 8 Using the DMAC to Drive Continuous SCI Transmission Introduction APPLICATION NOTE Asynchronous transfer is used to transmit 128 bytes of data. Using the DMAC to handle the transfer (transmission) of data

More information

LM3S6G11 ROM USER S GUIDE ROM-LM3S6G11-UG-461. Copyright Texas Instruments Incorporated

LM3S6G11 ROM USER S GUIDE ROM-LM3S6G11-UG-461. Copyright Texas Instruments Incorporated LM3S6G11 ROM USER S GUIDE ROM-LM3S6G11-UG-461 Copyright 2008-2011 Texas Instruments Incorporated Copyright Copyright 2008-2011 Texas Instruments Incorporated. All rights reserved. Stellaris and StellarisWare

More information

Program SoC using C Language

Program SoC using C Language Program SoC using C Language 1 Module Overview General understanding of C, program compilation, program image, data storage, data type, and how to access peripherals using C language; Program SoC using

More information

1. Introduction Types of Licenses to Renesas Compilers Evaluating the Features of the Professional Edition... 4

1. Introduction Types of Licenses to Renesas Compilers Evaluating the Features of the Professional Edition... 4 APPLICATION NOTE Renesas Compilers R20UT4026EJ0102 Rev.1.02 Contents 1. Introduction... 3 1.1 Types of Licenses to Renesas Compilers... 3 1.2 Evaluating the Features of the Professional Edition... 4 2.

More information

Cortex-R5 Software Development

Cortex-R5 Software Development Cortex-R5 Software Development Course Description Cortex-R5 software development is a three days ARM official course. The course goes into great depth, and provides all necessary know-how to develop software

More information

Using the i.mxrt L1 Cache

Using the i.mxrt L1 Cache NXP Semiconductors Document Number: AN12042 Application Note Rev. 1, 12/2017 Using the i.mxrt L1 Cache 1. Introduction i.mxrt series takes advantage of the ARM Cortex- M7 core with 32K/32K L1 I/D-Cache.

More information

ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University

ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University Prof. Sunil P. Khatri TA: Ayan Mandal (Lab exercise created by A Targhetta and P Gratz) Laboratory

More information

LM3S5732 ROM USER S GUIDE ROM-LM3S5732-UG-461. Copyright Texas Instruments Incorporated

LM3S5732 ROM USER S GUIDE ROM-LM3S5732-UG-461. Copyright Texas Instruments Incorporated LM3S5732 ROM USER S GUIDE ROM-LM3S5732-UG-461 Copyright 2008-2011 Texas Instruments Incorporated Copyright Copyright 2008-2011 Texas Instruments Incorporated. All rights reserved. Stellaris and StellarisWare

More information

Question Bank Microprocessor and Microcontroller

Question Bank Microprocessor and Microcontroller QUESTION BANK - 2 PART A 1. What is cycle stealing? (K1-CO3) During any given bus cycle, one of the system components connected to the system bus is given control of the bus. This component is said to

More information

AN HI-3200 Avionics Data Management Engine Evaluation Board Software Guide

AN HI-3200 Avionics Data Management Engine Evaluation Board Software Guide August 12, 2011 AN - 166 HI-3200 Avionics Data Management Engine Evaluation Board Software Guide Introduction This application note provides more detail on the HI-3200 demo software provided in the Holt

More information

ARM Processors for Embedded Applications

ARM Processors for Embedded Applications ARM Processors for Embedded Applications Roadmap for ARM Processors ARM Architecture Basics ARM Families AMBA Architecture 1 Current ARM Core Families ARM7: Hard cores and Soft cores Cache with MPU or

More information

Embedded Seminar in Shenzhen

Embedded Seminar in Shenzhen in Shenzhen 1 hello world PC HELLO WORLD IDE Simulator - C 2 2 3 3 Architecture 6 Halfword and signed halfword / byte support System mode Thumb instruction set 4 4T Improved /Thumb Interworking CLZ Saturated

More information

CS370 Operating Systems

CS370 Operating Systems CS370 Operating Systems Colorado State University Yashwant K Malaiya Fall 2016 Lecture 2 Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 2 System I/O System I/O (Chap 13) Central

More information

EPIC board ensures reliability in the toughest environment

EPIC board ensures reliability in the toughest environment EPIC board ensures reliability in the toughest environment The XE 800 SBC is a high performance single board computer (SBC) with a rich family of essential I/O functions. It integrates video, serial ports,

More information

386EX PC/104 Computer with CompactFlash and PCMCIA SBC1390

386EX PC/104 Computer with CompactFlash and PCMCIA SBC1390 386EX PC/104 Computer with CompactFlash and PCMCIA SBC1390 Features Small, low cost, ready to run 386EX, 25 or 33MHz Up to 32MB DRAM CompactFlash connector Optional PC Card interface for Wi-Fi, modem,

More information

Module 2. Embedded Processors and Memory. Version 2 EE IIT, Kharagpur 1

Module 2. Embedded Processors and Memory. Version 2 EE IIT, Kharagpur 1 Module 2 Embedded Processors and Memory Version 2 EE IIT, Kharagpur 1 Lesson 11 Embedded Processors - II Version 2 EE IIT, Kharagpur 2 Signals of a Typical Microcontroller In this lesson the student will

More information

MOS INTEGRATED CIRCUIT

MOS INTEGRATED CIRCUIT DATA SHEET MOS INTEGRATED CIRCUIT µpd6708 IEBus (Inter Equipment Bus ) PROTOCOL CONTROL LSI DESCRIPTION The µpd6708 is a peripheral LSI for microcontrollers that controls the protocol of the IEBus. This

More information

1. Specifications Conditions for Application Description of Modules Used Description of Operation... 7

1. Specifications Conditions for Application Description of Modules Used Description of Operation... 7 APPLICATION NOTE H8SX Family Introduction Relative phases of the two-phase pulse signal input from the two external clock pins are detected by the 6-bit timer pulse unit (TPU). Whether the timer counter

More information

RL78 Serial interfaces

RL78 Serial interfaces RL78 Serial interfaces Renesas Electronics 00000-A Introduction Purpose This course provides an introduction to the RL78 serial interface architecture. In detail the different serial interfaces and their

More information

PCI-4IPM Revision C. Second Generation Intelligent IP Carrier for PCI Systems Up to Four IndustryPack Modules Dual Ported SRAM, Bus Master DMA

PCI-4IPM Revision C. Second Generation Intelligent IP Carrier for PCI Systems Up to Four IndustryPack Modules Dual Ported SRAM, Bus Master DMA PCI-4IPM Revision C Second Generation Intelligent IP Carrier for PCI Systems Up to Four IndustryPack Modules Dual Ported SRAM, Bus Master DMA REFERENCE MANUAL 781-21-000-4000 Version 2.1 April 2003 ALPHI

More information

1. Specifications Functions Used Operation Software Flowcharts Program Listing... 13

1. Specifications Functions Used Operation Software Flowcharts Program Listing... 13 APPLICATION NOTE SH7145F Summary The SH7144 series is a single-chip microprocessor based on the SH-2 RISC (Reduced Instruction Set Computer) CPU core and integrating a number of peripheral functions. This

More information

How to Implement I 2 C Serial Communication Using Intel MCS-51 Microcontrollers

How to Implement I 2 C Serial Communication Using Intel MCS-51 Microcontrollers APPLICATION NOTE How to Implement I 2 C Serial Communication Using Intel MCS-51 Microcontrollers SABRINA D QUARLES APPLICATIONS ENGINEER April 1993 Order Number 272319-001 Information in this document

More information

Hercules ARM Cortex -R4 System Architecture. Processor Overview

Hercules ARM Cortex -R4 System Architecture. Processor Overview Hercules ARM Cortex -R4 System Architecture Processor Overview What is Hercules? TI s 32-bit ARM Cortex -R4/R5 MCU family for Industrial, Automotive, and Transportation Safety Hardware Safety Features

More information

Computer Architecture CS 355 Busses & I/O System

Computer Architecture CS 355 Busses & I/O System Computer Architecture CS 355 Busses & I/O System Text: Computer Organization & Design, Patterson & Hennessy Chapter 6.5-6.6 Objectives: During this class the student shall learn to: Describe the two basic

More information

cpci-dart Base-Board & Daughter-Board

cpci-dart Base-Board & Daughter-Board DYNAMIC ENGINEERING 150 DuBois, Suite C Santa Cruz, CA 95060 (831) 457-8891 Fax (831) 457-4793 http://www.dyneng.com sales@dyneng.com Est. 1988 User Manual cpci-dart Base-Board & Daughter-Board Eight-Channel

More information

acret Ameya Centre for Robotics & Embedded Technology Syllabus for Diploma in Embedded Systems (Total Eight Modules-4 Months -320 Hrs.

acret Ameya Centre for Robotics & Embedded Technology Syllabus for Diploma in Embedded Systems (Total Eight Modules-4 Months -320 Hrs. acret Ameya Centre for Robotics & Embedded Technology Syllabus for Diploma in Embedded Systems (Total Eight Modules-4 Months -320 Hrs.) Module 0 Introduction Introduction to Embedded Systems, Real Time

More information

Chapter 11: Input/Output Organisation. Lesson 15: Standard I/O bus PCI

Chapter 11: Input/Output Organisation. Lesson 15: Standard I/O bus PCI Chapter 11: Input/Output Organisation Lesson 15: Standard I/O bus PCI Objective Familiar with I/O bus and standard I/O interfaces parallel bus PCI (Peripheral Connect Interface) for a synchronous parallel

More information

Systems Architecture The ARM Processor

Systems Architecture The ARM Processor Systems Architecture The ARM Processor The ARM Processor p. 1/14 The ARM Processor ARM: Advanced RISC Machine First developed in 1983 by Acorn Computers ARM Ltd was formed in 1988 to continue development

More information

Product Technical Brief S3C2416 May 2008

Product Technical Brief S3C2416 May 2008 Product Technical Brief S3C2416 May 2008 Overview SAMSUNG's S3C2416 is a 32/16-bit RISC cost-effective, low power, high performance micro-processor solution for general applications including the GPS Navigation

More information

Anybus CompactCom. Host Application Implementation Guide. Doc.Id. HMSI Doc. Rev Connecting DevicesTM

Anybus CompactCom. Host Application Implementation Guide. Doc.Id. HMSI Doc. Rev Connecting DevicesTM Anybus CompactCom Doc. Rev. 1.10 Connecting DevicesTM +$/067$' &+,&$*2.$5/658+( 72.

More information

s132_nrf52 release notes

s132_nrf52 release notes s132_nrf52 release notes Table of Contents Introduction to the s132_nrf52 release notes These release notes describe the changes in the s132_nrf52 from version to version. The release notes are intended

More information

Emulating Dual SPI Using FlexIO

Emulating Dual SPI Using FlexIO Freescale Semiconductor, Inc. Document Number: AN5242 Application Note Rev. 0, 01/2016 Emulating Dual SPI Using FlexIO 1. Introduction This application note discusses one example of how to use FlexIO module

More information