微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > CC1310-把ADC例程移植到不同封装时和flash管脚冲突的问题

CC1310-把ADC例程移植到不同封装时和flash管脚冲突的问题

时间:12-23 整理:3721RD 点击:

在CC1310的launchpad上调试通过的ADC代码移植到自己画的PCB上面的时候遇到了一个小问题:启动的时候总是会进入AD转换失败的循环里面,如图

launchpad和自己画的PCB差别在于:

1,launchpad用的是1310F128RGZ,带一个spi-flash,而自己PCB上用的是1310F32RHB,没有flash;

2,代码移植时在.cmd文件里面修改了flash大小,有个flash管脚(IO20)在RHB封装上没有所以直接注释了(在代码里面没看到和flash相关的操作,之前在自己PCB上面测试RF相关参数的时候也是能正常测试的,所以当时推断应该不会用到flash);

搜了一下launchpad的板载flash作用,貌似仅仅和固件升级有关?……

所以疑问在于,launchpad上的flash(AD例程里面单次和序列都测试过了,一样的效果)起一个什么作用?是否必须?还是说这个问题是由封装差异导致的?还是别的问题……?

谢谢

进一步测试,把管脚初始化列表里面除串口外的全部管脚注释掉,在launchpad上面也是没问题的:

const PIN_Config BoardGpioInitTable[] = {

    //CC1310_LAUNCHXL_PIN_RLED | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,       /* LED initially off          */
    //CC1310_LAUNCHXL_PIN_GLED | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,       /* LED initially off          */
    //CC1310_LAUNCHXL_PIN_BTN1 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_HYSTERESIS,          /* Button is active low       */
    //CC1310_LAUNCHXL_PIN_BTN2 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_HYSTERESIS,          /* Button is active low       */
    //CC1310_LAUNCHXL_SPI_FLASH_CS | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL | PIN_DRVSTR_MIN,  /* External flash chip select */
    CC1310_LAUNCHXL_UART_RX | PIN_INPUT_EN | PIN_PULLDOWN,                                              /* UART RX via debugger back channel */
    CC1310_LAUNCHXL_UART_TX | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL,                        /* UART TX via debugger back channel */
    //CC1310_LAUNCHXL_SPI0_MOSI | PIN_INPUT_EN | PIN_PULLDOWN,                                            /* SPI master out - slave in */
    //CC1310_LAUNCHXL_SPI0_MISO | PIN_INPUT_EN | PIN_PULLDOWN,                                            /* SPI master in - slave out */
    //CC1310_LAUNCHXL_SPI0_CLK | PIN_INPUT_EN | PIN_PULLDOWN,                                             /* SPI clock */

    PIN_TERMINATE
};

基本上可以排除了和flash有关的可能性……会不会是库的问题?

问题解决了……确实是库的“问题”,但完全可以自行解决……

在CC1310_LAUNCHXL.h里面修改相关的管脚定义就行了:

/* Analog capable DIOs */
#define CC1310_LAUNCHXL_DIO23_ANALOG          IOID_7
#define CC1310_LAUNCHXL_DIO24_ANALOG          IOID_8
#define CC1310_LAUNCHXL_DIO25_ANALOG          IOID_9
#define CC1310_LAUNCHXL_DIO26_ANALOG          IOID_10
#define CC1310_LAUNCHXL_DIO27_ANALOG          IOID_11
#define CC1310_LAUNCHXL_DIO28_ANALOG          IOID_12
#define CC1310_LAUNCHXL_DIO29_ANALOG          IOID_13
#define CC1310_LAUNCHXL_DIO30_ANALOG          IOID_14

之所以会报错是因为API里面开启AD的时候还会初始化一次相关的管脚,并不是在一般的Board_initGeneral();里面直接一次过初始化所有要用到的管脚,思路不一样……

好了至此。秀智商了:(

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top