1ap6234

1.1BoardConfig.mk

路径:/a83/android/device/softwinner/octopus-perf$

BoardConfig.mk文件决定android加载哪一款wifi模组,要配置成使用ap6212模组需要把BoardConfig.mk文件相关代码修改成如下:

修改有待进一步的确定。

1.2init.sun8i.rc配置

路径:/a83/android/device/softwinner/octopus-perf$

1.3、配置sys_config.fex

路径:/a83/lichee/tools/pack/chips/sun8iw6p1/configs/perf3_v1_0

1.4、配置.config文件

在进入linux3.4后直接Vim.config

1.ap6234

功能:wifistationsoftapwifidirectbt

接口类型:sdiouart

调试方案:octopus-f1,下面以r58平台android4.4为例说明ap6212的移植过程

这个文档和前面ap6212一直步骤其实差不多,这边主要补充两点:

1

AP6234性能比AP6330更好。

AP6234:Wi-Fi+BT,2.4GHz/5GHz,HT20/HT40,VSDB

AP6330:Wi-Fi+BT,2.4GHz/5GHz,HT20

所谓VSDB是指STA,P2P可以工作在不同的channel

2

除了完成一下28步骤,还要在电源管理中添加ap6234选项。

主要有一下三个文档:rf_pm.cwifi_pm.cbt_pm.c.

2软硬件设计部份差异说明

(1)ap6234采用的是26M晶振,A框去掉,即不需要反相器;

(2)ap6234硬件上第29悬空,与ap6210不同

(3)ap6234必须采用bcmhd新驱动1.201.34.x版本,如附件;

(4)ap6234firmware部分如附件请覆盖至\hardware\broadcom\wlan\bcmdhd\firmware

3内核配置

3.1.config

.config中需要配置如下选项,将wifidriver编译进内核

CONFIG_BCMDHD=m

CONFIG_BCMDHD_OOB=y

同时把ap6234驱动代码加到/android/hardware/broadcom/wlan/bcmdhd/firmware路径下。

3.2BoardConfig.mk

BoardConfig.mk文件决定android要加载哪一款wifi模组、是否开启蓝牙和使用哪一款蓝牙模组,要配置成使用ap6234模组并启用wifi和蓝牙功能需要把BoardConfig.mk文件的相关代码修改成如下。

#wifiandbtconfiguration

#1.WifiConfiguration

#BOARD_WIFI_VENDOR:=realtek

BOARD_WIFI_VENDOR:=broadcom

#1.1broadcomwifisupport

ifeq($(BOARD_WIFI_VENDOR),broadcom)

BOARD_WPA_SUPPLICANT_DRIVER:=NL80211

WPA_SUPPLICANT_VERSION:=VER_0_8_X

BOARD_WPA_SUPPLICANT_PRIVATE_LIB:=lib_driver_cmd_bcmdhd

BOARD_HOSTAPD_DRIVER:=NL80211

BOARD_HOSTAPD_PRIVATE_LIB:=lib_driver_cmd_bcmdhd

BOARD_WLAN_DEVICE:=bcmdhd

WIFI_DRIVER_FW_PATH_PARAM:="/sys/module/bcmdhd/parameters/firmware_path"

BOARD_USR_WIFI:=ap6234

includehardware/broadcom/wlan/bcmdhd/firmware/$(BOARD_USR_WIFI)/device-bcm.mk

endif

#2.BluetoothConfiguration

#makesureBOARD_HAVE_BLUETOOTHistrueforeverybtvendor

BOARD_HAVE_BLUETOOTH:=true

BOARD_HAVE_BLUETOOTH_BCM:=true

#BOARD_HAVE_BLUETOOTH_RTK:=true

#BLUETOOTH_HCI_USE_RTK_H5:=true

BOARD_HAVE_BLUETOOTH_NAME:=ap6234

BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR:=device/softwinner/tulip-t1/bluetooth/

说明:

1、“#”符号起注释作用;

2、“BOARD_USR_WIFI:=AP6234”宏指明wifi选用ap6234;

3、“BOARD_HAVE_BLUETOOTH:=true”宏指明使用蓝牙;

4、“BOARD_HAVE_BLUETOOTH_BCM:=true”宏指定蓝牙厂商为Broadcom

5、“BOARD_HAVE_BLUETOOTH_NAME:=ap6234”宏指明蓝牙模组名字;

6、“BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR:=device/softwinner/tulip-t1/bluetooth/”宏指明配置文件bdroid_buildcfg.h路径;

注意:

1、需注释掉#BOARD_HAVE_BLUETOOTH_RTK:=true

2、若不需要蓝牙功能只需要把相关宏注释掉就可以。

3OARD_USR_WIFI的大小写根据你在3.1中命名规则来写。

3.3init.sun8i.rc

这部分只要注意两点:

注意:

