官方淘宝店 易迪拓培训 旧站入口
首页 > 手机设计 > MTK手机设计平台 > 6735 GPIO模拟SPI

6735 GPIO模拟SPI

05-08
请教大侠,6735上的GPIO模拟SPI,速度要10M,请问配置上要做哪些处理?现在发现35平台的GPIO速度很慢,顶多是1M都不到,跪求~

有人深入MTK GPIO的设置吗?

有人懂用GPIO模拟PWM在5M速度吗?

首先,确保你的代码对应的指令周期应足够小,可以看看编译后对应的汇编代码,另外不要有函数调用等操作;其次,可以将模拟的这一小段代码放在内存中运行。至于GPIO的设置对拉高拉低时间的影响我印象应该是没有的,你可以再查查相关文档。

DGH SH SRGH ER HSDG ER S

5楼的大神牛啊

路过看看

#define SPICS_GPIO_PIN GPIO_SPI_CS_PIN//(GPIO_DISP_LSCE_PIN)
#define SPISCK_GPIO_PIN GPIO_SPI_SCK_PIN//(GPIO_DISP_LSCK_PIN)
#define SPISDA_GPIO_PIN GPIO_SPI_MOSI_PIN//(GPIO_DISP_LSDA_PIN)

#define SET_SPICS_LOW SET_GPIO_OUT(SPICS_GPIO_PIN, 0)
#define SET_SPICS_HIGH SET_GPIO_OUT(SPICS_GPIO_PIN, 1)
#define SET_SPISCK_LOW SET_GPIO_OUT(SPISCK_GPIO_PIN, 0)
#define SET_SPISCK_HIGH SET_GPIO_OUT(SPISCK_GPIO_PIN, 1)
#define SET_SPISDA_LOW SET_GPIO_OUT(SPISDA_GPIO_PIN, 0)
#define SET_SPISDA_HIGH SET_GPIO_OUT(SPISDA_GPIO_PIN, 1) //mt_set_gpio_out
static void spi_send_data(unsigned char data)
{
unsigned int i;
SET_SPICS_LOW;
UDELAY(1);
SET_SPISCK_LOW;
SET_SPISDA_HIGH;
UDELAY(1);
SET_SPISCK_HIGH;
UDELAY(1);
for (i = 0; i < 8; ++ i)
{
SET_SPISCK_LOW;
if (((data<<i) &0x80) ==0x80) {
SET_SPISDA_HIGH;
} else {
SET_SPISDA_LOW;
}
UDELAY(1);
SET_SPISCK_HIGH;
UDELAY(1);
}
SET_SPISCK_LOW;
SET_SPICS_HIGH;
}
static void spi_send_cmd(unsigned char data)
{
unsigned int i;
SET_SPICS_LOW;
UDELAY(1);
SET_SPISCK_LOW;
SET_SPISDA_LOW;
UDELAY(1);
SET_SPISCK_HIGH;
UDELAY(1);
for (i = 0; i < 8; ++ i)
{
SET_SPISCK_LOW;
if (((data<<i) &0x80) ==0x80) {
SET_SPISDA_HIGH;
} else {
SET_SPISDA_LOW;
}
UDELAY(1);
SET_SPISCK_HIGH;
UDELAY(1);
}
SET_SPISCK_LOW;
SET_SPICS_HIGH;
}

专业供应MTK套片:4G 芯片:MT6795 MT6755 MT6753 MT6735 MT6752
3G: MT6580 MT6582 MT6572
平板芯片:MT8735 MT8382 MT8127 MT8163
穿戴设备:MT2601 MT2503
有需求请联系:林生 电话:15014010664 QQ:616684804

see see

......

学习下

他应该有好几组SPI的啊 你可以看配置表

Top