(原创)AP6212蓝牙模块在am335x控制板上的应用

Posted xihong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(原创)AP6212蓝牙模块在am335x控制板上的应用相关的知识,希望对你有一定的参考价值。

      主控板wifi模块调通后接着调试蓝牙,经过两周的摸索,终于把蓝牙应用基本建立起来,下面记录下大概流程。

1、硬件管脚设置

static void uart4_init(int evm_id, int profile)
{
/* Configure Uart4*/
printk(KERN_ERR"====== BT(AP6212) init ========\n");
setup_pin_mux(uart4_pin_mux);

/* Init Broadcom bluetooth, added by MXH */
gpio_request_one(GPIO_TO_PIN(1, 26), GPIOF_OUT_INIT_LOW, "BT_RST");
gpio_export(GPIO_TO_PIN(1, 26), 0);
/* reset bt chip here */
gpio_set_value(GPIO_TO_PIN(1, 26), 0);
mdelay(100);
gpio_set_value(GPIO_TO_PIN(1, 26), 1);
/* wake BT Module assign */
gpio_request_one(GPIO_TO_PIN(1, 24), GPIOF_OUT_INIT_HIGH, "BT_WAKE");
gpio_export(GPIO_TO_PIN(1, 24), 0);
gpio_set_value(GPIO_TO_PIN(1, 24), 1);
mdelay(50);
/* assign wake respone signal */
gpio_request_one(GPIO_TO_PIN(1, 25), GPIOF_IN, "BT_HOST_WAKE");

/* temp for rts cts */
gpio_request_one(GPIO_TO_PIN(3, 0), GPIOF_OUT_INIT_LOW, "CTS");
gpio_export(GPIO_TO_PIN(3, 0), 0);
gpio_set_value(GPIO_TO_PIN(3, 0), 0);

gpio_request_one(GPIO_TO_PIN(0, 29), GPIOF_OUT_INIT_LOW, "RTS");
gpio_export(GPIO_TO_PIN(0, 29), 0);
gpio_set_value(GPIO_TO_PIN(0, 29), 0);

return;
}

2、移植蓝牙协议栈4.95

其中openobex1.5 在config.h定义 HAVE_BLUETOOTH后,无法成功编译,所有仍然采用openobex1.3版本。

协议栈移植参考《交叉编译 bluez-4.95 步骤及使用方法》http://blog.csdn.net/u011408697/article/details/44459239,

但glib库改用2.24.2,并增加了openobex1.3的移植。

 

3、调试过程见本人的《蓝牙调式记录-20170623.txt》

以上是关于(原创)AP6212蓝牙模块在am335x控制板上的应用的主要内容,如果未能解决你的问题,请参考以下文章

使用CCS调试基于AM335X的SPLUboot(原创)

AP6236价格 AP6236资料 AP6236驱动

RK3399之ap6212移植

AM335x内核模块驱动之LED

干货分享丨AM335x平台如何通过udev固定4G模块串口号的解决方法

am335x hid-multitouch.c