1若init.sun8iw6p1.rc文件无修改后代码,可手动添加;

2、需注释掉realtekwifibluetooth相关内容。

3.3octopus-perf3

octopus-f1.mk文件会在编译时拷贝指定文件到特定目录下,使用ap6234需要确认如下修改:

DEVICE_PACKAGE_OVERLAYS:=device/softwinner/octopus-perf/overlay\

$(DEVICE_PACKAGE_OVERLAYS)

PRODUCT_PACKAGES+=gatord

PRODUCT_PACKAGES+=\

ESFileExplorer\

VideoPlayer\

Bluetooth

PRODUCT_PACKAGES+=\

gps.exdroid\

PRODUCT_COPY_FILES+=\

device/softwinner/octopus-perf/configs/gps.conf:system/etc/gps.conf

PRODUCT_COPY_FILES+=\

device/softwinner/octopus-perf/kernel:kernel\

device/softwinner/octopus-perf/fstab.sun8i:root/fstab.sun8i\

device/softwinner/octopus-perf/init.sun8i.rc:root/init.sun8i.rc\

device/softwinner/octopus-perf/init.recovery.sun8i.rc:root/init.recovery.sun8i.rc\

device/softwinner/octopus-perf/ueventd.sun8i.rc:root/ueventd.sun8i.rc\

device/softwinner/octopus-perf/recovery.fstab:recovery.fstab\

device/softwinner/octopus-perf/modules/modules/nand.ko:root/nand.ko\

device/softwinner/octopus-perf/modules/modules/sunxi_tr.ko:root/sunxi_tr.ko\

device/softwinner/octopus-perf/modules/modules/disp.ko:root/disp.ko\

device/softwinner/octopus-perf/modules/modules/sw-device.ko:obj/sw-device.ko\

PRODUCT_COPY_FILES+=\

device/softwinner/octopus-perf/configs/tablet_core_hardware.xml:system/etc/permissions/tablet_core_hardware.xml

PRODUCT_COPY_FILES+=\

device/softwinner/octopus-perf/configs/camera.cfg:system/etc/camera.cfg\

device/softwinner/octopus-perf/configs/cfg-Gallery2.xml:system/etc/cfg-Gallery2.xml\

device/softwinner/octopus-perf/configs/gsensor.cfg:system/usr/gsensor.cfg\

device/softwinner/octopus-perf/configs/media_profiles.xml:system/etc/media_profiles.xml\

device/softwinner/octopus-perf/configs/sunxi-keyboard.kl:system/usr/keylayout/sunxi-keyboard.kl\

device/softwinner/octopus-perf/configs/sunxi-ir.kl:system/usr/keylayout/sunxi-ir.kl\

device/softwinner/octopus-perf/configs/tp.idc:system/usr/idc/tp.idc

PRODUCT_COPY_FILES+=\

frameworks/native/data/etc/android.hardware.touchscreen.multitouch.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.xml\

frameworks/native/data/etc/android.hardware.location.gps.xml:system/etc/permissions/android.hardware.location.gps.xml\

frameworks/native/data/etc/android.hardware.ethernet.xml:system/etc/permissions/android.hardware.ethernet.xml

PRODUCT_COPY_FILES+=\

device/softwinner/octopus-perf/bluetooth/bt_vendor.conf:system/etc/bluetooth/bt_vendor.conf

PRODUCT_COPY_FILES+=\

device/softwinner/octopus-perf/bluetooth/bt_vendor.conf:system/etc/bluetooth/bt_vendor.conf

PRODUCT_COPY_FILES+=\

frameworks/native/data/etc/android.hardware.camera.xml:system/etc/permissions/android.hardware.camera.xml\

frameworks/native/data/etc/android.hardware.usb.accessory.xml:system/etc/permissions/android.hardware.usb.accessory.xml

#Lowmem(memory<=512M)deviceshouldnotcopyandroid.software.managed_users.xml

PRODUCT_COPY_FILES+=\

frameworks/native/data/etc/android.software.managed_users.xml:system/etc/permissions/android.software.managed_users.xml

PRODUCT_COPY_FILES+=\

device/softwinner/octopus-perf/media/bootanimation.zip:system/media/bootanimation.zip\

#cameraconfigforcameradetector

PRODUCT_COPY_FILES+=\

device/softwinner/octopus-perf/hawkview/sensor_list_cfg.ini:system/etc/hawkview/sensor_list_cfg.ini

#RadioPackagesandConfigurationFlie

$(callinherit-product,device/softwinner/common/rild/radio_common.mk)

#$(callinherit-product,device/softwinner/common/ril_modem/huawei/mu509/huawei_mu509.mk)

#$(callinherit-product,device/softwinner/common/ril_modem/Oviphone/em55/oviphone_em55.mk)

#sensor

PRODUCT_COPY_FILES+=\

