1、8258,如何生成8位随机数地址的代码
答:一般协议栈中有rand()函数可以生成随机数。
2、
start_reboot();前调用串口发送,不成功
beautifulzzzz
May 27, 2017 17:59
Subscribe
中/A
在调用start_reboot前调用的串口发送不成功,即使在串口发送后用while循环延时10s也发送不成功。请问这是什么原因导致的,是不是贵司封装的串口驱动有些特殊?
答:
TL_tuyfJul 08, 2017 21:23
1
中 /A
可以看看芯片是不是进入了suspend状态,可以加一个逻辑分析仪抓一下,如果进入suspend的话,发送是不会成功的。
凉白开Jul 13, 2017 10:16
0
中 /A
应该是发送函数没有被调用,你只是把要发送的内容加到队列里而已。你定时的方式10秒后再调用重启试试
3、泰凌微SDK是否支持RTOS
答:BLE SDK不支持RTOS(实时操作系统)
4、泰凌微芯片烧入程序是否支持断点调试或者分步执行
答:不支持,我们的工具不支持断点和分步执行模式,您可以使用tdebug(可以通过wtcdb打开)来观察变量值和其他信息。并且可以使用wtcdb来检查RAM、寄存器、闪存等的值。可以参考调试工具文件中的相关文档。
5、在这个论坛上,名为AN 15071500-E3刻录错误解决方案的文件Telink Internall Flash.pdf位于sdk \通用调试工具列表中,提到了一个boot.bin二进制文件,用于解决与EVK中刻录的错误固件相关的问题。我在哪里可以找到这个boot.bin文件?
答:Ε/一个你好何塞:有一个简单的方法来恢复这些问题的板。切断烧录EVK电源,将DUT连接到烧录EVK上,用工具或导线短接PIN VDDEC中的两点电容,然后将烧录EVK连接到PC上,释放电容短线。现在您应该能够重置DUT了。或者有时您可以将GND(DUT)连接到GND(燃烧EVK), SWS(DUT)连接到(燃烧EVK),然后通过wtcdb复位mcu,如果工作,连接VCC线,稍后您将照常操作。
6、我想知道是否有可能在TLSR8255的GPIO引脚处获得48 MHz时钟输出。检查文档,我看到从24 MHz时钟到48 MHz有一个加倍器,并且有一个USB_clk和一种方法可以获得48 MHz到FHS,但我不知道是否有方法可以在GPIO引脚中获得该信号。目标是为外部Sub-GHz收发器提供48 MHz时钟。
答:/一个Hi卡米洛,根据您下面的描述,您期望从GPIO引脚输出时钟信号?如果是这样的话,这将是一个不支持的功能。可以将时钟源输入到telink MCU中,并将其加倍到2x, 4x,…到目标时钟速度然后(必要时将其分开)将其渲染到USB,DMIC,系统时钟,系统计时器时钟…但不是输出到IO引脚的出路,然后渲染到其他外设。在您的情况下,例如,如果需要一个48Mhz时钟来驱动外部Sub-GHz收发器,看起来您将使用一些外部OSC,或者使用内部OSC/RC与Sub-GHz收发器SOC一起使用。仅供参考基德仙灵
7、泰凌微现在的蓝牙芯片皆为BLE Soc,暂时还没有蓝牙音频的芯片
8、怎么才能修改到MAC地址的前2byte
答:可以通过wtcdb手机擦除flash指定地址,并写入特定内容
9、sig mesh 在工程中添加多个能单独控制的继电器。我们需要开发一个sig mesh 设备,设备上有4个继电器,希望每个继电器都能被单独控制,请问我该如何在工程中为这四个继电器添加element,SDK版本是2.6.1
答:目前sig meshsdk不支持4个element。
zhuyunclhMay 27, 2019 09:54
10、
中 /A
[quote=TL_Porter post_id=1004 time=1558610086 user_id=58] sdk中myprintf.c/h文件里面有相关代码,使用的是gpio,模拟串口打印的。你当然也可以用硬件串口tx来打log。但一般用模拟的方法。可参考如下方法配置下:
1.
需要打印的文件包含:
#include "../../application/print/u_printf.h" ,注意包含头文件
2.
u_printf.h中: #define UART_PRINT_DEBUG_ENABLE 1
application/print/putcahr.c中 #define UART_PRINT_DEBUG_ENABLE 1
3.
app_config定义打印口:
///printf///
#define PRINT_BAUD_RATE 115200
#define DEBUG_INFO_TX_PIN GPIO_PA1
#define PA1_OUTPUT_ENABLE 1
#define PULL_WAKEUP_SRC_PA1 PM_PIN_PULLUP_1M [/quote]
SIG_MESH_Release_2.8.1_20190430代码里,8269相关的配置
主要是HCI_LOG_FW_EN 0 改1
#define HCI_ACCESS HCI_USE_UART
UART_GPIO_SEL == UART_GPIO_8267_PC2_PC3
但是依然无法打印,我的疑惑是,PC2既然是UTX口,这样配置软件模拟串口可行? [attachment=1]微信截图_20190522110527.png[/attachment] [attachment=0]微信图片_20190527095426.png[/attachment]
11、telink mesh是私有协议,没有低功耗。如果用低功耗,可以考虑sig mesh
12、想要实现Advertising和Conn sate Slave role 状态下能够Sanning(Scanning feature)。使用你们的826x feature test示例工程做测试,发现可以正常Sanning,但是原本正常的Advertising却失效了。只有把blc_ll_addScanningInAdvState去掉才能恢复Advertising,但是肯定又不能sanning了。在线求解?
在826x feature test里把#define FEATURE_TEST_MODE设置为 TEST_SCANNING_IN_ADV_AND_CONN_SLAVE_ROLE 应该是可以广播包并扫描的
使用的是8261/8267芯片,已经在826x feature test里把#define FEATURE_TEST_MODE设置为 TEST_SCANNING_IN_ADV_AND_CONN_SLAVE_ROLE,是设置好了的。826x feature test里面其它的代码丝毫未动(看代码里发送的应该是正常的可连接广播包),但就是有问题,一旦加了blc_ll_initScanning_module(tbl_mac);就没有广播发出了。你们自己也可以试试呢,如果你们的正常,只是我的有问题那就崩溃了
13、
1) heartbeat是发给provisioner者,该消息可经过各节点中继透传,各节点不需要处理该消息。
2)原来的信息保存在flash当中,如果不需要此功能,可擦除512K flash清空。
3)一个是节点之间通过client-server模型来发送,另一个你提到的是GATT发送信
4)generic model都是默认打开的。
5)vender model目前只支持一个,更多的vendor model可由后续的参数定义来自定义。
6)access layer层信息,具体可参考规范。
14、有什么固件可以测试两个模块之间的通信距离
答:可以实测可使用距离,手机通过直连节点控制其他节点的开关来判断
15、
1.blc_rx_from_uart方式获取从串口输入的信息,但是当输入的内容超过160字节时,几次后系统就会崩溃重启。我把buff调大。bufLen = recBuffLen/4;也没用
2.TLSR8269通过app ota升级,点对点的方式,升级过程中底层无日志打印
答:
1、初始化的时候,比如MYFIFO_INIT(hci_rx_fifo, 128, 2); 128这里表示最大接收字节是128bytes, 至于2就是有两块128B的FIFO。
16、bls_pm_setSuspendMask(SUSPEND_DISABLE);在代码里面加入了前面这句,但是鼠标还是会在播放语言的时候进入休眠,这个设置貌似没有起到作用,
答:
bls_pm_setSuspendMask(SUSPEND_DISABLE) API只是用於設定adv state 與 conn state slave role 空閒時間MCU可以進入睡眠。
除此之外呼叫cpu_sleep_wakeup() API ,也可以讓系統進入deep sleep, 請檢察代碼是否呼叫cpu_sleep_wakeup() API
17、我无法将div_mod中出现的除法和模数函数联系起来。S作为ram_code。当我尝试这样做时,我会得到有关互连的错误。我想这样做,因为当这些函数存储在flash代码中但经常被使用时,我担心电池效率。有人知道这是可能的吗?
答:你可以试着替换。”Text”用“。section .ram_code,”ax“”在ram代码中你想要链接的函数之前
18、关于gpio中断
我这里有个应用,有个器件是iic接口的,接入8266,这个器件接口3根线,2根是i2c,一根是中断。器件数据采集好就发一个中断信号(低电平),然后8266就进入中断服务程序,通过i2c去读取数据。现在我问下,这个外部中断响应时间是多少?因为我通过示波器的波形感觉响应很慢,至少ms级了。 gpio口线配置如下。哪里有不对吗?
//配置int口
gpio_core_irq_enable_all(1);
gpio_set_func(GPIO_PE6, AS_GPIO); //enable GPIO func
gpio_set_input_en(GPIO_PE6, 1); //enable input
gpio_set_output_en(GPIO_PE6, 0); //disable output
//**step2. set the polarity and open pullup **
gpio_setup_up_down_resistor(GPIO_PE6, PM_PIN_PULLUP_10K); //open pull up resistor
gpio_set_interrupt_pol(GPIO_PE6, 1); //falling edge
//**step3. set irq enable **
reg_irq_src = FLD_IRQ_GPIO_EN; //clean irq status
reg_irq_mask |= FLD_IRQ_GPIO_EN;
gpio_en_interrupt(GPIO_PE6, 1);
irq_enable(); //must
答:GPIO的中断响应时间跟当前所处的休眠状态密切相关,芯片一般有三种休眠状态,Running,Suspend,Deepsleep。如果芯片运行在Running状态的话,那么中断响应的速度是非常快的,uS级别就可以响应;如果芯片运行在后面两种状态的话,芯片也是很快就会感知到中断,但是此时系统处于低功耗模式,外部的晶振是处于停止状态的,所以要先晶振起振,然后进行PLL处理,这个过程就要耗费1mS以上。然后如果系统是从Deepsleep唤醒的,还要进行各种初始化的处理,就更加耗时了。一般我们芯片处于节省功耗的目的,都是在空闲的时候进入Suspend模式,所以mS级别的延时是正常的。如果不Care功耗,必须要很快的响应,那么可以关掉低功耗模式,一直处于Running模式,那么功耗就在10mA以上。
19、问:8258的传感器数据发送,网关一直收不到消息
使用这个函数来进行发送 mesh_tx_sensor_st_rsp(0, ele_adr_primary, 0xFFFF, 0, 0, SENSOR_STATUS, LUX_PROP_ID, 0); 上位机没有任何消息
其他的数据(如标准的onoff 复位)都能发送且收到
答:
1、目前上位机不支持sensor respons 数据接下:
2、mesh_tx_cmd_rsp(mesh_tx_sensor_st_rsp也是调用这个函数)是在节点接收到命令后回复用的接口,这个函数在发送的时候会使用解密所收命令成功的app_key. 比如: 收到一个onoff set命令,并用app_key index 1解密成功,那么在mesh_tx_cmd_rsp回复状态的时候会用appkey_index 1。 如果节点要主动发送消息,用mesh_tx_cmd2normal_primary(此时解密的appkey_index是不可靠的)。