JN5169 系统控制器 API 函数表
时间:2023-12-13 03:07:02
函数名称 | 函数功能 | 形参 | 形参功能 | 返回值 | 返回值功能 | |
u16AHI_PowerStatus | 该函数返回JN516x微控制器电源域状态信息 | void | uint16 | 返回电源域状态信息在16位返回值的位置0-3、7和10-11: | ||
位 | 若该值为1 | |||||
0 | 设备已完成睡眠唤醒周期 | |||||
1 | 睡眠期间保留RAM内容 | |||||
2 | 模拟电源域已打开 | |||||
3 | 可操作协议逻辑 | |||||
4、5、6 | 未使用 | |||||
7 | 看门狗导致上次设备重启 | |||||
8、9 | 未使用 | |||||
10 | 准备好32kHz时钟 | |||||
11 | 设备刚刚退出深度睡眠模式 | |||||
12、13、14、15 | 未使用 | |||||
vAHI_CpuDoze | 该功能通过停止向CPU将设备提供时钟进入休眠模式(其他部件不受此功能影响,因此将继续正常运行,例如,在电影中RAM保持电源和内容)。 CPU停止操作,直到中断,重新开始正常操作。 这样禁用CPU在不活动期间,时钟可以减少设备的功耗。 当CPU重启时,函数返回。 |
void | void | |||
vAHI_Sleep | 此功能使JN516x器件进入睡眠模式,这是四种“正常”睡眠模式或深度睡眠模式之一。 正常睡眠模式的区别在于,片上RAM是否保持供电以及32kHz振荡器在睡眠期间是否保持运行状态。 | teAHI_SleepMode sSleepMode | E_AHI_SLEEP_OSCON_RAMON 开启32kHz振荡器并开启RAM(热重启) E_AHI_SLEEP_OSCON_RAMOFF 32kHz振荡器打开而RAM关闭(冷重启) E_AHI_SLEEP_OSCOFF_RAMON 关闭32kHz振荡器并打开RAM(热重启) E_AHI_SLEEP_OSCOFF_RAMOFF 关闭32kHz振荡器并关闭RAM(冷重启) E_AHI_SLEEP_DEEP 深度睡眠(所有组件关闭-冷重启) |
void | ||
vAHI_ProtocolPower | 此功能用于启用或禁用到无线收发器的时钟-仅在域保持通电时禁用(门控)时钟。 如果要关闭时钟然后再打开,而不执行重置或进入睡眠周期,则必须先保存当前的IEEE 802.15.4 MAC设置,然后再关闭时钟。 再次打开时钟后,必须从保存的设置中恢复MAC设置。 |
bool_t bOnNotOff | 设置无线收发器的时钟: TRUE 开启时钟 FALSE 关闭时钟 |
void | ||
bAHI_Set32KhzClockMode | 此功能为JN516x器件的32kHz时钟选择一个外部源(该功能用于从内部源移动到外部源)。如果未调用此函数或vAHI_Init32KhzXtal(),则默认使用内部32kHz RC振荡器。 请注意,一旦使用此功能选择了外部32kHz时钟源,就不能切换回内部RC振荡器。 | uint8 const u8Mode | 外部32kHz时钟源: E_AHI_EXTERNAL_RC(外部模块) E_AHI_XTAL(外部晶体) |
bool_t | TRUE-指定有效时钟源 FALSE-指定了无效的时钟源 |
|
vAHI_Init32KhzXtal | 此功能启动一个外部晶振,并将JN516x器件的32kHz时钟源切换到该晶振。已启动的外部晶振需要一段时间才能稳定下来,才能用作时钟源。该函数会在时钟稳定之前立即返回,并且应用程序可以执行其他处理,或者在等待晶体准备就绪时将JN516x器件置于睡眠模式-最多需要1秒钟才能稳定下来。在睡眠的情况下,应用程序通常应将唤醒计时器设置为1秒后唤醒设备。 如果未调用此函数或bAHI_Set32KhzClockMode(),则默认使用内部32kHz RC振荡器。注意,一旦使用此功能选择了外部32kHz时钟源,就不能切换回内部RC振荡器。 |
void | void | |||
vAHI_Trim32KhzRC | 此功能设置32kHz RC振荡器(外部模块)的电流消耗,电流消耗决定了产生的时钟频率的准确性-电流越高,产生的时钟频率越精确。 当前,有两个当前设置可用。 0.53µA和0.35µA,相应的频率校准误差分别为±300ppm和±600ppm。 |
uint8 u8Value | 要设置的电流消耗: 0:保留 1:保留 2:0.53µA(默认) 3:0.35µA 4-7:无效 |
void | ||
vAHI_SelectClockSource | 此功能为JN516x器件上的系统时钟选择时钟源。使用RC振荡器时,将无法运行整个系统,使用此时钟源时可以执行代码,但无法发送或接收。 此外,计时器的计时间隔可能需要基于13.5MHz的频率。选择RC振荡器时,该功能允许关闭晶体振荡器的电源,以节省功耗。 | bool_t bClkSource | 系统时钟源: TRUE-RC振荡器 FALSE-晶体振荡器 |
void | ||
bool_t bPowerDown | 掉电晶体振荡器: TRUE-不需要时掉电 FALSE-保持开机状态(不处于睡眠模式时) |
|||||
bAHI_GetClkSource | 此功能获取JN516x器件上系统时钟的时钟源标识。 时钟选项为: 1,频率32MHz的晶体振荡器(XTAL),来自外部晶体。 2,内部高速RC振荡器,频率为27MHz(未校准),但可以使用函数bAHI_TrimHighSpeedRCOsc()调整为32MHz(已校准)。 如果高速RC振荡器是系统时钟源,则bAHI_GetClkSource()不表示振荡器的工作频率。 |
void | bool_t | 时钟源,其中一种: TRUE-RC振荡器 FALSE-晶体振荡器 |
||
bAHI_SetClockRate | 通过设置用于从系统源时钟派生CPU时钟的除数,该功能用于选择JN516x器件上的CPU时钟速率。不管使用此功能进行的设置如何,睡眠后CPU时钟频率将默认为16MHz或13.5MHz(时钟分频比2)-也就是说,睡眠后配置的时钟分频器不会在睡眠后自动重新应用。 | uint8 u8Speed | u8Speed Clock Divisor Resulting Frequency (MHz) From 32MHz From 27MHz 000 8 4 3.38 001 4 8 6.75 010 2 16 13.5 011 1 32 27 100 Invalid 101 Invalid 110 32 1 0.84 111 16 2 1.69 |
bool_t | TRUE-成功 FALSE-指定的除数值无效 |
|
u8AHI_GetSystemClkRate | 此函数获得用于对源时钟进行分频的除数,以在JN516x器件上产生CPU时钟。 | void | uint8 | 0:除数为8 1:4的除数 2:除数2 3:1的因子(源频率不变) 6:32的除数 7:16的除数 |
||
bAHI_Clock32MHzStable | 此功能可用于检查32MHz晶体振荡器(来自外部)是否正在运行且稳定。 | void | bool_t | TRUE-振荡器稳定 FALSE-振荡器不稳定 |
||
vAHI_ClockXtalPull | 通过增加振荡器调谐电路中的晶体负载电容,该功能可用于降低(拉)32MHz晶体振荡器的频率。 如果JN516x设备在超过85°C的温度下工作,则可能有必要调用此函数以将时钟的频率容差保持在IEEE 802.15.4标准指定的40ppm限制内。 | uint8 u8PullValue | 上拉值控制额外的晶体负载电容: 0:无附加晶振负载电容(默认) 1:1pF 2:JN5169为2pF,其他JN516x器件为1pF 3:JN5169为3pF,其他JN516x器件为2pF |
void | ||
vAHI_EnableFastStartUp | 此功能可用于修改睡眠后的(默认)快速启动。 如果需要,必须在进入睡眠模式之前调用该函数。 JN516x器件唤醒时,外部32MHz晶体振荡器在睡眠期间会掉电,并需要一些时间才能再次可用。 通过在唤醒时立即使用内部高速RC振荡器,然后在可用时切换到晶体振荡器,可以从睡眠中更快地启动。 这样可以在晶振就绪之前进行唤醒时的初始处理。 默认情况下,这种睡眠后快速启动会自动发生。 |
bool_t bMode | 自动/手动切换到32MHz晶体振荡器: TRUE-自动切换 FALSE-手动开关 |
void | ||
bool_t bPowerDown | 掉电晶体振荡器: TRUE-不需要时掉电 FALSE-保持开机状态(不处于睡眠模式时) |
|||||
bAHI_TrimHighSpeedRCOsc | 可以在JN516x器件上使用此功能,以将内部高速RC振荡器的频率从未校准的27MHz调整为已校准的32MHz。 | void | bool_t | TRUE-RC振荡器频率成功更改 FALSE-无法更改RC振荡器频率 |
||
vAHI_OptimiseWaitStates | 在更改了系统时钟源或CPU时钟频率以最大程度地缩短闪存访问时间之后,此功能将重新计算内部闪存和EEPROM设备的等待状态设置。 在调用vAHI_SelectClockSource()或bAHI_SetClockRate()之后会自动调用该函数,但最好在以下两种情况下由应用程序调用: 1.在应用程序启动(冷启动或热重启)时,系统时钟由内部高速RC振荡器运行 2,从内部高速RC振荡器切换到外部32MHz晶振后 |
void | void | |||
vAHI_BrownOutConfigure | 此功能可配置并启用电源电压监视器(SVM),该电源电压监视器可用于检测JN516x器件上的掉电情况。 | unit8 u8VboSelect | 掉电电压阈值: E_AHI_VBOREF_1V95-0(1.95V) E_AHI_VBOREF_2V0-1(2.0V,默认) E_AHI_VBOREF_2V1-2-(2.1V) E_AHI_VBOREF_2V2-3(2.2V) E_AHI_VBOREF_2V3-4(2.3V) E_AHI_VBOREF_2V4-5(2.4V) E_AHI_VBOREF_2V7-6(2.7V) E_AHI_VBOREF_3V0-7(3.0V) |
void | ||
bool_t bVboRestEn | 启用/禁用“电源不足时重置”: TRUE以启用重置 FALSE禁用重置 |
|||||
bool_t bVboEn | 启用/禁用SVM: TRUE以启用SVM FALSE禁用SVM |
|||||
bool_t bVboIntEnFalling | 掉电位下降时产生的使能/禁用中断,表明设备已退出掉电状态: TRUE启用中断 FALSE禁用中断 |
|||||
bool_t bVboIntEnRising | 当掉电位上升时产生的使能/禁用中断,表明设备已进入掉电状态: TRUE启用中断 FALSE禁用中断 |
|||||
bAHI_BrownOutStatus | 此功能可用于检查JN516x器件的当前电源电压是高于还是低于掉电电压设置(默认值或使用函数vAHI_BrownOutConfigure()配置的值)。 在决定合适的掉电电压进行配置时,该功能很有用。 如果掉电配置最近已更改,则bAHI_BrownOutStatus()返回之前可能会有一个延迟-此延迟最高为3.3µs。 |
void | bool_t | TRUE-电源电压低于掉电电压 FALSE-电源电压高于掉电电压 |
||
bAHI_BrownOutEventResetStatus | 可以在JN516x器件复位后调用此函数,以确定复位事件是否是由掉电引起的。 这样,应用程序可以在确认的掉电之后采取任何必要的措施。 请注意,默认情况下,掉电会触发重置事件。 但是,如果调用了vAHI_BrownOutConfigure(),则必须在此调用期间显式启用“电源不足时重置”选项。 |
void | bool_t | 如果掉电导致复位,则为TRUE,否则为FALSE | ||
u32AHI_BrownOutPoll | 该功能可用于轮询JN516x设备上的掉电情况-即检查是否发生了掉电情况。 返回的值将指示芯片电源电压是低于还是高于掉电电压(或两者)。 使用此函数进行轮询可清除掉电状态,以便在下次调用该函数时获得新的有效结果。 当通过vAHI_BrownOutConfigure()禁用掉电中断和“掉电复位”时,以这种方式进行轮询非常有用。 但是,要成功轮询,必须仍然通过后者功能启用掉电检测。 |
void | uint32 | 包含掉电状态的32位值: 1.如果芯片出现欠压状态,则位24设置为“ 1”-也就是说,不断增加的电源电压从下方越过了欠压电压。 如果将32位返回值与位掩码E_AHI_SYSCTRL_VFEM_MASK按位与,则非零结果表示此掉电情况。 2.如果芯片进入欠压状态,则将位25设置为“ 1”-也就是说,电源电压的降低已从上方超过了欠压电压。 如果将32位返回值与位掩码E_AHI_SYSCTRL_VREM_MASK按位与,则非零结果表示此掉电情况。 |
||
vAHI_SwReset | 此功能会产生内部复位,该复位将通过完整的复位顺序完全重新启动系统。注意:该复位与拉低外部RESETN线具有相同的效果,并且可能导致片内RAM内容的丢失。 | void | void | |||
vAHI_SetJTAGdebugger | 此功能可用于启用或禁用JTAG调试器硬件,以及选择将在其上放置JTAG信号的DIO集(DIO15-12或DIO7-4)。 引脚位置选项允许更轻松地避免JTAG调试器和任何启用的外设之间的DIO使用冲突。 JTAG调试器具有控制这些DIO引脚的最高优先级。 | bool_t bEnable | 启用或禁用调试器: TRUE-启用 FALSE-禁用 |
void | ||
bool_t bLocation | JTAG信号所在的一组DIO: TRUE-DIO15-12上的JTAG FALSE-DIO7-4上的JTAG |
|||||
vAHI_ClearSystemEventStatus | 此功能清除JN516x设备上指定的系统控制器中断源。 指示要清除的中断源的位掩码必须传递到函数中。 | uint32 u32BitMask | 要清除的系统控制器中断源的位掩码。 要清除中断,必须将相应的位设置为1。 | void | ||
vAHI_SysCtrlRegisterCallback | 该函数注册一个用户定义的回调函数,该函数将在触发系统控制中断时被调用。 该中断的来源可能是唤醒定时器,比较器,DIO事件,掉电事件,脉冲计数器或随机数发生器。 已注册的回调函数仅在RAM保持供电的睡眠模式下保留。 如果在睡眠期间关闭RAM的电源并需要中断,则必须在唤醒时调用u32AHI_Init()之前重新注册回调函数。 请注意,系统控制器中断处理程序将在调用回调函数处理该中断之前清除该中断。 |
PR_HWINT_APPCALLBACK prSysCtrlCallback | 指向要注册的回调函数的指针 | void |