device/softwinner/octopus-perf/sensor.sh:system/bin/sensor.sh

注意:

1android.hardware.wifi.xml拷贝到指定目录,以使设置界面显示wifi

2android.hardware.wifi.direct.xml是在wifi设备中显示wifidirect选项

3android.hardware.bluetooth.xml是在setting界面中显示蓝牙

4、“PRODUCT_PACKAGES+=Bluetooth”指定去编译Bluetooth.apk

3.4config.xml

config.xml文件路径:\android5.1\device\softwinner\tulip-t1\overlay\frameworks\base\core\res\res

\values\config.xml

要打开蓝牙功能,需要在config.xml中把蓝牙的bt-pan网口打开,修改的部分代码如下。

<!--Listofregexpressionsdescribingtheinterface(ifany)thatrepresenttetherable

Wifiinterfaces.Ifthedevicedoesn'twanttosupporttetheringoverWifithis

shouldbeempty.Anexamplewouldbe"softap.*"-->

<!--default:disableSoftapfeature-->

<string-arraytranslatable="false"name="config_tether_wifi_regexs">

<item>"wlan0"</item>

</string-array>

-->

<!--Listofregexpressionsdescribingtheinterface(ifany)thatrepresenttetherable

bluetoothinterfaces.Ifthedevicedoesn'twanttosupporttetheringoverbluetooththis

shouldbeempty.-->

<!--default:disableBluetoothPANfeature-->

<string-arraytranslatable="false"name="config_tether_bluetooth_regexs">

<item>"bt-pan"</item>

</string-array>

<!--Listofregexpressionsdescribingtheinterface(ifany)thatrepresenttetherable

注:若相应平台该目录下没config.xml文件,可到其他相应平台对应目录下拷贝一份。

3.5vnd_<product>.txt

蓝牙配置文件设置波特率,uart设备文件和firmware路径(初始值),调试信息配置

文件路径:device\softwinner\tulip-t1\bluetooth

创建vnd_$(product).txt文件,如vnd_tulip-t1.txt

#Setbaudrateto1500000

UART_TARGET_BAUD_RATE=1500000

BLUETOOTH_UART_DEVICE_PORT="/dev/ttyS1"

FW_PATCHFILE_LOCATION="/system/vendor/modules/"

LPM_IDLE_TIMEOUT_MULTIPLE=5

#LPM_SLEEP_MODE=FALSE

BT_WAKE_VIA_PROC=TRUE

BTVND_DBG=TRUE

BTHW_DBG=TRUE

VNDUSERIAL_DBG=TRUE

UPIO_DBG=TRUE

3.6bt_vendor.conf

文件路径:device\softwinner\tulip-t1\bluetooth

#UARTdeviceportwhereBluetoothcontrollerisattached

UartPort=/dev/ttyS1

#Firmwarepatchfilelocation

FwPatchFilePath=/system/vendor/modules/

#Firmwarename

FwPatchFileName=bcm43438a0.hcd

3.7bdroid_buildcfg.h

android5.1\device\softwinner\tulip-t1\bluetooth\bdroid_buildcfg.h主要配置打开蓝牙时显示的本机名字。

#ifndef_BDROID_BUILDCFG_H

#define_BDROID_BUILDCFG_H

#defineBTM_DEF_LOCAL_NAME"octopus-perf"

#defineBTA_DM_COD{0x1A,0x01,0x14}

#defineBTIF_HF_SERVICES(BTA_HSP_SERVICE_MASK)

#defineBTIF_HF_SERVICE_NAMES{BTIF_HSAG_SERVICE_NAME}

#endif

3.8引脚配置

ap6212引脚在lichee\tools\pack\chips\sun8iw6p1\configs\f1\sys_config.fex中定义,需根据具体的原理图做相应的配置,需要配置的选项有:

mmc0_para]

sdc_used=1

sdc_detmode=4

sdc_buswidth=4

sdc_clk=port:PF02<2><1><2><default>

sdc_cmd=port:PF03<2><1><2><default>

sdc_d0=port:PF01<2><1><2><default>

sdc_d1=port:PF00<2><1><2><default>

sdc_d2=port:PF05<2><1><2><default>

sdc_d3=port:PF04<2><1><2><default>

sdc_det=port:PF06<0><1><2><default>

sdc_use_wp=0

sdc_wp=

sdc_isio=0

sdc_regulator="none"

sdc_power_supply="vcc-card"

.......................

说明:

1、“;”符号起注释作用

2、“module_num”宏表示选用哪一款wifi模组;

3、“module_power1”宏表示给模组供电的是axp的哪路ldo,一般选vcc-wifi-io(参见[pmu1_regu]);

4、“module_power1_vol”宏设置ldo的供电电压,ap6212供电电压为3.3V

5、“lpo_use_apclk”选择32k时钟源,根据原理图配置,一般选ac10032k2。

