The SGPIO output pins SGPIO14 and SGPIO15 can trigger a GPDMA request

SGPIO pins SGPIO14 and SGPIO15 can trigger a GPDMA request. < Output = '1' >

To generate the request, program a pulse in the bit stream of slice 14 or 15.

For example, use a pattern like 0x4000 0000.

GPDMA Master 1 can access memories and peripherals 
GPDMA master 0 can access memories and the SGPIO

The SGPIO interrupts<4> is connected to interrupt slot <Interrupt ID> #31 in the ARM Cortex-M4

The SGPIO interrupts<4> is connected to interrupt slot <Interrupt ID> #19 in the ARM Cortex-M0APP

The SGPIO Input Bit Match interrupt is connected to interrupt slot <Interrupt ID> #4 in the ARM Cortex-M0SUB
The SGPIO Data Pattern Match interrupt is connected to interrupt slot <Interrupt ID> #5 in the ARM Cortex-M0SUB
The SGPIO Shfit Clock interrupt is connected to interrupt slot <Interrupt ID> #6 in the ARM Cortex-M0SUB
The SGPIO Capture Clock interrupt is connected to interrupt slot <Interrupt ID> #7 in the ARM Cortex-M0SUB

SGPIO interrupt specific registers

For these interrupt specific registers, replace the x with the correct number for the interrupt.

  • 0 for shift clock;
  • 1 for capture clock, main register and shadow register exchange;
  • 2 for data pattern match and
  • 3 for input bit match.

4.3.1 CLR_EN_x
This register is used to disable interrupts.
Slice interrupts can be disabled by writing a 1 to the register.
For example, if a 1 is written to bit 2 the interrupt for slice C will be disabled.

4.3.2 SET_EN_x
This register is used to enable interrupts.
Slice interrupts can be enabled by writing a 1 to the register.
If, for example, a 1 is written to bit 3 the interrupt for slice D will be enabled.

4.3.3 ENABLE_x
Reading out this register will return what slices have their interrupts enabled.
If this register contains the value 0b1001 that means slice A and D have the interrupts enabled.

4.3.4 STATUS_x
Reading out this register will return on which slices an interrupt has happened.
It is possible that an interrupt happens on multiple slices at the same time.
If this register contains the value 0b1000100 interrupts happened on slice C and G.

4.3.5 CLR_STAT_x
This register is used to clear the interrupt state.
It is recommended to clear all interrupt states after handling the interrupts
otherwise the value in the STATUS_x register will also contain old interrupt states.

4.3.6 SET_STAT_x
This register is used to set interrupt states.
When a 1 is written to bit 0 it will look like an interrupt happened on slice A.
This register can be used for code testing.

SGPIO Interrupts

There are four interrupt methods available for SGPIO, they are:

  • 1. On shift clock
  • 2. On data exchange clock
  • 3. On data pattern match
  • 4. On input bit match (rising/falling edge, high/low level)

6.1 On shift clock
When enabled through SET_EN, this interrupt occurs every time COUNTx == 0.
This normally happens every time 1 data bit is clocked out or in of an SGPIO slice and can be CPU intensive. The registers used for this interrupt are:
• CLR_EN_0
• SET_EN_0
• ENABLE_0
• STATUS_0
• CTR_STATUS_0
• SET_STATUS_0

6.2 On data exchange (swap) clock
When enabled through SET_EN, this interrupt will occur every time the data
between the Data register (REGx) and the shadow register (REG_SSx) is exchanged. < POS == 0 >
This interrupt can be used to place new data in the shadow register,
at the next exchange (and interrupt) the new data will be loaded in the data register
and new data can be put in the shadow register.

The registers used for this interrupt are:
• CLR_EN_1
• SET_EN_1
• ENABLE_1
• STATUS_1
• CTR_STATUS_1
• SET_STATUS_1

6.3 On data pattern match < 1 or more bits match REG_SS >
It is possible to interrupt when a certain pattern is clocked in or out.
Slices A, I, H and P also support mask functionality for the pattern match interrupt.
The pattern match interrupt can be used to look for certain data when making a logic or data analyzer.

To use this interrupt, bit 0 from register SLICE_MUX_CFGx must be high.  The MATCH_MODE bit must be set to 1.

