VSFBoard + BCM43362A2模块

[复制链接]
 楼主| vsfopen 发表于 2018-9-4 17:25 | 显示全部楼层 |阅读模式
本帖最后由 vsfopen 于 2018-9-4 17:35 编辑

目前测试使用SDIO接口,EWM1062模块(BCM43362A2芯片都可以,便宜的模块还有AP6181):
bcm43362_hw.jpg
是不是做成扩展板更好,类似这样:
bcm43362_ext_unconnected.jpg bcm43362_ext.jpg

硬件接口如下:
bcm43362_ifs.jpg
SDIO使用PB0-PB5的SDIO0
RST接PB10
WAKEUP接PB8
MODE接PB9

使用vsfaio工程里的wifi,修改inclue路径最后一个为usrapp/wifi
CDC串口输出:
bcm43362_test.jpg

代码:
  1. static vsf_err_t usrapp_thread(struct vsfsm_pt_t *pt, vsfsm_evt_t evt)
  2. {
  3.         struct usrapp_t *app = (struct usrapp_t *)pt->user_data;
  4.         struct vsfsm_pt_t *caller_pt = &app->caller_pt;
  5.         struct bcm_wifi_t *wifi = &app->net.wifi;
  6.         struct vsfip_netif_t *netif = &wifi->netif;
  7.         vsf_err_t err;

  8.         vsfsm_pt_begin(pt);

  9.         bcm_wifi_netif_init(wifi);
  10.         caller_pt->sm = pt->sm;
  11.         caller_pt->state = 0;
  12.         vsfsm_pt_entry(pt);
  13.         err = vsfip_netif_add(caller_pt, evt, netif);
  14.         if (err) return err;

  15.         vsfdbg_printf("wifi: f1sig = 0x%08X MAC(%d) = %02X:%02X:%02X:%02X:%02X:%02X"
  16.                         VSFCFG_DEBUG_LINEEND, wifi->bus.f1sig, netif->macaddr.size,
  17.                         netif->macaddr.addr.s_addr_buf[0], netif->macaddr.addr.s_addr_buf[1],
  18.                         netif->macaddr.addr.s_addr_buf[2], netif->macaddr.addr.s_addr_buf[3],
  19.                         netif->macaddr.addr.s_addr_buf[4], netif->macaddr.addr.s_addr_buf[5]);

  20.         bcm_sdpcm_get_iovar_buffer(&app->net.cmd_buffer, 256, BCMIOVAR_VER);
  21.         if (NULL == app->net.cmd_buffer) return VSFERR_FAIL;
  22.         caller_pt->user_data = wifi;
  23.         caller_pt->state = 0;
  24.         vsfsm_pt_entry(pt);
  25.         err = bcm_sdpcm_ioctrl(caller_pt, evt, BCM_INTERFACE_STA,
  26.                         BCM_SDPCM_CMDTYPE_GET, BCMIOCTRL_GET_VAR, app->net.cmd_buffer,
  27.                         &app->net.reply_buffer);
  28.         if (err > 0) return err;
  29.         else if (err < 0)
  30.         {
  31.                 vsfdbg_prints("Fail to read version." VSFSHELL_LINEEND);
  32.                 vsfip_buffer_release(app->net.cmd_buffer);
  33.                 return err;
  34.         }
  35.         vsfip_buffer_release(app->net.cmd_buffer);
  36.         if (app->net.reply_buffer != NULL)
  37.         {
  38.                 if (app->net.reply_buffer->buf.size > 0)
  39.                         vsfdbg_printf("wifi: %s", app->net.reply_buffer->buf.buffer);
  40.                 vsfip_buffer_release(app->net.reply_buffer);
  41.         }

  42. #if 1
  43.         caller_pt->state = 0;
  44.         vsfsm_pt_entry(pt);
  45.         err = bcm_wifi_scan(caller_pt, evt, &app->net.reply_buffer, BCM_INTERFACE_STA);
  46.         if (err < 0) return err;
  47.         else if (app->net.reply_buffer != NULL)
  48.         {
  49.                 struct bcm_wifi_escan_result_t *scan_result =
  50.                                 (struct bcm_wifi_escan_result_t *)app->net.reply_buffer->buf.buffer;

  51.                 for (uint16_t i = 0; i < scan_result->bss_count; i++)
  52.                 {
  53.                         vsfdbg_printf("wifi_scan: %02X:%02X:%02X:%02X:%02X:%02X %s" VSFCFG_DEBUG_LINEEND,
  54.                                 scan_result->bss_info[i].bssid[0], scan_result->bss_info[i].bssid[1],
  55.                                 scan_result->bss_info[i].bssid[2], scan_result->bss_info[i].bssid[3],
  56.                                 scan_result->bss_info[i].bssid[4], scan_result->bss_info[i].bssid[5],
  57.                                 scan_result->bss_info[i].ssid);
  58.                 }
  59.                 vsfip_buffer_release(app->net.reply_buffer);
  60.         }
  61.         if (err != 0) return err;
  62. #else
  63.         caller_pt->state = 0;
  64.         vsfsm_pt_entry(pt);
  65.         err = app->net.key != NULL ?
  66.                 bcm_wifi_join(caller_pt, evt, NULL, app->net.ssid,
  67.                                 BCM_AUTHTYPE_WPA2_AES_PSK, (const uint8_t *)app->net.key, strlen(app->net.key)) :
  68.                 bcm_wifi_join(caller_pt, evt, NULL, app->net.ssid, BCM_AUTHTYPE_OPEN, NULL, 0);
  69.         if (err) return err;
  70.         usrapp_net_on_connect(&app->net.wifi_net, bcm_wifi_get_netif(&app->net.wifi));
  71. #endif

  72.         vsfsm_pt_end(pt);
  73.         return VSFERR_NONE;
  74. }



huahua12333 发表于 2020-2-22 19:57 | 显示全部楼层
K了我一个月的站,刚才site的时候

90

主题

325

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部