精华内容
下载资源
问答
  • TMS320F28335资料整理包括技术手册和应用手册+CCS4.2基础实验例程工程文件, 基础例程: 88matrix 8LEDS ADC_amplifier BUZZ DC_MOTOR EEPROM HyDDB_SCI_to_PC KEYS LCD12864_28335 LED_light_water RELAY STEP_...
  • TMS320F28335论文资料收集 TMS320F28335论文 大量优秀论文 众多应用案例
  • TMS320F28335中文资料

    2016-10-15 22:10:26
    TMS320F28335中文资料
  • TMS320F28335引脚资料

    2012-11-11 09:40:21
    TMS320F28335引脚资料,很全很好,是我从TI的datashe里拿出来的
  • TMS320F28335中文资料(难得的资料),对于28335初学者蛮有用的资料
  • 硬汉DSP TMS320F28335开发板全套资料,包括所有视频教程,源码,PPT课件,原理图,安装软件
  • TMS320F28335相对比较适合DSP学习的一个芯片,比2812更强悍
  • TMS320F28335手册

    2019-04-16 11:29:24
    TMS320F28335官方数据手册,详细资料,英文原版,有一定的参考价值
  • TMS320F28335中文数据手册,详细描述了dsp28335的资源,管脚定义意义,并对硬件资源进行了详细的描述,对照英文版资料翻译,加快研发进程
  • 手把手教你学DSP—基于TMS320F28335zip,这是由南京研旭电气科技有限公司开发的一套基于TMS320F28335套件的DSP视频教学课程的学习资料,由于内容比较多,分成了三部分来进行上传,这是第三部分
  • TMS320F28335之GPIO原理

    2018-07-02 11:17:04
    主要从《手把手教你学DSP—基于TMS320F28335》、《TMS320F28335DSP原理与开发编程》这两本书,及网上资料汇聚而成。 DSP28335 GPIO模块分为三类IO口:PORTA(0-31),PORTB(32-63),PORTC(64-87)。对GPIO模块的设置主要...

    主要从《手把手教你学DSP—基于TMS320F28335》、《TMS320F28335DSP原理与开发编程》这两本书,及网上资料汇聚而成。 
    这里写图片描述
    这里写图片描述
    这里写图片描述
    DSP28335 GPIO模块分为三类IO口:PORTA(0-31),PORTB(32-63),PORTC(64-87)。对GPIO模块的设置主要通过三类寄存器来完成,分别是:控制寄存器、数据寄存器、中断寄存器。

    1、控制寄存器

    GPxCTRL;    // GPIO x Control Register (GPIO0 to 31)
                   //设置采样窗周期T=2*GPXCTRL*Tsysclk;
    
    GPxQSEL1;   // GPIO x Qualifier Select 1 Register (GPIO0 to 15)(32-47)            
    GPxQSEL2;   // GPIO x Qualifier Select 2 Register (GPIO16 to 31)(48-63)
                   //每两位控制一个引脚,确定是3周期采样还是6周期采样或者不用采样
    
    GPxMUX1;    // GPIO x Mux 1 Register (GPIO0 to 15)(32-47)(64-79)
    GPxMUX2;    // GPIO x Mux 2 Register (GPIO16 to 31)(48-63)(80-95)
                   //配置各个引脚的功能,0:I/O功能,1:外设功能。
    
    GPxDIR;     // GPIO x Direction Register (GPIO0 to 31)(32-63)(64-95)
                   //配置每个引脚是输入还是输出,0:数字量输入;1:数字量输出。
    GPxPUD;     // GPIO x Pull Up Disable Register (GPIO0 to 31)(32-63)(64-95)
                   //使能或禁止内部上拉 0:开启上拉,1:禁止上拉
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    2、数据寄存器

    GPxDAT;     // GPIO Data Register (GPIO0 to 31)(32-63)(64-95)
    
    GPxSET;     // GPIO Data Set Register (GPIO0 to 31)(32-63)(64-95)——置位
    
    GPxCLEAR;   // GPIO Data Clear Register (GPIO0 to 31)(32-63)(64-95)
    
    GPxTOGGLE;  // GPIO Data Toggle Register (GPIO0 to 31)(32-63)(64-95)—反转
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3、中断寄存器

    GPIOXINT1SEL; // XINT1 GPIO Input Selection
    
    GPIOXINT2SEL; // XINT2 GPIO Input Selection
    
    GPIOXNMISEL;  // XNMI_Xint13 GPIO Input Selection
    
    GPIOXINT3SEL; // XINT3 GPIO Input Selection
    
    GPIOXINT4SEL; // XINT4 GPIO Input Selection
    
    GPIOXINT5SEL; // XINT5 GPIO Input Selection
    
    GPIOXINT6SEL; // XINT6 GPIO Input Selection
    
    GPIOXINT7SEL; // XINT7 GPIO Input Selection
    
    GPIOLPMSEL;   // Low power modes GP I/O input select
       可以对GPIO0-63进行外部中断设置;
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    IT官方的头文件DSP2833x_Gpio.h内容如下:

    // TI File $Revision: /main/4 $
    // Checkin $Date: November 15, 2007   09:58:53 $
    //###########################################################################
    //
    // FILE:   DSP2833x_Gpio.h
    //
    // TITLE:  DSP2833x 一般应用 I/O 定义.
    //
    //###########################################################################
    // $TI Release: DSP2833x/DSP2823x C/C++ Header Files V1.31 $
    // $Release Date: August 4, 2009 $
    //###########################################################################
    
    #ifndef DSP2833x_GPIO_H
    #define DSP2833x_GPIO_H
    
    
    #ifdef __cplusplus
    extern "C" {
    #endif
    
    //----------------------------------------------------
    // GPIO A 控制寄存器位定义 */
    struct GPACTRL_BITS {        // bits   描述
       Uint16 QUALPRD0:8;        // 7:0    采样周期
       Uint16 QUALPRD1:8;        // 15:8   采样周期
       Uint16 QUALPRD2:8;        // 23:16  采样周期
       Uint16 QUALPRD3:8;        // 31:24  采样周期
    };
    //GPIO A 控制寄存器
    union GPACTRL_REG {
       Uint32              all;
       struct GPACTRL_BITS bit;     //GPIO A 控制寄存器位定义
    };
    
    //----------------------------------------------------
    // GPIO B 控制寄存器位定义 */
    struct GPBCTRL_BITS {        // bits   描述
       Uint16 QUALPRD0:8;        // 7:0    采样周期
       Uint16 QUALPRD1:8;        // 15:8   采样周期
       Uint16 QUALPRD2:8;        // 23:16  采样周期
       Uint16 QUALPRD3:8;        // 31:24  采样周期
    };
    //GPIO B 控制寄存器
    union GPBCTRL_REG {
       Uint32              all;
       struct GPBCTRL_BITS bit;     //GPIO B 控制寄存器位定义
    };
    
    //----------------------------------------------------
    // GPIO A Qual/MUX 选择寄存器位定义 */
    struct GPA1_BITS {            // bits   描述
       Uint16 GPIO0:2;            // 1:0    GPIO0
       Uint16 GPIO1:2;            // 3:2    GPIO1
       Uint16 GPIO2:2;            // 5:4    GPIO2
       Uint16 GPIO3:2;            // 7:6    GPIO3
       Uint16 GPIO4:2;            // 9:8    GPIO4
       Uint16 GPIO5:2;            // 11:10  GPIO5
       Uint16 GPIO6:2;            // 13:12  GPIO6
       Uint16 GPIO7:2;            // 15:14  GPIO7
       Uint16 GPIO8:2;            // 17:16  GPIO8
       Uint16 GPIO9:2;            // 19:18  GPIO9
       Uint16 GPIO10:2;           // 21:20  GPIO10
       Uint16 GPIO11:2;           // 23:22  GPIO11
       Uint16 GPIO12:2;           // 25:24  GPIO12
       Uint16 GPIO13:2;           // 27:26  GPIO13
       Uint16 GPIO14:2;           // 29:28  GPIO14
       Uint16 GPIO15:2;           // 31:30  GPIO15
    };
    
    
    struct GPA2_BITS {            // bits   描述
       Uint16 GPIO16:2;           // 1:0    GPIO16
       Uint16 GPIO17:2;           // 3:2    GPIO17
       Uint16 GPIO18:2;           // 5:4    GPIO18
       Uint16 GPIO19:2;           // 7:6    GPIO19
       Uint16 GPIO20:2;           // 9:8    GPIO20
       Uint16 GPIO21:2;           // 11:10  GPIO21
       Uint16 GPIO22:2;           // 13:12  GPIO22
       Uint16 GPIO23:2;           // 15:14  GPIO23
       Uint16 GPIO24:2;           // 17:16  GPIO24
       Uint16 GPIO25:2;           // 19:18  GPIO25
       Uint16 GPIO26:2;           // 21:20  GPIO26
       Uint16 GPIO27:2;           // 23:22  GPIO27
       Uint16 GPIO28:2;           // 25:24  GPIO28
       Uint16 GPIO29:2;           // 27:26  GPIO29
       Uint16 GPIO30:2;           // 29:28  GPIO30
       Uint16 GPIO31:2;           // 31:30  GPIO31
    };
    // GPIO B Qual/MUX 选择寄存器位定义 */
    struct GPB1_BITS {            // bits   描述
       Uint16 GPIO32:2;           // 1:0    GPIO32
       Uint16 GPIO33:2;           // 3:2    GPIO33
       Uint16 GPIO34:2;           // 5:4    GPIO34
       Uint16 GPIO35:2;           // 7:6    GPIO35
       Uint16 GPIO36:2;           // 9:8    GPIO36
       Uint16 GPIO37:2;           // 11:10  GPIO37
       Uint16 GPIO38:2;           // 13:12  GPIO38
       Uint16 GPIO39:2;           // 15:14  GPIO39
       Uint16 GPIO40:2;           // 17:16  GPIO40
       Uint16 GPIO41:2;           // 19:16  GPIO41
       Uint16 GPIO42:2;           // 21:20  GPIO42
       Uint16 GPIO43:2;           // 23:22  GPIO43
       Uint16 GPIO44:2;           // 25:24  GPIO44
       Uint16 GPIO45:2;           // 27:26  GPIO45
       Uint16 GPIO46:2;           // 29:28  GPIO46
       Uint16 GPIO47:2;           // 31:30  GPIO47
    };
    
    struct GPB2_BITS  {           // bits   描述
       Uint16 GPIO48:2;           // 1:0    GPIO48
       Uint16 GPIO49:2;           // 3:2    GPIO49
       Uint16 GPIO50:2;           // 5:4    GPIO50
       Uint16 GPIO51:2;           // 7:6    GPIO51
       Uint16 GPIO52:2;           // 9:8    GPIO52
       Uint16 GPIO53:2;           // 11:10  GPIO53
       Uint16 GPIO54:2;           // 13:12  GPIO54
       Uint16 GPIO55:2;           // 15:14  GPIO55
       Uint16 GPIO56:2;           // 17:16  GPIO56
       Uint16 GPIO57:2;           // 19:18  GPIO57
       Uint16 GPIO58:2;           // 21:20  GPIO58
       Uint16 GPIO59:2;           // 23:22  GPIO59
       Uint16 GPIO60:2;           // 25:24  GPIO60
       Uint16 GPIO61:2;           // 27:26  GPIO61
       Uint16 GPIO62:2;           // 29:28  GPIO62
       Uint16 GPIO63:2;           // 31:30  GPIO63
    };
    // GPIO C Qual/MUX 选择寄存器位定义 */
    struct GPC1_BITS {            // bits   描述
       Uint16 GPIO64:2;           // 1:0    GPIO64
       Uint16 GPIO65:2;           // 3:2    GPIO65
       Uint16 GPIO66:2;           // 5:4    GPIO66
       Uint16 GPIO67:2;           // 7:6    GPIO67
       Uint16 GPIO68:2;           // 9:8    GPIO68
       Uint16 GPIO69:2;           // 11:10  GPIO69
       Uint16 GPIO70:2;           // 13:12  GPIO70
       Uint16 GPIO71:2;           // 15:14  GPIO71
       Uint16 GPIO72:2;           // 17:16  GPIO72
       Uint16 GPIO73:2;           // 19:18  GPIO73
       Uint16 GPIO74:2;           // 21:20  GPIO74
       Uint16 GPIO75:2;           // 23:22  GPIO75
       Uint16 GPIO76:2;           // 25:24  GPIO76
       Uint16 GPIO77:2;           // 27:26  GPIO77
       Uint16 GPIO78:2;           // 29:28  GPIO78
       Uint16 GPIO79:2;           // 31:30  GPIO79
    };
    
    
    struct GPC2_BITS {            // bits   描述
       Uint16 GPIO80:2;           // 1:0    GPIO80
       Uint16 GPIO81:2;           // 3:2    GPIO81
       Uint16 GPIO82:2;           // 5:4    GPIO82
       Uint16 GPIO83:2;           // 7:6    GPIO83
       Uint16 GPIO84:2;           // 9:8    GPIO84
       Uint16 GPIO85:2;           // 11:10  GPIO85
       Uint16 GPIO86:2;           // 13:12  GPIO86
       Uint16 GPIO87:2;           // 15:14  GPIO87
       Uint16 rsvd:16;            // 31:16  保留
    };
    
    // GPIO A Qual/MUX 选择寄存器 */
    union GPA1_REG {
       Uint32              all;
       struct GPA1_BITS    bit;
    };
    
    union GPA2_REG {
       Uint32              all;
       struct GPA2_BITS    bit;
    };
    // GPIO B Qual/MUX 选择寄存器 */
    union GPB1_REG {
       Uint32              all;
       struct GPB1_BITS    bit;
    };
    
    union GPB2_REG {
       Uint32              all;
       struct GPB2_BITS    bit;
    };
    // GPIO C Qual/MUX 选择寄存器 */
    union GPC1_REG {
       Uint32              all;
       struct GPC1_BITS    bit;
    };
    
    union GPC2_REG {
       Uint32              all;
       struct GPC2_BITS    bit;
    };
    
    //----------------------------------------------------
    // GPIO A DIR/TOGGLE/SET/CLEAR 寄存器位定义 */
    struct GPADAT_BITS {          // bits   描述
       Uint16 GPIO0:1;            // 0      GPIO0
       Uint16 GPIO1:1;            // 1      GPIO1
       Uint16 GPIO2:1;            // 2      GPIO2
       Uint16 GPIO3:1;            // 3      GPIO3
       Uint16 GPIO4:1;            // 4      GPIO4
       Uint16 GPIO5:1;            // 5      GPIO5
       Uint16 GPIO6:1;            // 6      GPIO6
       Uint16 GPIO7:1;            // 7      GPIO7
       Uint16 GPIO8:1;            // 8      GPIO8
       Uint16 GPIO9:1;            // 9      GPIO9
       Uint16 GPIO10:1;           // 10     GPIO10
       Uint16 GPIO11:1;           // 11     GPIO11
       Uint16 GPIO12:1;           // 12     GPIO12
       Uint16 GPIO13:1;           // 13     GPIO13
       Uint16 GPIO14:1;           // 14     GPIO14
       Uint16 GPIO15:1;           // 15     GPIO15
       Uint16 GPIO16:1;           // 16     GPIO16
       Uint16 GPIO17:1;           // 17     GPIO17
       Uint16 GPIO18:1;           // 18     GPIO18
       Uint16 GPIO19:1;           // 19     GPIO19
       Uint16 GPIO20:1;           // 20     GPIO20
       Uint16 GPIO21:1;           // 21     GPIO21
       Uint16 GPIO22:1;           // 22     GPIO22
       Uint16 GPIO23:1;           // 23     GPIO23
       Uint16 GPIO24:1;           // 24     GPIO24
       Uint16 GPIO25:1;           // 25     GPIO25
       Uint16 GPIO26:1;           // 26     GPIO26
       Uint16 GPIO27:1;           // 27     GPIO27
       Uint16 GPIO28:1;           // 28     GPIO28
       Uint16 GPIO29:1;           // 29     GPIO29
       Uint16 GPIO30:1;           // 30     GPIO30
       Uint16 GPIO31:1;           // 31     GPIO31
    };
    // GPIO B DIR/TOGGLE/SET/CLEAR 寄存器位定义 */
    struct GPBDAT_BITS {          // bits   描述
       Uint16 GPIO32:1;           // 0      GPIO32
       Uint16 GPIO33:1;           // 1      GPIO33
       Uint16 GPIO34:1;           // 2      GPIO34
       Uint16 GPIO35:1;           // 3      GPIO35
       Uint16 GPIO36:1;           // 4      GPIO36
       Uint16 GPIO37:1;           // 5      GPIO37
       Uint16 GPIO38:1;           // 6      GPIO38
       Uint16 GPIO39:1;           // 7      GPIO39
       Uint16 GPIO40:1;           // 8      GPIO40
       Uint16 GPIO41:1;           // 9      GPIO41
       Uint16 GPIO42:1;           // 10     GPIO42
       Uint16 GPIO43:1;           // 11     GPIO43
       Uint16 GPIO44:1;           // 12     GPIO44
       Uint16 GPIO45:1;           // 13     GPIO45
       Uint16 GPIO46:1;           // 14     GPIO46
       Uint16 GPIO47:1;           // 15     GPIO47
       Uint16 GPIO48:1;           // 16     GPIO48
       Uint16 GPIO49:1;           // 17     GPIO49
       Uint16 GPIO50:1;           // 18     GPIO50
       Uint16 GPIO51:1;           // 19     GPIO51
       Uint16 GPIO52:1;           // 20     GPIO52
       Uint16 GPIO53:1;           // 21     GPIO53
       Uint16 GPIO54:1;           // 22     GPIO54
       Uint16 GPIO55:1;           // 23     GPIO55
       Uint16 GPIO56:1;           // 24     GPIO56
       Uint16 GPIO57:1;           // 25     GPIO57
       Uint16 GPIO58:1;           // 26     GPIO58
       Uint16 GPIO59:1;           // 27     GPIO59
       Uint16 GPIO60:1;           // 28     GPIO60
       Uint16 GPIO61:1;           // 29     GPIO61
       Uint16 GPIO62:1;           // 30     GPIO62
       Uint16 GPIO63:1;           // 31     GPIO63
    };
    // GPIO C DIR/TOGGLE/SET/CLEAR 寄存器位定义 */
    struct GPCDAT_BITS {          // bits   描述
       Uint16 GPIO64:1;           // 0      GPIO64
       Uint16 GPIO65:1;           // 1      GPIO65
       Uint16 GPIO66:1;           // 2      GPIO66
       Uint16 GPIO67:1;           // 3      GPIO67
       Uint16 GPIO68:1;           // 4      GPIO68
       Uint16 GPIO69:1;           // 5      GPIO69
       Uint16 GPIO70:1;           // 6      GPIO70
       Uint16 GPIO71:1;           // 7      GPIO71
       Uint16 GPIO72:1;           // 8      GPIO72
       Uint16 GPIO73:1;           // 9      GPIO73
       Uint16 GPIO74:1;           // 10     GPIO74
       Uint16 GPIO75:1;           // 11     GPIO75
       Uint16 GPIO76:1;           // 12     GPIO76
       Uint16 GPIO77:1;           // 13     GPIO77
       Uint16 GPIO78:1;           // 14     GPIO78
       Uint16 GPIO79:1;           // 15     GPIO79
       Uint16 GPIO80:1;           // 16     GPIO80
       Uint16 GPIO81:1;           // 17     GPIO81
       Uint16 GPIO82:1;           // 18     GPIO82
       Uint16 GPIO83:1;           // 19     GPIO83
       Uint16 GPIO84:1;           // 20     GPIO84
       Uint16 GPIO85:1;           // 21     GPIO85
       Uint16 GPIO86:1;           // 22     GPIO86
       Uint16 GPIO87:1;           // 23     GPIO87
       Uint16 rsvd1:8;            // 31:24  reserved
    };
    
    // GPIO A DIR/TOGGLE/SET/CLEAR 寄存器 */
    union GPADAT_REG {
       Uint32              all;
       struct GPADAT_BITS  bit;
    };
    // GPIO B DIR/TOGGLE/SET/CLEAR 寄存器 */
    union GPBDAT_REG {
       Uint32              all;
       struct GPBDAT_BITS  bit;
    };
    // GPIO C DIR/TOGGLE/SET/CLEAR 寄存器 */
    union GPCDAT_REG {
       Uint32              all;
       struct GPCDAT_BITS  bit;
    };
    
    
    
    
    //----------------------------------------------------
    // GPIO Xint1/XINT2/XNMI 选择寄存器位定义 */
    struct GPIOXINT_BITS {        // bits   描述
        Uint16 GPIOSEL:5;         // 4:0    选择GPIO中断输入源
        Uint16 rsvd1:11;          // 15:5   保留
    };
    // GPIO Xint1/XINT2/XNMI 选择寄存 */
    union GPIOXINT_REG {
       Uint16                all;
       struct GPIOXINT_BITS  bit;
    };
    
    //GPIO控制寄存器
    struct GPIO_CTRL_REGS {
       union  GPACTRL_REG  GPACTRL;   // GPIO A 控制寄存器 (GPIO0 to 31)
       union  GPA1_REG     GPAQSEL1;  // GPIO A 选择输入限制1 (GPIO0 to 15)
       union  GPA2_REG     GPAQSEL2;  // GPIO A 选择输入限制2 (GPIO16 to 31)
       union  GPA1_REG     GPAMUX1;   // GPIO A 选择寄存器1 (GPIO0 to 15)
       union  GPA2_REG     GPAMUX2;   // GPIO A 选择寄存器2 (GPIO16 to 31)
       union  GPADAT_REG   GPADIR;    // GPIO A 输入输出方向 (GPIO0 to 31)
       union  GPADAT_REG   GPAPUD;    // GPIO A 上拉禁用寄存器 (GPIO0 to 31)
       Uint32              rsvd1;     // 保留
       union  GPBCTRL_REG  GPBCTRL;   // GPIO B 控制寄存器 (GPIO32 to 63)
       union  GPB1_REG     GPBQSEL1;  // GPIO B 选择输入限制1 (GPIO32 to 47)
       union  GPB2_REG     GPBQSEL2;  // GPIO B 选择输入限制2 (GPIO48 to 63)
       union  GPB1_REG     GPBMUX1;   // GPIO B 选择寄存器1 (GPIO32 to 47)
       union  GPB2_REG     GPBMUX2;   // GPIO B 选择寄存器2 (GPIO48 to 63)
       union  GPBDAT_REG   GPBDIR;    // GPIO B 输入输出方向 (GPIO32 to 63)
       union  GPBDAT_REG   GPBPUD;    // GPIO B 上拉禁用寄存器 (GPIO32 to 63)
       Uint16              rsvd2[8];
       union  GPC1_REG     GPCMUX1;   // GPIO C 选择寄存器1 (GPIO64 to 79)
       union  GPC2_REG     GPCMUX2;   // GPIO C 选择寄存器2 (GPIO80 to 95)
       union  GPCDAT_REG   GPCDIR;    // GPIO C 输入输出方向 (GPIO64 to 95)
       union  GPCDAT_REG   GPCPUD;    // GPIO C 上拉禁用寄存器 (GPIO64 to 95)
    };
    //GPIO控制寄存器
    struct GPIO_DATA_REGS {
       union  GPADAT_REG       GPADAT;       // GPIO 数据寄存器 (GPIO0 to 31)
       union  GPADAT_REG       GPASET;       // GPIO 置位数据寄存器 (GPIO0 to 31)
       union  GPADAT_REG       GPACLEAR;     // GPIO 置零数据寄存器 (GPIO0 to 31)
       union  GPADAT_REG       GPATOGGLE;    // GPIO 数据翻转寄存器 (GPIO0 to 31)
       union  GPBDAT_REG       GPBDAT;       // GPIO 数据寄存器 (GPIO32 to 63)
       union  GPBDAT_REG       GPBSET;       // GPIO 置位数据寄存器 (GPIO32 to 63)
       union  GPBDAT_REG       GPBCLEAR;     // GPIO 置零数据寄存器 (GPIO32 to 63)
       union  GPBDAT_REG       GPBTOGGLE;    // GPIO 数据翻转寄存器 (GPIO32 to 63)
       union  GPCDAT_REG       GPCDAT;       // GPIO 数据寄存器 (GPIO64 to 95)
       union  GPCDAT_REG       GPCSET;       // GPIO 置位数据寄存器 (GPIO64 to 95)
       union  GPCDAT_REG       GPCCLEAR;     // GPIO 置零数据寄存器 (GPIO64 to 95)
       union  GPCDAT_REG       GPCTOGGLE;    // GPIO 数据翻转寄存器 (GPIO64 to 95)
       Uint16                  rsvd1[8];
    };
    //GPIO中断寄存器
    struct GPIO_INT_REGS {
       union  GPIOXINT_REG     GPIOXINT1SEL; // XINT1 GPIO 输入选择
       union  GPIOXINT_REG     GPIOXINT2SEL; // XINT2 GPIO 输入选择
       union  GPIOXINT_REG     GPIOXNMISEL;  // XNMI_Xint13 GPIO 输入选择
       union  GPIOXINT_REG     GPIOXINT3SEL; // XINT3 GPIO 输入选择
       union  GPIOXINT_REG     GPIOXINT4SEL; // XINT4 GPIO 输入选择
       union  GPIOXINT_REG     GPIOXINT5SEL; // XINT5 GPIO 输入选择
       union  GPIOXINT_REG     GPIOXINT6SEL; // XINT6 GPIO 输入选择
       union  GPIOXINT_REG     GPIOXINT7SEL; // XINT7 GPIO 输入选择
       union  GPADAT_REG       GPIOLPMSEL;   // 唤醒低功耗模式源选择寄存器
    };
    
    
    //---------------------------------------------------------------------------
    // GPI/O 外部引用和函数声明:
    //
    extern volatile struct GPIO_CTRL_REGS GpioCtrlRegs;
    extern volatile struct GPIO_DATA_REGS GpioDataRegs;
    extern volatile struct GPIO_INT_REGS GpioIntRegs;
    
    #ifdef __cplusplus
    }
    #endif /* extern "C" */
    
    #endif  // end of DSP2833x_GPIO_H definition
    
    //===========================================================================
    // End of file.
    //===========================================================================
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252
    • 253
    • 254
    • 255
    • 256
    • 257
    • 258
    • 259
    • 260
    • 261
    • 262
    • 263
    • 264
    • 265
    • 266
    • 267
    • 268
    • 269
    • 270
    • 271
    • 272
    • 273
    • 274
    • 275
    • 276
    • 277
    • 278
    • 279
    • 280
    • 281
    • 282
    • 283
    • 284
    • 285
    • 286
    • 287
    • 288
    • 289
    • 290
    • 291
    • 292
    • 293
    • 294
    • 295
    • 296
    • 297
    • 298
    • 299
    • 300
    • 301
    • 302
    • 303
    • 304
    • 305
    • 306
    • 307
    • 308
    • 309
    • 310
    • 311
    • 312
    • 313
    • 314
    • 315
    • 316
    • 317
    • 318
    • 319
    • 320
    • 321
    • 322
    • 323
    • 324
    • 325
    • 326
    • 327
    • 328
    • 329
    • 330
    • 331
    • 332
    • 333
    • 334
    • 335
    • 336
    • 337
    • 338
    • 339
    • 340
    • 341
    • 342
    • 343
    • 344
    • 345
    • 346
    • 347
    • 348
    • 349
    • 350
    • 351
    • 352
    • 353
    • 354
    • 355
    • 356
    • 357
    • 358
    • 359
    • 360
    • 361
    • 362
    • 363
    • 364
    • 365
    • 366
    • 367
    • 368
    • 369
    • 370
    • 371
    • 372
    • 373
    • 374
    • 375
    • 376
    • 377
    • 378
    • 379
    • 380
    • 381
    • 382
    • 383
    • 384
    • 385
    • 386
    • 387
    • 388
    • 389
    • 390
    • 391
    • 392

    在《手把手教你学DSP》的第六章为GPIO介绍,在配套例程配套文档例程资料\CCS4.12\lab2-GPIO_SETUP下的DSP2833x_Gpio.c程序如下:

    // TI File $Revision: /main/1 $
    // Checkin $Date: August 18, 2006   13:46:25 $
    //###########################################################################
    //
    // FILE:    DSP2833x_Gpio.c
    //
    // TITLE:   DSP2833x 通用 I/O 初始化& 支持函数.
    //
    //###########################################################################
    // $TI Release: DSP2833x Header Files V1.01 $
    // $Release Date: September 26, 2007 $
    //###########################################################################
    
    #include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File
    #include "DSP2833x_Examples.h"   // DSP2833x Examples Include File
    
    //---------------------------------------------------------------------------
    // InitGpio: 
    //---------------------------------------------------------------------------
    // 该函数初始化到一个已知的(默认)状态.
    //
    // 更多关于配置GPIO外围功能的细节,
    // 请参照个人设置的外围例子/或 GPIO 设置示例. 
    void InitGpio(void)
    {
       EALLOW;
    
       // 每个 GPIO pin 都可以: 
       // a) a GPIO 输入/输出
       // b) 外设功能 1
       // c) 外设功能 2
       // d) 外设功能 3
       // 默认情况下, 所有的 GPIO 都为输入 
       GpioCtrlRegs.GPAMUX1.all = 0x0000;     // GPIO 功能 GPIO0-GPIO15
       GpioCtrlRegs.GPAMUX2.all = 0x0000;     // GPIO 功能 GPIO16-GPIO31
       GpioCtrlRegs.GPBMUX1.all = 0x0000;     // GPIO 功能 GPIO32-GPIO39
       GpioCtrlRegs.GPBMUX2.all = 0x0000;     // GPIO 功能 GPIO48-GPIO63
       GpioCtrlRegs.GPCMUX1.all = 0x0000;     // GPIO 功能 GPIO64-GPIO79
       GpioCtrlRegs.GPCMUX2.all = 0x0000;     // GPIO 功能 GPIO80-GPIO95
    
       GpioCtrlRegs.GPADIR.all = 0x0000;      // GPIO0-GPIO31 都为输入
       GpioCtrlRegs.GPBDIR.all = 0x0000;      // GPIO32-GPIO63 都为输入   
       GpioCtrlRegs.GPCDIR.all = 0x0000;      // GPI064-GPIO95 都为输入
    
       // 每个输入都可以有不同的限制
       // a) 输入信号同步 to SYSCLKOUT
       // b) 输入合适的采样窗口
       // c) 异步输入模式 (仅外围输入有效)
       GpioCtrlRegs.GPAQSEL1.all = 0x0000;    // GPIO0-GPIO15 同步 to SYSCLKOUT 
       GpioCtrlRegs.GPAQSEL2.all = 0x0000;    // GPIO16-GPIO31 同步 to SYSCLKOUT
       GpioCtrlRegs.GPBQSEL1.all = 0x0000;    // GPIO32-GPIO39 同步 to SYSCLKOUT 
       GpioCtrlRegs.GPBQSEL2.all = 0x0000;    // GPIO48-GPIO63 同步 to SYSCLKOUT 
    
       // 上拉可以禁止或使能. 
       GpioCtrlRegs.GPAPUD.all = 0x0000;      // 启用上拉 GPIO0-GPIO31
       GpioCtrlRegs.GPBPUD.all = 0xffff;//0x0000;      // 启用上拉 GPIO32-GPIO63
       GpioCtrlRegs.GPCPUD.all = 0x0000;      // 启用上拉 GPIO64-GPIO79
    
       //GpioCtrlRegs.GPAPUD.all = 0xFFFF;    // 禁止上拉 GPIO0-GPIO31
       //GpioCtrlRegs.GPBPUD.all = 0xFFFF;    // 禁止上拉 GPIO32-GPIO34
       //GpioCtrlRegs.GPCPUD.all = 0xFFFF     // 禁止上拉 GPIO64-GPIO79
    
       EDIS;
    
    }   
    
    //===========================================================================
    // End of file.
    //===========================================================================
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70

    GPIO的控制实例在《手把手教你学DSP》配套例程CCS4.12\lab1-GPIO_LED下控制LED灯闪烁

    #include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File
    #include "DSP2833x_Examples.h"   // DSP2833x Examples Include File
    
    #define   LED1  GpioDataRegs.GPADAT.bit.GPIO0   //数据寄存器宏定义
    #define   LED2  GpioDataRegs.GPADAT.bit.GPIO1
    #define   LED3  GpioDataRegs.GPADAT.bit.GPIO2
    #define   LED4  GpioDataRegs.GPADAT.bit.GPIO3
    #define   LED5  GpioDataRegs.GPADAT.bit.GPIO4
    #define   LED6  GpioDataRegs.GPADAT.bit.GPIO5
    
    
    
    interrupt void ISRTimer0(void); 
    void configtestled(void);
    
    
    void main(void)
    {
    // 步骤 1. 初始化系统控制:
    // PLL, WatchDog, 使能外围时钟
    // 这个函数在 DSP2833x_SysCtrl.c 文件中.
       InitSysCtrl();
    
    // 步骤 2. 初始化设置 GPIO:
    // 这个函数例子在 DSP2833x_Gpio.c 文件中
    // 说明了如何设置GPIO的默认状态.
    // InitGpio();  // 跳过这个函数
       InitXintf16Gpio();   //zq
    
    // 步骤 3. 清除所有中断向量和初始化向量表:
    // 禁止CPU中断
       DINT;
    
    // 初始化PIE控制寄存器的默认状态.
    // 默认状态是所有的中断和中断标志被清除
    // 这个函数在 DSP2833x_PieCtrl.c 文件中.
       InitPieCtrl();
    
    // Disable CPU interrupts and clear all CPU interrupt flags:
       IER = 0x0000;
       IFR = 0x0000;
    
    // 初始化中断向量表的地址指针
    // 中断服务程序 (ISR).
    // 即使不使用中断也要将表格填充满, 这样的目的是用于调试.
    // 这个函数在 DSP2833x_DefaultIsr.c文件中
    // 这个函数在 DSP2833x_PieVect.c.文件中
       InitPieVectTable();
       configtestled();
    
          LED1=1;
       DELAY_US(10);
          LED2=1;
       DELAY_US(10);
          LED3=1;
       DELAY_US(10);
          LED4=0;
       DELAY_US(10);
          LED5=0;
       DELAY_US(10);
          LED6=0;
       DELAY_US(10);
    
    
     while(1){
          LED1=~LED1;
       DELAY_US(50000);
          LED2=~LED2;
       DELAY_US(50000);
          LED3=~LED3;
       DELAY_US(50000);
          LED4=~LED4;
       DELAY_US(50000);
          LED5=~LED5;
       DELAY_US(50000);
          LED6=~LED6;
       DELAY_US(50000);
    
    }
    
    }
    
    
    
    
    void configtestled(void)
    {
       EALLOW;
       GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0; // GPIO0 = GPIO0
       GpioCtrlRegs.GPADIR.bit.GPIO0 = 1;  // 输出
       GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 0; // GPIO1 = GPIO1
       GpioCtrlRegs.GPADIR.bit.GPIO1 = 1;  // 输出
       GpioCtrlRegs.GPAMUX1.bit.GPIO2 = 0; // GPIO2 = GPIO2
       GpioCtrlRegs.GPADIR.bit.GPIO2 = 1;  // 输出
       GpioCtrlRegs.GPAMUX1.bit.GPIO3 = 0; // GPIO3 = GPIO3
       GpioCtrlRegs.GPADIR.bit.GPIO3 = 1;  // 输出
       GpioCtrlRegs.GPAMUX1.bit.GPIO4 = 0; // GPIO4 = GPIO4
       GpioCtrlRegs.GPADIR.bit.GPIO4 = 1;  // 输出
       GpioCtrlRegs.GPAMUX1.bit.GPIO5 = 0; // GPIO5 = GPIO5
       GpioCtrlRegs.GPADIR.bit.GPIO5 = 1;  // 输出
    
       EDIS;
    }
    //===========================================================================
    // No more.
    //===========================================================================
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108

    参考资料 
    百度文库_第5章通用输入输出学习要点 
    电子工程世界-TMS320F28335项目开发记录8_28335之GPIO引脚

    展开全文
  • TMS320F28335光伏离网并网逆变器设计,资料包括代码及PCB原理图。希望对大家的学习或研究有帮助。
  • 【注意】 1.芯片型号:TMS320F28335 2.适用于NJUSTEO李彧晟老师课程 3.参考资料:《TMS320F28335 DSP原理、开发及应用》 4.对应PPT第二章 5.本章内容较多而且较为重要,请结合PPT一起复习

    注意

    1. 芯片型号:TMS320F28335
    2. 适用于NJUSTEO李彧晟老师课程
    3. 参考资料:《TMS320F28335 DSP原理、开发及应用》
    4. 对应PPT第二章
    5. 本章内容较多而且较为重要,请结合PPT一起复习
    6. 为了考试复习的同学请谨慎参考,本笔记的大部分都考到

    1 中断的分类

    1.1 从触发源的角度

    • 分为软件中断硬件中断
    • 硬件中断又分为外部中断内部中断

    1.2 从DSP的角度

    • 分为可屏蔽中断不可屏蔽中断

    1.3 中断管理过程

    在这里插入图片描述

    2 外部中断扩展模块PIE

    2.1 系统框图和主要寄存器

    在这里插入图片描述

    • 如上图所示,外设的中断请求发送给PIE模块单元,每个单元负责8个外设或是引脚的中断请求
    • PIEIFR是中断标志寄存器,中断到来后相应位置1.
    • PIEIER是中断使能寄存器,控制是否使能某个中断
    • PIEACK是中断应答寄存器,可读可写,读到的不同的值代表不同的中断应答状态。
      在这里插入图片描述
    • IFR是CPU中断标志寄存器,这个寄存器有16位,当使能PIE模式时,PIE会复用11~0位
      在这里插入图片描述
    • IER的作用是使能中断,寄存器格式和IFR相似。
    • INTM是总中断,0为全部使能,1为全部关闭
    /*** Global Interrupts ***/
          asm("  CLRC  INTM");      //enable global interrupts
          asm("  SETC  INTM");      //disable global interrupts
    

    2.2 PIE系统的分级

    1. 外设级
      片内外设的各个中断信号都具有自己的中断标志寄存器和中断使能寄存器
    2. PIE级
      将96个中断分成12组,每组负责8个中断
    3. CPU级
      PIE将中断请求发送到CPU后,CPU中断标志寄存器IFR中对应的INTx将被置位

    3 中断向量表

    • 中断矢量表,又称为中断地址,表明中断发生后,若DSP响应中断,指令执行的地址。

    4 PIE设置寄存器

    4.1 PIE控制寄存器PIECTRL

    在这里插入图片描述

    • PIEVECT位,仅可读,用来获取中断向量的地址
    • ENPIE位,0不使能,所有的PIE寄存器可更改,1使能,所有的中断向量指向PIE

    其余的PIE控制寄存器都已经在第2章中讲到

    例子

    #include "DSP2833x_Device.h"
        PieCtrlRegs.PIEIFR1.bit.INTx4 = 1; 
       //manually set IFR for XINT1 in PIE group 1
        PieCtrlRegs.PIEIER3.bit.INTx5 = 1; 
       //enable EPWM5_INT in PIE group 3
        PieCtrlRegs.PIEACK.all = 0x0004; 
        //acknowledge the PIE group 3
        PieCtrlRegs.PIECTRL.bit.ENPIE = 1; 
       //enable the PIE
    

    5 中断服务程序ISR

    • 中断服务程序是用户编写的,是对中断事件做出响应的子程序。
    • CPU接收到中断请求并响应之后,就根据中断矢量内容转移到相应的中断服务程序ISR中。
    • ISR在为中断所要求的任务服务之前需要保存和恢复寄存器的值,并且还要管理中断嵌套。

    5.1 中断声明

    interrupt void epwm1_timer_adc_isr(void);
    

    5.2 中断函数

    interrupt void epwm1_timer_adc_isr(void)
    {
    	……
    }
    

    5.3 中断函数映射中断向量表

    • 取出中断函数入口地址,并将入口地址赋给中断,当中断到来时就可以运行中断函数
    EALLOW;
    PieVectTable.EPWM1_INT  = &epwm1_timer_adc_isr;  
    EDIS;
    

    在这里插入图片描述

    展开全文
  • 1. 芯片型号:TMS320F28335 2. 适用于NJUSTEO李彧晟老师课程 3. 参考资料:《TMS320F28335 DSP原理、开发及应用》 4. 对应PPT第二章 5. 本章内容较多而且较为重要,请结合PPT一起复习

    注意

    1. 芯片型号:TMS320F28335
    2. 适用于NJUSTEO李彧晟老师课程
    3. 参考资料:《TMS320F28335 DSP原理、开发及应用》
    4. 对应PPT第二章
    5. 本章内容较多而且较为重要,请结合PPT一起复习
    6. 为了考试复习的同学请谨慎参考,本笔记的大部分都考到

    1 F28335内核

    • 对用PPT15页

    1.1 CPU

    • 分为32位定点CPU和32位浮点CPU
    • 使用原子指令,汇编编程更简便、尺寸更小、速度更快、不可被中断的指令、更高效的编译
      在这里插入图片描述

    1.2 总线结构

    1. 程序读总线:
      22位地址,32位数据;
    2. 数据读总线:
      32位地址,32位数据;
    3. 数据写总线:
      32位地址,32位数据;
    • 采用哈佛总线结构
      在这里插入图片描述

    1.3 流水线机制

    • 这一机制在上一章有讲到
    • 流水技术是将各指令的各个步骤重叠起来执行,即使得若干条指令的不同执行阶段可以处于同一时刻并行处理,这样每一个阶段称作一个流水。
      在这里插入图片描述

    1.4 FPU流水线

    • 暂不清楚这是个什么东西

    2 F28335的存储单元

    2.1 F28335存储介质:

    1)Flash存储器;
    2)单周期访问RAM;
    3)OTP;
    4)片外存储器;
    5)Boot ROM。

    2.2 代码保护模块CSM

    • 防止逆向工程,并保护知识产权(IP)
    • Flash中的一段长度为128bit的存储空间
    • 2128 = 3.4 x 1038 种可能的密码
    • 在150MHz的时钟频率下,每8个时钟周期试验一组密码,则最多需要5.8 x 1023

    3 片上外设

    • 增强型脉宽调制模块
    • 增强型捕获模块
    • 增强型正交编码脉冲模块
    • 数模转换模块
    • 看门狗模块
    • 控制局域网络总线模块
    • 集成电路总线模块
    • 串行通信接口模块
    • 串行外设接口模块
    • 多通道缓冲串行接口模块
    • 通用输入输出接口模块
      在这里插入图片描述
    • 这里仅仅是将片内外设列举一遍,后边的笔记里会有具体的讲解。

    4 F28335特点

    • PPT:24

    4.1 高性能静态 CMOS 技术

    • 主频最高达 150MHz
    • 1.9V/1.8V内核,3.3V I/O设计

    4.2 高性能 32 位 CPU

    • IEEE-754 单精度浮点单元
    • 16 x 16 和 32 x 32 介质访问控制 (MAC) 运算
    • 16 x 16 双 MAC
    • 哈佛 (Harvard) 总线架构
    • 快速中断响应和处理
    • 统一存储器编程模型和高效代码

    4.3 6 通道 DMA 处理器

    4.4 16 位或 32 位外部接口XINTF

    4.5 片内存储器

    • 256K Flash,34K×16 SARAM
    • 1K×16 OTP ROM

    4.6 引导ROM

    • 8K×16
    • 支持软件引导模式(通过 SCI,SPI,CAN,I2C,McBSP,XINTF 和并行 I/O)

    4.7 时钟和系统控制

    • 支持动态锁相环 (PLL) 比率变化,片载振荡器,安全装置定时器模块

    4.8 GPIO

    • GPIO0 到 GPIO63 引脚可以连接到八个外部内核中断其中的一个

    4.9 PIE

    • 可支持全部58个外设中断的外设中断扩展 (PIE) 块

    4.10 128 位安全密钥/锁

    • 保护闪存 / OTP/RAM 模块,防止固件逆向工程
    • 上文提到过

    4.11 增强型控制外设

    • ePWM,eCAP,eQEP

    4.12 3个32位定时器

    4.13 串行端口外设

    • CAN,SCI,McBSP,SPI,I2C

    4.14 12位模数转换器

    • 80ns转换速度,2×8通道输入复用
    • 两个采样保持,单一/同步转换
    • 内部或外部电压基准

    4.15 低功耗模式和省电模式

    • 支持IDLE(空闲)、STANDBY(待机)、HALT(暂停)模式
    • 可禁用独立外设时钟
    展开全文
  • 这是TMS320F28335最小系统板的非常好的设计资料
  • 【注意】 1. 芯片型号:TMS320F28335 2. 适用于NJUSTEO李彧晟老师课程 3. 参考资料:《TMS320F28335 DSP原理、开发及应用》 4. 对应PPT第二章80页 5. 本章内容较多而且较为重要,请结合PPT一起复习

    注意

    1. 芯片型号:TMS320F28335
    2. 适用于NJUSTEO李彧晟老师课程
    3. 参考资料:《TMS320F28335 DSP原理、开发及应用》
    4. 对应PPT第二章98页
    5. 本章内容较多而且较为重要,请结合PPT一起复习
    6. 为了考试复习的同学请谨慎参考,本笔记的大部分都考到

    1 概述

    1. 具有双采样保持器的12位转换内核;
    2. 同步采样模式或顺序采样模式;
    3. 模拟输入电压范围0~3V
    4. 快速采样功能,最高6.25MSPS;
    5. 16通道输入,多路时分复用;
    6. 自动定序功能,在一个采样序列内支持16次“自动转换”;
    7. 序列发生器可配置成两个独立8通道或者一个16通道
    8. 有多种触发源启动模数转换;
    9. 灵活的中断控制;
      在这里插入图片描述
    • 16个采样通道采用分时复用模式进行采样
    • 序列发生器决定采样对象,是一个存储地址的寄存器
    • S/H-A和S/H-B是两个采样保持器

    2 序列发生器工作模式

    • 无论是级联工作模式还是双序列工作模式,其本质都是通过设定通道的读取顺序来进行通道的读取选择。

    2.1 级联序列工作模式

    • 一个16通道序列发生器在这里插入图片描述

    2.2 双序列工作模式

    • 两个8通道序列发生器
      在这里插入图片描述

    3 ADC工作模式

      ADC还可以工作于同时采样模式或顺序采样模式。对于每个转换(或同时采样模式下的转换对),当前的CONVxx位字段定义要采样和转换的引脚(或一对引脚)。
      在顺序采样模式下,CONVxx的所有四个位定义输入引脚。 最高位定义了输入引脚与哪个采样保持缓冲器相关联,而低3位定义了偏移量。例如,如果CONVxx=0101b,则ADCINA5是所选的输入引脚。如果它=1011b,则ADCINB3为选定的输入引脚。
      在同时采样模式下,CONVxx寄存器的最高位被丢弃。每个采样和保持缓冲器都采样由CONVxx寄存器的低3位提供的偏移量给定的相关引脚。例如,如果CONVxx寄存器包含值0110b,则ADCINA6由S / H-A采样,而ADCINB6由S / H-B采样。如果值为1001b,则ADCINA1由S / H-A采样,ADCINB1由S / H-B采样。首先转换S / H-A中的电压,然后转换S / H-B电压。 S / H-A转换的结果放置在当前的ADCRESULTn寄存器中(假定定序器已复位,则为SEQ1的ADCRESULT0)。 S / H-B转换的结果放置在下一个ADCRESULTn寄存器中(假定定序器已复位,则为SEQ1的ADCRESULT1)。然后将结果寄存器指针加2(假设序列器最初已复位,则指向SEQ1的ADCRESULT2)。

    3.1 顺序采样模式

    • 由4位CONV来决定输入通道的采样
      在这里插入图片描述

    3.2 同步采样模式

    • 由4位CONV的低3位来决定输入通道的采样
      在这里插入图片描述

    4 中断控制

    在这里插入图片描述

    • 2种中断控制:
      Case1:每次SEQ序列结束产生中断;
      Case2:间隔一次SEQ序列结束产生中断。
      忽略Case3

    5 ADC采样结果的转换

    在这里插入图片描述

    • 其中Vin为输入电压,ADCLO为基准电压
    • 参考电压⼀般是0V,也可以通过寄存器更改

    输入电压超过[0,3]范围时如何处理?

    • 例如: -1.5 V < Vin < +1.5 V
      在这里插入图片描述
    • 使用运放电路
      Vadcinx = Vin + 1.5
      注意ADCLO是参考电压
    • 把结果减去偏移值,这里是1.5V
    #include “DSP2833x_Device.h”
    #define  offset  0x07FF
    void main(void)
    {
       int16 value;			// signed
    
       value = AdcMirror.ADCRESULT0 – offset;
    }
    

    6 ADC时钟配置

    在这里插入图片描述

    7 ADC基准电压

    • 默认情况下选择片内参考电压作为ADC转换的基准电压
    • 也可使用外部参考电压
      • 可选2.048 V, 1.5 V,1.024 V,由ADCREFSEL寄存器控制
      • 但输入引脚的电压仍不可超过0 - 3 V
        在这里插入图片描述
        在这里插入图片描述

    8 ADC相关寄存器

    8.1 ADC控制寄存器1(ADCTRL1)

    在这里插入图片描述

    Bit(s) Name value Description
    14 RESET 0,1 ADC模块的复位, 0:无反应;1:复位整个ADC模块
    13-12 SUSMOD 仿真挂起模式控制位
    00:仿真挂起被忽略
    01:当前序列结束后锁存结果
    10:当前转换结束后锁存结果
    11:序列发生器及回绕逻辑电路立即停止工作
    11-8 ACQ_PS 决定了SOC脉冲宽度,
    SOC脉冲宽度=(ACQ_PS[3:0]+1)×ADCCLK周期
    7 CPS 0,1 ADC内核时钟预分频位
    0: ADCCLK = FCLK / 1
    1: ADCCLK = FCLK / 2
    6 CONT_RUN 0,1 连续运行模式:
    0:启动/停止模式
    1:连续运行
    5 SEQ_OVRD 0,1 序列发生器覆盖功能
    0:允许序列发生器在完成MAX_CONVn个转换后回绕
    1:在序列发生器完成MAX_CONVn个转换后发生覆盖,只在序列发生器中的末端发生回绕
    4 SEQ_CASC 0,1 级联模式控制位
    0:序列发生器工作在双序列发生器方式
    1:序列发生器工作在级联方式,SEQ为16通道

    8.2 ADC控制寄存器2(ADCTRL2)

    在这里插入图片描述
    在这里插入图片描述

    8.3 ADC控制寄存器3

    在这里插入图片描述

    8.4 最大转换通道配置寄存器(ADCMAXCONV)

    在这里插入图片描述

    • 定义每次触发之后的转换格式
    • 根据序列发生器的工作方式(双序列发生器方式、级联序列发生器模式)的不同,MAX_CONVn有不同的定义:
      • 对于SEQ1,MAX_CONV1[2:0]起作用;
      • 对于SEQ2,MAX_CONV2[2:0]起作用;
      • 对于SEQ,MAX_CONV1[3:0]起作用。
    • 一个序列内所能完成的转换次数为MAX_CONVn+1次

    8.5 输入通道选择寄存器(ADCCHSELSEQx)

    在这里插入图片描述

    • 这个寄存器是配置输入通道的顺序,一共有4个寄存器,每个寄存器又被分成了4段,每一段为4位。
    • 在这里插入图片描述
      在这里插入图片描述

    8.6 ADC结果寄存器(ADCRESULTx)

    • 这个结果寄存器有连个,分别是 0x7108-0x7117和0x0B00~0x0B0F
      在这里插入图片描述
    展开全文
  • 参考资料:《TMS320F28335 DSP原理、开发及应用》 对应PPT第二章 本章内容较多而且较为重要,请结合PPT一起复习 1 内核时钟(SYSCLKOUT) PPT:29 英文表示一定要记住 1.1 产生 CLKIN 是到 CPU 的...
  • 参考资料:《TMS320F28335 DSP原理、开发及应用》 对应PPT第三章 1 DSP软件开发流程 下图是TI系列CCS开发环境基本框架 编译器的作用是将.c文件编译成.asm文件 汇编器是将.asm汇编到.obj 连接器是将.obj和.cmd...
  • TMS320F28335 DSP光伏离网并网逆变器PROTEL99SE设计原理图PCB+CCS软件工程源码+相关技术文档资料,可以做为你的设计参考。
  • 课程简介:本教程是依照南京研旭电气科技有限公司推出的TMS320F28335至尊板来进行详细讲解的。本书详细地阐述了TMS320F28335 DSP处理器内部各功能模块的硬件结构、工作原理、资源分配、功能特点以及应用等内容,同时...
  • 里面包含AD格式的圈套封装、开发板的原理图、原件清单和核心板尺寸图,资料属实需要的可以下载对于毕业设计或是需要封装和原理图参考设计的还是很有帮助的
  • 通过串口下载DSP程序,对于不想花钱买仿真器的开发者来说是一个难得的节约成本的好方法。对于一些不方便使用仿真器的场合,该方法也非常得便捷,方便。C2Prog是一款优秀的第三方软件,可以将.hex文件通过串口烧写...
  • , 《手把手教你学DSP:基于TMS320X281x》共享相关的资料,包括:所有实例C语言程序代码、Flash烧写所需资源以及常用的一些调试工具软件,可以在HELLODSP论坛《手把手教你学DSP:基于TMS320X281x》书友会下载。...
  • 实验室接到的项目,用TI的TMS320F28335做一个运动控制器。通过CAN总线接收上位机发送的信息、目标位置,DSP进行插补点的计算,通过SPI总线控制伺服电机。 之前没有接触过DSP,为了项目暴补了一下知识。就目前的感觉...
  • 前言本系列文章记录本人实际项目开发时对ti的DSP28335,以及CCS开发环境等的学习与记录,相对于2812来说,28335资料还是比較少的,只是原理是相通的,28335说白了就是比2812多一些外设,寄存器等东西;28335对于...
  •  本系列文章记录本人实际项目开发时对ti的DSP28335,以及CCS开发环境等的学习与记录,相对于2812来说,28335资料还是比較少的,只是原理是相通的,28335说白了就是比2812多一些外设,寄存器等东西;  28335对于...

空空如也

空空如也

1 2 3
收藏数 52
精华内容 20
关键字:

tms320f28335资料