The pattern can be up to 32-bit long and should program in REG_SS register.
If the data in the data register matches the data in the shadow register an interrupt will happen.
1) As long as this interrupt is enabled and 2) bit 0 in SLICE_MUX_CFGx is high the data register and shadow register will not swap.
The registers used for this interrupt are:
• CLR_EN_2
• SET_EN_2
• ENABLE_2
• STATUS_2
• CTR_STATUS_2
• SET_STATUS_2


6.4 On input bit match
When enabled through SET_EN, it is possible to interrupt on a low or high level or on a falling or rising edge on the input data bit.
The registers used for this interrupt are:
• CLR_EN_3
• SET_EN_3
• ENABLE_3
• STATUS_3
• CTR_STATUS_3
• SET_STATUS_3

LPC43xx SGPIO DMA and Interrupts的更多相关文章

  1. LPC43xx SGPIO Configuration -- Why not use GPDMA ?

    LPC43xx SGPIO Configuration The LPC43xx SGPIO peripheral is used to move samples between USB and the ...

  2. LPC43xx SGPIO Experimentation

    LPC4350 SGPIO Experimentation The NXP LPC43xx microcontrollers have an interesting, programmable ser ...

  3. LPC43xx SGPIO Pattern Match Mode

    模式匹配 所有位串均具有模式匹配功能. 该功能可用于检测启动代码等.要使用该功能,则必须用需匹配的模式来对REG_SS 编程 (请注意, POS 达到零时 REG_SS 不会与 REG  交换!) M ...

  4. LPC43xx SGPIO I2C Implementation

    I²C SGPIO Configuration SGPIO is a hardware feature of LPC4300 series. There are 16 SGPIO pins calle ...

  5. LPC43xx SGPIO Slice 示意图

    SGPIO inverted clock qualifier Hi, With bits 6:5 of SGPIO_MUX_CFG the QUALIFIER_MODE is selected (0x ...

  6. LPC43xx SGPIO Camera interface design

    AN11196: Camera interface design using SGPIO

  7. LPC43xx SGPIO Slice 输入输出连接表

  8. MM32F0140 UART1 DMA RX and TX 中断接收和发送数据

    目录: 1.MM32F0140简介 2.DMA工作原理简介 3.初始化MM32F0140 UART1 4.配置MM32F0140 UART1 DMA接收 5.配置MM32F0140 UART1 DMA ...

  9. 每天一个linux命令(23):Linux 目录结构

    对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面 ...

随机推荐

  1. Linux下一些文件夹的含义

    在 Linux系统里面,"分区",被称作"挂载点",简单明了的说,"挂载点"意思就是:把一部分硬盘容量,"分"成一个文件 ...

  2. P1-概率论基础(Primer on Probability Theory)

    2.1概率密度函数 2.1.1定义 设p(x)为随机变量x在区间[a,b]的概率密度函数,p(x)是一个非负函数,且满足 注意概率与概率密度函数的区别. 概率是在概率密度函数下对应区域的面积,如上图右 ...

  3. c# 集合适配器

    using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using Sy ...

  4. java web 资源地址写法

    前提:假设web应用test(工程名) webapps下面有一资源文件test.html 规则:在获取资源时一般使用的是相对路径,以符号/开头,而 / 代表什么取决于这个地址给谁使用.服务器使用时,/ ...

  5. Java将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。

    java.io 类 BufferedWriter java.lang.Object java.io.Writer java.io.BufferedWriter BufferedWriter publi ...

  6. Poj-2250-Compromise

    题意是找两篇文章中的最长子单词序列 能得出个数,但不知如何输出,找不到路径 看了别人的dfs,有所领悟: 若输入s1:ab,bd,fk,ce,ak,bt,cv s2: ab,fk,ce,tt,ak,b ...

  7. Linux sort 多字段分组排序

    常用参数: -t: 指定分隔符 -k: 指定域 -u: 去除重复行 -n: 以数值排序 -r: 降序排序 (sort默认的排序方式是升序) -o: 结果重定向输出到文件 1.源文件: # cat hh ...

  8. [转]轻松解决oracle11g 空表不能exp导出的问题

    转自:http://www.2cto.com/database/201109/105931.html oracle11g的新特性,数据条数是0时不分配segment,所以就不能被导出. 解决方法: 1 ...

  9. innodb_ft_max_token_size取值范围

    根据问档中所说,innodb_ft_max_token_size取值范围为10-252,而实际上但我们在配置文件设置innodb_ft_max_token_size=252时,error log会出现 ...

  10. [转发]UML类图符号 各种关系说明以及举例

    UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Generalizati ...