6、确认硬件sd使用的是哪一种,同时

Wifi部分

;wificonfiguration

;wifi_used:0-notuse,1-use

;wifi_sdc_id:0-SDC0,1-SDC1,2-SDC2,3-SDC3

;wifi_usbc_id:0-USB0,1-USB1,2-USB2

;wifi_usbc_type:1-EHCI(speed2.0),2-OHCI(speed1.0)

;wl_reg_on:wififunctionenableio

;wl_host_wake:wifidevicewake-uphost

;wl_host_wake_invert:whetherwl_host_wakeuseinverterbetweenapandmodule

;0:notused,1:used

;--------------------------------------------------------------------------------

[wifi_para]

wifi_used=1

wifi_sdc_id=1

wifi_usbc_id=1

wifi_usbc_type=1

wl_reg_on=port:PL02<1><default><default><0>

wl_host_wake=port:PL03<4><default><default><0>

wl_host_wake_invert=0

说明:

1、“;”符号起注释作用

2、“wifi_used”宏赋值为1表示使用wifi,为0表示不使用;

3、“wifi_sdc_id”宏表示SDIO接口wifi使用哪个MMC控制器;

4、“wl_reg_on”宏表示wifi使能脚,打开wifi的过程,会拉高,根据原理图配置;

5、“wl_host_wake”宏表示wifi唤醒主控功能(WL-WAKE-AP),根据实际原理图配置。

蓝牙部份

;bluetoothconfiguration

;bt_used:0-noused,1-used

;bt_uard_id: 0-uart0,1-uart1,2-uart2

;bt_rst_n:btfunctionenableio

;bt_wake:hostwake-upbluetoothdevice

;bt_wak_host:btdevicewake-uphost

;bt_host_wake_invert:whetherbt_host_wakeuseinverterbetweenapandmodule

;0:notused,1:used

;--------------------------------------------------------------------------------

[bt_para]

bt_used=1

bt_uart_id=1

bt_rst_n=port:PL04<1><default><default><0>

bt_wake=port:PH10<1><default><default><0>

bt_host_wake=port:PL05<4><default><default><0>

bt_host_wake_invert=0

说明:

1、“bt_used”宏赋值为1表示使用蓝牙,为0表示不使用;

2、“bt_uart_id”宏表示蓝牙所使用的是哪个uart

3、“bt_rst_n”宏表示蓝牙使能脚,蓝牙打开时会拉高,根据实际原理图配置;

4、“bt_wake”宏表示主控唤醒蓝牙(AP-WAKE-BT,根据实际原理图配置;

5、“bt_host_wake”宏表示蓝牙唤醒主控(BT-WAKE-AP,根据实际原理图配置。

4.常见问题

硬件checklist

1.26M晶振电路不需要接反相器,XTAL_IN/XTAL_OUT直接接模块Pin10/Pin11;

2.32K时钟波形正常输出;

3.Pin22VDDIO电压(3.3V)

4.Pin9VBAT接电池有电压;

5.Pin29VDD_TCXO需要悬空;

软件checklist

1.Wifi和蓝牙都打不开?
请确认确认/system/vendor/modules/是否有以下文件,名字是否正确?
bcmhd.ko
fw_bcm43438a0.bin
fw_bcm43438a0_apsta.bin
fw_bcm43438a0_p2p.bin
nvram.txt
如果没有这些文件,说明编译的时候没有编到,请检查是否BoardConfig.mk大小写以及hardware\broadcom\wlan\bcmdhd\firmware\firmware-bcm.mk是否有加ap6212

2.蓝牙打不开?
先确认4.1.5有加,再确认4.1.7波特率是否设置正确,另外改了Boardconfig.mk需要makeclean

3.蓝牙打开后搜不到设备?
先确认是否加天线,再确认确认4.1.5的FwPatchFileName是否正确;

其他:

1.搜不到5G信号?搜不到某些蓝牙设备?某些路由器连接不上?
晶振存在频偏,请尝试从小到大更换26M晶振起振电路上的两个谐振电容。

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. cocos2d-x 遇到的错误与解决方法。make: *** No rule to make ta
  6. android--使用Struts2服务端与android交互
  7. 在LinearLayout中实现列表,列表采用LinearLayout横向布局-androi
  8. Android(安卓)Studio布局模板二之Navigation Menu
  9. Java中使用ini格式配置文件

随机推荐

  1. 【Android】关联source code的方法
  2. Android监听耳机按键事件
  3. Android Activity启动和退出过程中onResu
  4. android基础命令
  5. Android零点一度的区别——Matrix
  6. Android(安卓)Studio学习路程(6)
  7. android获取位图
  8. Android 禁止屏幕旋转 & 屏幕旋转不刷新
  9. Android 中 画图与动画旋转效果(中级)
  10. Android -- getSystemService