文档库 最新最全的文档下载
当前位置:文档库 › jn5139

jn5139

jn5139
jn5139

引脚说明:

SPISWP flash写保护为低禁止写

SPISSZ SPISSM 连接从SPI器件

Flash可以通过外部SPI编程,在这种编程模式下jn5319reset引脚保持低。

Flash也可以通过串口编程在这种模式下SPIMISO引脚必须在复位的同时保持低。

在正操作时,通过串口编程SPISSZ应接与SPISSM。

模块供电电压-0.3—3.6V。

API说明:

uint32 u32AHI_Init(void);

初始化API,每次调用在复位和唤醒之前。必须先初始化在调用API。

如果初始化失败返回0,否则返回32位API版本号。

bool_t bAHI_PhyRadioSetPower(uint8 u8PowerLevel);

这个函数设置无线传输功率。这个函数适合的模块为标准JN5139,高功率JN5139,标准JN5148,高功率JN5148。

表上数据为通用数据,实际测量数据会根据环境因数略有不同。上表为25°,3V供电时工作数据。

在本函数调用之前,vAHI_ProtocolPower()必须已经被调用。

使用高功率模块时,必须使能通道,通过vAHI_HighPowerModuleEnable().

参数:0-5 整型数字

返回:成功返回ture,失败返回false。

void vAppApiSetBoostMode(bool_t bOnNotOff);(仅JN5139使用)

这个函数为增强函数,可以增强1.5dBm传输功率(消耗的电流会变大)。这个模块仅使用在普通的JN5319模块上。它最大能增加发射功率3dBm。

如果需要使用本功能,必须在程序一开始调用本函数。一个新的设置只有在程序开始时的初始化设置才会有效。因此本函数必须在初始化堆栈和调用u32AppQApiInit()之前调用。

如果休眠中memoy被保存,设置也将会被保存,如果休眠中memoy未被保存,本设置也会无效。

参数:bOnNotOff:On/off setting for boost mode:

TRUE –使能boost mode

FALSE –关闭boost mode (默认设置)

无返回值。

void vAHI_HighPowerModuleEnable(bool_t bRFTXEn,bool_t bRFRXEn);

这个函数可以使能高功率模块的发射和接受增益。发射和接受的设置必须一同设置。只使能发射接受中的一个将是无效的。这个函数只能用在高功率模块上。

注意:jennic高功率模块不能使用 2.4GHz 26通道。

欧洲电信标准ETSI 要求限制Europe of +10 dBm EIRP。如果你想关掉这个功率限制,你必须随后调用vAHI_ETSIHighPowerModuleEnable().

参数:bRFTXEn Enable/disable setting for high-power module transmitter

(must be same setting as for bRFRXEn):

TRUE - enable transmitter

FALSE - disable transmitter

bRFRXEn Enable/disable setting for high-power module receiver

(must be same setting as for bRFTXEn):

TRUE - enable receiver

FALSE - disable receiver

无返回值。

void vAHI_AntennaDiversityOutputEnable(bool_t bOddRetryOutEn,

bool_t bEvenRetryOutEn);

本函数用于在伴随着初始化传输失败的数据包重传分别使能和关闭通过DIO12和DIO13 去控制两根天线。JN5418有两根天线,JN5139 JN5121只有一根天线位于DIO12。

参数:bOddRetryOutEn Enable/disable setting for DIO12:

TRUE - enable output on pin

FALSE - disable output on pin

bEvenRetryOutEn Enable/disable setting for DIO13 (JN5148 only):

TRUE - enable output on pin

FALSE - disable output on pin

无返回值。

系统控制

功率控制

时钟控制

掉电检查

芯片复位

本模块有两个时钟模块,一个16M,一个32k。

16M,这个时钟用于cpu和大部分的外设。接在11脚和12脚。

32K,这个时钟用于低功率休眠状态,cpu不在运行,等待中断唤醒。中断有32k时钟源提

供时钟信号。该外面时钟引脚为DIO9(50脚)。(也可用内部时钟)

Cpu和片上ram被通过控制电压控制器分别供电。他们允许灵活控制不同的低功率模块。这个应用在无线控制器上电时从外部FLASH导入片上Ram。在睡眠模式下将出现以下状况:为了在休眠状态下减小电流,RAM供电将会关闭,在这种情况下很多设置将会丢失。在CPU 唤醒的时候需要从新导入。

RAM可以通过自身的控制器被保存,允许进程在休眠状态保存在RAM里。对于短时间的休眠这样比从新导入RAM是更好的。

uint8 u8AHI_PowerStatus(void);

本函数为无线控制器返回电源模块状态。

返回3位电源模块状态如下表:

void vAHI_MemoryHold(bool_t bHoldDuringSleep);

本函数用于在休眠状态是否片上RAM内容被保存,本函数不推荐用于JN5319,JN5148模块。那些模块进入休眠采用vAHI_Sleep()。

参数:

bHoldDuringSleep Power status of RAM for sleep periods:

TRUE to power memory during sleep

FALSE to remove power from memory during sleep

无返回值

void vAHI_CpuDoze(void);

本函数通过停止CPU的时钟进入休眠模式,其他片上模块不受影响继续工作例如片上RAM 继续供电保存其内容。CPU在中断唤醒之前将停止工作。

注意tick timer 中断在JN5148模块中可以唤醒CPU,在JN5139,JN5121模块中不行。

当CPU重新工作时,函数返回。

void vAHI_PowerDown(bool_t bDeepNotNormalSleep);

本函数使系统进入以下两种休眠状态:

1. 深度休眠:在这种模式下,片上所有设别断电(包括32K和16M晶振),设备通过设备复位

脚拉低被唤醒。

2. 普通休眠:在这种模式下,RAM断电,但是32K晶振继续工作。设备可以通过中断或被唤

醒。如果你希望保存RAM的内容,可以在休眠之前调用vAHI_MemoryHold()以使RAM继续供电。

本函数执行以后,“while(1);”指令立即被执行。这个函数在CPU掉电之前可以被返回。本函数调用之前,所有挂起的中断必须被清除。当设备复位时,它将执行a cold start。

当设备离开普通休眠时memory被保存(vAHI_MemoryHold()被调用),这时将执行a warm star。

参数:bDeepNotNormalSleep Required sleep mode, one of:

TRUE for deep sleep mode

FALSE for normal sleep mode

无返回值

void vAHI_Sleep(teAHI_SleepMode sSleepMode);仅用于JN5139,JN5148

本函数使系统进入普通休眠模式或深度休眠模式。普通休眠片上RAM不丢失。深度休眠采用32K时钟。如果片上RAM丢失在唤醒以后要调用u32AHI_Init()。

在普通休眠模式下,可以通过以下途径来唤醒:

引脚产生的中断;

定时器产生中断;

捕获产生的中断;

计数器产生的中断(仅JN5148);

外部Flash在普通休眠模式下不掉电,在JN5139,JN5148模式下可以使用

vAHI_FlashPowerDown()函数使外部Flash掉电。在调用vAHI_FlashPowerDown()函数之前必须先使用vAHI_Sleep()。

在深度休眠模式下,所有设备都被掉电。在这种休眠模式下,只能用过拉低复位引脚复位来唤醒。引脚必须配置为输入和中断允许。

参数:sSleepMode Required sleep mode, one of:

E_AHI_SLEEP_OSCON_RAMON

32-kHz oscillator on and RAM on (warm restart)

E_AHI_SLEEP_OSCON_RAMOFF

32-kHz oscillator on and RAM off (cold restart)

E_AHI_SLEEP_OSCOFF_RAMON

32-kHz oscillator off and RAM on (warm restart)

E_AHI_SLEEP_OSCOFF_RAMOFF

32-kHz oscillator off and RAM off (cold restart)

E_AHI_SLEEP_DEEP

Deep sleep (all components off - cold restart)

无返回值。

void vAHI_ProtocolPower(bool_t bOnNotOff);

本函数的功能与无线处理器信号相关。

JN5121:使能或关闭电压控制。

JN5139/JN5148:使能或关闭数字逻辑模块的时钟。

如果你想在没有执行复位或休眠换新之前关时钟准并且返回,你必须在关掉时钟之前先保存当前的ieee 802.15.4MAC设置。时钟再次开启时,MAC地址必须从保存的设置中恢复,恢复保存MAC地址通过jennic’s802.15.4Stack API:

保存MAC设置使用函数vAppApiSaveMacSettings().

恢复MAC地址设置使用vAppApiRestoreMacSettings().(这个函数自动调用

vAHI_ProtocolPower()开启时钟校准)

当时钟关闭时,你一定不能调用协议栈,调用协议栈将尝试连接硬件,这样可能引起异常。

注意:当802.15.4MAC层使用时,不能调用vAH_ProtocolPower(FALSE),否则设备将跑飞。

参数:bOnNotOff Setting for regulator (JN5121) or clock (JN5139/JN5148):

TRUE to switch the regulator/clock ON

FALSE to switch the regulator/clock OFF

无返回值。

void vAHI_ExternalClockEnable(bool_t bExClockEn);

本函数被用于使能外部32K时钟。(本函数用于从内部时钟切换到外部时钟)

本函数必须复位和休眠唤醒后立即调用。

外部时钟源必须连接在DIO9(50脚),另一个脚接地。

不需要配置DIO9,函数会自动配置。不管怎么样,建议你最好通过函数vAHI_DioSetPullup().

先关闭DIO的上拉。

这个函数没被调用之前,默认使用内部32Khz RC时钟源。

一旦函数调用使用了外部时钟,建议随后不要再改回内部时钟。

参数:bExClockEn Enable/disable setting for external 32-kHz clock:

TRUE - enable external clock input

FALSE - disable external clock input

无返回值。

void vAHI_SwReset (void);

本函数产生内部复位。

注意本函数调用有可能丢失片上RAM的内容。

无参数

无返回值。

void vAHI_DriveResetOut(uint8 u8Period);

这个函数保持ResetN为低在一特定时间内。

注意,可能一个或更多的外部设备连接在ResetN上,因此使用本函数置低本引脚可能会影响其他外部设备。

参数:u8Period Duration for which line will be driven low, in milliseconds

无返回值。

void vAHI_ClearSystemEventStatus(uint32 u32BitMask);

本函数可清除指定的系统中断源。

参数:u32BitMask Bitmask of the System Controller interrupt sources to be

cleared. To clear an interrupt, the corresponding bit must be

set to 1 - for bit numbers。

无返回值。

void vAHI_SysCtrlRegisterCallback(PR_HWINT_APPCALLBACK prSysCtrlCallback);

本函数为当系统控制终端被触发时,调用的一个自定义的返回函数。这个中断可能是定时器,

捕获器,外部终端,掉电检查终端,计数器中断或者随机数产生器。这个函数仅在RAM不掉电的休眠状态被保存。如果RAM掉电,那函数返回时必须在u32AHI_Init()之前从新被申请。

注意在调用函数出来中断之前,系统控制器中断管理将清除中断。

参数:prSysCtrlCallback Pointer to callback function to be registered

无返回值。

模拟外设:

通用模拟外设函数

ADC函数

DAC函数

捕获函数

void vAHI_ApConfigure(bool_t bAPRegulator,

bool_t bIntEnable,

uint8 u8SampleSelect,

uint8 u8ClockDivRatio,

bool_t bRefSelect);

本函数配置片上模拟资源的通用参数:

模拟外设校准被使能,专用电源最小的数字噪声和来自模拟电源引脚VDD1.

中断被使用,在每一次ADC转换之后。

指定时钟频率。

指定特定时期的采样间隔。

指定参考电压Vref。

对于ADC,转换时间为[(3 x sampling interval) + 14] x clock period

参数:

bAPRegulator Enable/disable analogue peripheral regulator:

E_AHI_AP_REGULATOR_ENABLE

E_AHI_AP_REGULATOR_DISABLE

bIntEnable Enable/disable interrupt when ADC conversion completes:

E_AHI_AP_INT_ENABLE

E_AHI_AP_INT_DISABLE

u8SampleSelect Sampling interval in terms of divided clock periods (seebelow):

E_AHI_AP_SAMPLE_2 (2 clock periods)

E_AHI_AP_SAMPLE_4 (4 clock periods)

E_AHI_AP_SAMPLE_6 (6 clock periods)

E_AHI_AP_SAMPLE_8 (8 clock periods)

u8ClockDivRatio Clock divisor (for 16-MHz clock):

E_AHI_AP_CLOCKDIV_2MHZ (achieves 2 MHz)

E_AHI_AP_CLOCKDIV_1MHZ (achieves 1 MHz)

E_AHI_AP_CLOCKDIV_500KHZ (achieves 500 kHz)

E_AHI_AP_CLOCKDIV_250KHZ (achieves 250 kHz)

(500 kHz is recommended for ADC)

bRefSelect Source Source of reference voltage, V ref:

E_AHI_AP_EXTREF (external from VREF pin)

E_AHI_AP_INTREF (internal)

无返回值。

void vAHI_ApSetBandGap(bool_t bBandGapEnable);

本函数允许设备使能内部对Vref。

注意:调用vAHI_ApSetBandGap()之前,你必须确认通过调用vAHI_ProtocolPower()电源控制被使能。否则将会发生异常。如果以后关闭电源控制将会导致内部基准失效。

本函数只对通过vAHI_ApConfigure()配置的内部Vref有效。

警告:不能早通过vAHI_ApConfigure()设置选择外部基准电压后,通过本函数使能内部基准,否则设备将会损害。

参数:bBandGapEnable Enable/disable routing of band-gap cell to VREF:

E_AHI_AP_BANDGAP_ENABLE (enable routing)

E_AHI_AP_BANDGAP_DISABLE (disable routing)

无返回值。

bool_t bAHI_APRegulatorEnabled(void);

本函数查询模拟外设协调器是否开启。

本函数应该在协调器通过vAHI_ApConfigure()使能之后被调用。当协调器使能后,需要一定的时间才能开始:

JN5148,JN5139 31.25Us

JN5121 218.75uS

参数无

返回值TRUE if powered up, FALSE if still waiting

void vAHI_APRegisterCallback(PR_HWINT_APPCALLBACK prApCallback);

本函数生成一个自定义的返回函数,当模拟外设中断被触发时。

注意:在模拟外设之中,仅ADC产生模拟外设中断。DAC不能产生中断,捕获产生系统控制中断。

生成的返回函数在休眠模式下,RAM不掉电才能被保存。如果RAM掉电,中断唤醒后,返回函数必须在调用32AHI_Init()之前从新定义。

参数:prApCallback Pointer to callback function to be registered

无返回值。

ADC:

片上ADC为12位,6道。转换可以被配置成单次转换和持续转换。

为了使用ADC,模拟外设必须先通过vAHI_ApConfigure().使能。以后一定用

bAHI_APRegulatorEnabled().检查协调器是否已经工作。

void vAHI_AdcEnable(bool_t bContinuous,

bool_t bInputRange,

uint8 u8Source);

本函数配置使能ADC。注意本函数不能启动转换。启动转换使用vAHI_AdcStartSample()。本函数可以设置ADC模式为以下情况:

单步模式:

连续模式:如果要停止需调用vAHI_AdcDisable()。

本函数允许选择ADC采样的引脚。输入模拟采样的电压范围0—Vref或0—2*Vref。

注意:

Vref通过调用vAHI_ApConfigure()来定义。

内部电压测量电源为VDD1。

在使能ADC之前必须先调用vAHI_ApConfigure(),然后使用bAHI_APRegulatorEnabled()检查协调器是否开始工作。

参数:

bContinuous Conversion mode of ADC:

E_AHI_ADC_CONTINUOUS (continous mode)

E_AHI_ADC_SINGLE_SHOT (single-shot mode) bInputRange Input voltage range:

E_AHI_AP_INPUT_RANGE_1 (0 to V ref)

E_AHI_AP_INPUT_RANGE_2 (0 to 2V ref)

u8Source Source for conversions:

E_AHI_ADC_SRC_ADC_1 (ADC1 input)

E_AHI_ADC_SRC_ADC_2 (ADC2 input)

E_AHI_ADC_SRC_ADC_3 (ADC3 input)

E_AHI_ADC_SRC_ADC_4 (ADC4 input)

E_AHI_ADC_SRC_TEMP (on-chip temperature sensor)

E_AHI_ADC_SRC_VOLT (internal voltage monitor)

无返回值。

void vAHI_AdcStartSample(void);

本函数启动ADC采样。本函数必须在vAHI_AdcEnable()被调用以后使用。

如果在vAHI_ApConfigure()中使能模拟外部中断。转换结果有效时产生中断。

如果中断未使能,你可以使用bAHI_AdcPoll()检验结果。一旦转换结果有效,你可以通过

u16AHI_AdcRead()读取。

一旦在连续模式下抽样开始,你可以在任何情况下通过vAHI_AdcDisable()关闭。

参数无;

无返回值。

bool_t bAHI_AdcPoll(void);

本函数用来检测ADC执行转换是否完成:

在单步模式下,函数返回结果表明采样是否完成并准备好被读取。

在连续模式下,函数返回结果表明是否有一个新的采样准备好被读取。

建议在使用u16AHI_AdcRead()之前调用本韩式。尤其在你没有使用模拟外部中断的情况下。参数无。

返回

TRUE if ADC is busy, FALSE if conversion complete

uint16 u16AHI_AdcRead(void);

本函数读取最近的ADC转换结果。

如果模拟外部中断通过vAHI_ApConfigure()被使能,你可以在转换结果有效产生的中断唤起读取函数。(通过vAHI_APRegisterCallback()函数返回自定义函数)或者中断没有被使能,在读数据之前,你必须先用bAHI_AdcPoll()检测读取结果是否有效。

参数无。

返回最近的ADC转换结果。这个结果为12位,存与16位数据结构中。

void vAHI_AdcDisable(void);

本函数关闭ADC。他用于在连续模式下停止ADC。

参数无

无返回值

DAC:

JENNIC 包含两个DAC,在JN5139中DAC占11位。然后通过指定的引脚输出。

注意:在使用DAC之前,先调用vAHI_ApConfigure()。然后通过

bAHI_APRegulatorEnabled().协调器是否启动。

在JN5139JN5121模块中,同一时间仅能一个DAC工作。如果需要两个DAC同时工作,需要分时操作。

当DAC使能时,ADC不能用于单步模式,只能用连续模式。

void vAHI_DacEnable(uint8 u8Dac,

bool_t bOutputRange,

bool_t bRetainOutput,

uint16 u16InitialVal);

本函数配置和使能指定的DAC,注意:

在JN5139,JN5121中同一时间只能用一个DAC。

电压输出范围可以指定为0—Vref或者0—2*Vref。

Vref通过vAHI_ApConfigure()定义。

第一个转换的值由本函数生产,随后的值由vAHI_DacOutput()产生。

在使能DAC之前,必须先调用vAHI_ApConfigure(),然后必须调用

bAHI_APRegulatorEnabled()检测协调器是否开始工作。

参数:

u8Dac DAC to configure and enable:

E_AHI_AP_DAC_1 (DAC1)

E_AHI_AP_DAC_2 (DAC2)

bOutputRange Output voltage range:

E_AHI_AP_INPUT_RANGE_1 (0 to V ref)

E_AHI_AP_INPUT_RANGE_2 (0 to 2V ref)

bRetainOutput Unused - set to 0 (FALSE)

u16InitialVal Initial value to be converted - only the 12 least significant bits

will be used (this parameter is not valid for the JN5139 and

JN5121 devices - see above)

无返回值。

void vAHI_DacOutput(uint8 u8Dac,uint16 u16Value);

本函数允许下次的转换值由指定的DAC生成。这个值被用于随后所有输出的转换值直到函数再次被调用产生一个新的转换值。

在本函数中16位的分配:

在JN5148中,12个有效位。

在JN5139,JN5121中,11个有效位。

参数:

u8Dac DAC to which value will be submitted:

E_AHI_AP_DAC_1 (DAC1)

E_AHI_AP_DAC_2 (DAC2)

u16Value Value to be converted - only the 11 or 12 least significant bits

will be used (see above)

无返回值。

bool_t bAHI_DacPoll(void);

本函数用于检测DAC是否转换完成。在判断DAC完成转换后会有一个短暂的延时(大约2uS),为了预防在下次转换后锁定。

参数无

返回TRUE if DAC is busy, FALSE if conversion complete

void vAHI_DacDisable(uint8 u8Dac);

本函数停止和给指定的DAC断电。

参数:u8Dac DAC to disable:

E_AHI_AP_DAC_1 (DAC1)

E_AHI_AP_DAC_2 (DAC2)

无返回值。

比较函数:

JN5139,JN5148有两路比较器。

JN5121有一路。

比较器把一个信号输入引脚和一个基准引脚相比较,当两者不同时可以编成产生一个中断。他也可用于唤醒。输入比较器的信号使用片上一个指定的信道。信号输入为‘+’脚,基准输入为‘-’脚。通过DAC输出或内部基准。

注意:如果比较器被用于把设备从休眠中唤醒,只能使用‘+’‘-’,不能使用内部基准和DAC 的输出,因为DAC 在休眠状态时是掉电的。

模拟设备协调器在配置比较器时必须使能。尽管可能他在配置完成后在别关闭。

void vAHI_ComparatorEnable(uint8 u8Comparator,

uint8 u8Hysteresis,

uint8 u8SignalSelect);

本函数配置和使能JN5139和JN5148指定的比较器。参考信号与偏差范围必须指定。偏差范围电压应该大于:

如果比较采用内部基准或DAC输出,偏差电压应大于‘+’脚输入压信号的噪声。

如果采用‘+’‘-’脚,偏差电压应大于两引脚不同的噪声。

注意相同的电压范围被用于与所有的比较器,因此在不同的比较器函数被调用了很多次。电压范围的设定仅以最后一次的设置为主。

注意这个函数使比较器工作在低功耗模式的情况下消耗电流1.2uA,在标准功率模式下电流为70uA,如果你想让设备工作在标准功率模式下,你必调用vAHI_ComparatorLowPowerMode()关闭低功率模式。

一旦使用本函数使能,比较器只能通过调用vAHI_ComparatorDisable().关闭。

参数:

u8Comparator Identity of comparator:

E_AHI_AP_COMPARATOR_1

E_AHI_AP_COMPARATOR_2

u8Hysteresis Hysteresis setting (controllable from 0 to 40 mV)

E_AHI_COMP_HYSTERESIS_0MV (0 mV)

E_AHI_COMP_HYSTERESIS_10MV (10 mV)

E_AHI_COMP_HYSTERESIS_20MV (20 mV)

E_AHI_COMP_HYSTERESIS_40MV (40 mV)

u8SignalSelect Reference signal to compare with input signal on comparator

'+' pin:

E_AHI_COMP_SEL_EXT (comparator '-' pin)

E_AHI_COMP_SEL_DAC (related DAC output)

无返回值

void vAHI_ComparatorDisable(uint8 u8Comparator);

本函数关闭指定的比较器。

参数:u8Comparator Identity of comparator:

E_AHI_AP_COMPARATOR_1

E_AHI_AP_COMPARATOR_2

无返回值。

void vAHI_ComparatorLowPowerMode(bool_t bLowPowerEnable);

本函数用于使能和关闭在比较器上的低功率模式。这个函数影响所有的比较器。低功率模式用于休眠,减小功耗。当比较器调用vAHI_ComparatorEnable()使能时,低功率模式为默认设置。因此,如果想使比较器处于标准功耗模式,必须调用vAHI_ComparatorLowPowerMode()关闭低功耗模式。

参数:

bLowPowerEnable Enable/disable low-power mode:

TRUE - enable

FALSE – disable

无返回值。

void vAHI_ComparatorIntEnable(uint8 u8Comparator,

bool_t bIntEnable,

bool_t bRisingNotFalling);

本函数使能指定比较器的中断响应。中断可为普通中断,也可为唤醒休眠模式的中断。

如果使能,中断将在下面的条件下产生:

输入信号上限大于参考信号(正偏差范围)

输入信号下限小于参考信号(负偏差范围)

比较器中断在系统回调函数中被处理。vAHI_SysCtrlRegisterCallback().

参数:

u8Comparator Identity of comparator:

E_AHI_AP_COMPARATOR_1

E_AHI_AP_COMPARATOR_2

bIntEnable Enable/disable interrupts:

TRUE to enable interrupts

FALSE to disable interrupts

bRisingNotFalling Triggering condition for interrupt:

TRUE for interrupt when input signal rises above reference

FALSE for interrupt when input signal falls below reference 无返回值。

uint8 u8AHI_ComparatorStatus(void);

本函数获得JN5139,JN5148比较器的状态。获得的状态需要与

E_AHI_AP_COMPARATOR_MASK_x, ‘与’操作,x为1代表比较器1,为2代表比较器2.

比较器输出结果表示为:

0 代表输入信号小于基准信号

1 代表输入信号大于基准信号

参数无

返回所有比较器的状态

uint8 u8AHI_ComparatorWakeStatus(void);

本函数返回比较器的唤醒中断状态。这个值在被读出后清除。

为了获得每个比较器的唤醒中断状态,返回值必须‘与’操作与

E_AHI_AP_COMPARATOR_MASK_x 。x为1代表比较器1,为2代表比较器2.

返回值代表结果分别为:

0:中断唤醒没有发生

不为0:中断唤醒已发生

注意:如果你希望通过本函数检测是否发生中断唤醒事件,你必须在u32AHI_Init()之前调用它。或者,你判断唤醒源在系统控制的回调函数中。

参数无

返回所有比较器的唤醒中断状态。

DIO:

Jennic有21个普通IO口,编号0—20.这些端口可以分别配置。

void vAHI_DioSetDirection(uint32 u32Inputs,uint32 u32Outputs);

本函数直接设定DIO为输入或输出。(默认为输入)

实现这通过2个输入输出的位选择,u32inputs和u32Outputs。在这两值中,位0到位20代表DIO。位0代表DIO0,为21—31没有用。

注意:不一定所有的DIO都定义。

任何通过这个函数没被定义的DIO口,将保持原有状态。

如果一个位既给设定为输入又设定为输出,那么他将默认为输入。

如果DIO被分配给另一个使能的外部设备,功能不能立即影响有关引脚。不管怎么样,在有关外设随之失效的时候通过本函数设定指定的DIO将会受到影响。

这个函数不能改变DIO的上拉状态,改变的话需调用vAHI_DioSetPullup()。

参数:

u32Inputs Bitmap of inputs - a bit set means that the corresponding DIO

pin will become an input 相应位置1表示设置

u32Outputs Bitmap of outputs - a bit set means that the corresponding DIO

pin will become an output

无返回值

void vAHI_DioSetOutput(uint32 u32On, uint32 u32Off);

本函数分别设置DIO输出的开与关,以驱动输出电平高或低。

注意:并非所有引脚都被定义

任何没通过本函数设置的DIO引脚将保持原有状态。

如果同时对DIO进行开与关操作,DIO口默认为关。

如果没有通过vAHI_DioSetDirection()定义DIO,调用本函数是无效的。

如果DIO被分配与另外一个外设,本函数对有关的DIO将没有效果,除非关闭这个外设。参数:

u32On Bitmap of on-pins - a bit set means that the corresponding DIO

pin will be set to on 相应位置一有效。

u32Off Bitmap of off-pins - a bit

无返回值。

uint32 u32AHI_DioReadInput (void);

本函数返回每个DIO的状态。

参数无。

返回:0—20位与相应DIO脚相关,1为高0为低。21—31位一直为0。

void vAHI_DioSetPullup(uint32 u32On, uint32 u32Off);

本函数设定单独为每个脚设置上拉,引脚上拉与引脚输出输入无关。每个引脚可以设置引脚开上拉关上拉。

注意:默认情况下,引脚被上拉到电源。

不是所有的DIO都必须设置。

任何没被设置的引脚将维持原状态。(置一表示设置)

如果同时对一个引脚进行了开上拉和关下拉操作,DIO上拉将默认关。

参数:

u32On Bitmap of ‘pull-ups on’ - a bit set means that the corresponding

pull-up will be enabled

u32Off Bitmap of ‘pull-ups off’ - a bit set means that the corresponding

pull-up will be disabled

无返回值。

void vAHI_DioSetByte(bool_t bDIOSelect, uint8 u8DataByte);

本函数被用于从DIO0—7或DIO8—15读取一字节。DIO0或DIO8被用于低位。

调用本函数之前必须调用vAHI_DioSetDirection()设置为输入。

参数:

bDIOSelect The set of DIO lines on which to read the input byte:

FALSE selects DIO0-7

TRUE selects DIO8-15

返回从DIO0—7或DIO8—15读取的字节。

void vAHI_DioInterruptEnable(uint32 u32Enable,uint32 u32Disable);

本函数关闭或使能当DIO脚上产生信号时中断。每个DIO可单独设置。

注意:

不是所有的DIO中断都被定义。

没被定义的将保持原有状态。

如果同一位即被使能又被关闭,则这位DIO中断将默认为关闭。

如果没有定义DIO为输入,则本函数无效。

这个函数将影响使能分配在该引脚外设。

中断函数设置在深度休眠状态下也会被保存。

产生DIO中断边缘信号类型有vAHI_DioInterruptEdge()函数设置。

DIO中断通过系统控制回调函数被处理。函数为vAHI_SysCtrlRegisterCallback()。

本函数与vAHI_DioWakeEnable()具有相同的功能,两函数在代码中不存在冲突。

参数:

u32Enable Bitmap of DIO interrupts to enable - a bit set means that

interrupts on the corresponding DIO will be enabled u32Disable Bitmap of DIO interrupts to disable - a bit set means that

interrupts on the corresponding DIO will be disabled

无返回值。

void vAHI_DioInterruptEdge(uint32 u32Rising,uint32 u32Falling);

本函数配置产生中断DIO信号的方式,上升或下降沿。脚0—20有用。

注意:并不是所有中断引脚都必须比配置。

任何没被配置的引脚将保持原状态。

如果对端口同时配置为上升沿和下降沿,DIO中断将默认为上升沿。

必须定义端口为输入才有效。

DIO中断设置在休眠状态下被保存,DIO中断可以通过vAHI_DioInterruptEnable()分别使能或关闭。

本函数与vAHI_DioWakeEdge()作用一样,不会冲突。

参数:

u32Rising Bitmap of DIO interrupts to configure - a bit set means that

interrupts on the corresponding DIO will be generated on a

rising edge

u32Falling Bitmap of DIO interrupts to configure - a bit set means that

interrupts on the

无返回值。

uint32 u32AHI_DioInterruptStatus(void);

本函数返回DIO中断的所有状态,它用于在DIO中断关闭时检测DIO中断状态。

提示:如果你希望产生DIO中断而不是通过函数检测。你可以通过vAHI_DioInterruptEnable()使能DIO中断,并在回调函数中处理中断,通过vAHI_SysCtrlRegisterCallback()。

返回值返回所有中断的状态,读后,所有状态清除。

不管端口是否定义为输入,输出,或使能外设,输出结果是有效的。他们在休眠后也是有效的。本函数与vAHI_DioWakeStatus() 具有一样的作用。

参数无

返回:Bitmap:

Each of bits 0-20 corresponds to a DIO pin, where bit 0 represents DIO0 and

bit 20 represents DIO20. The bit is set to 1 if the corresponding DIO interrupt

has occurred or to 0 if it has not occurred. Bits 21-31 are always 0.

(1中断发生,0中断没发生,无用位为0)

void vAHI_DioWakeEnable(uint32 u32Enable,uint32 u32Disable);

本函数是使能和关闭引脚上的中断唤醒。

不是所有的中断唤醒必须被设置。

没被设置的中断唤醒保存原有状态。

如果对一DIO同时设置使能和关闭,那么DIO 将默认为关闭。

没通过vAHI_DioSetDirection()定义引脚为输入状态,本函数无效。

适用本函数后,连接到本DIO的外设会受到影响。

在休眠状态,DIO唤醒中断设置被保存。

上升沿还是下降沿唤醒有vAHI_DioWakeEdge()设定。

DIO唤醒中断可以通过系统回调函数vAHI_SysCtrlRegisterCallback()来处理。

注意本函数与vAHI_DioInterruptEnable()具有相同的功能,占用相同的存储位置,因此不能让其冲突。

参数:

u32Enable Bitmap of DIO wake interrupts to enable - a bit set means that

wake interrupts on the corresponding DIO will be enabled u32Disable Bitmap of DIO wake interrupts to disable - a bit set means that

wake interrupts on the corresponding DIO will be disabled

无返回值。

void vAHI_DioWakeEdge(uint32 u32Rising,uint32 u32Falling);

本函数设置DIO中断唤醒的触发方式,为上升沿,还是下降沿。

注意:不需要每个DIO都没配置。

任何没被配置的DIO将保持原有状态。相应位置1被配置。

如果既配置为上升沿有配置为下降沿,那么DIO唤醒中断默认为上升沿。

如果DIO没被定义为输入,本函数配置是无效的。

调用本函数,分配给本DIO的外设将受到影响。

本函数配置在休眠状态下也被保存。

DIO中断唤醒可以被单独使能或关闭通过vAHI_DioWakeEnable().

注意:

本函数与vAHI_DioInterruptEdge()具有相同的效果,占用同一片内存,不允许两函数

冲突在你程序中。

参数:u32Rising Bitmap of DIO wake interrupts to configure - a bit set means

that wake interrupts on the corresponding DIO will be

generated on a rising edge

u32Falling Bitmap of DIO wake interrupts to configure - a bit set means

that wake interrupts on the corresponding DIO will be

generated on a falling edge

无返回值。

uint32 u32AHI_DioWakeStatus(void);

类似与vAHI_DioInterruptStatus()。

UARTs

void vAHI_UartEnable(uint8 u8Uart);

本函数使能指定的UART,本函数必须使用在第一次调用UART之前。

在通过vAHI_UartWriteData()写串口之前,必须先使能UART,否则结果异常。

UART使用指定的DIO,

如果UART仅使用RxD,TxD,称为二线模式。另外还使用了RTS和CTS进行流控的称为四线模式。

四线模式在vAHI_UartEnable()调用后默认为使能。如果你在JN5139或JN5148模块上使用二线模式,你需要在调用vAHI_UartEnable()之前调用vAHI_UartSetRTSCTS()。以便释放RTS 和CTS。

参数:

u8Uart Identity of UART:

E_AHI_UART_0 (UART0)

E_AHI_UART_1 (UART1)

无返回值。

void vAHI_UartDisable(uint8 u8Uart);

本函数关闭指定的UART通过给UART掉电。

在通过vAHI_UartWriteData()给UART写数据之前,需要通过vAHI_UartEnable()从新使能UART。否则结果异常。

u8Uart Identity of UART:

E_AHI_UART_0 (UART0)

E_AHI_UART_1 (UART1)

无返回值。

void vAHI_UartSetBaudRate(uint8 u8Uart,uint8 u8BaudRate);

本函数设定指定UART的波特率。

4800 bps

9600 bps

19200 bps

38400 bps

76800 bps

115200 bps

也可以通过vAHI_UartSetBaudDivisor().设定波特率为其他值。

参数:

u8Uart Identity of UART:

E_AHI_UART_0 (UART0)

E_AHI_UART_1 (UART1)

u8BaudRate Desired baud-rate:

E_AHI_UART_RATE_4800 (4800 bps)

E_AHI_UART_RATE_9600 (9600 bps)

E_AHI_UART_RATE_19200 (19200 bps)

E_AHI_UART_RATE_38400 (38400 bps)

E_AHI_UART_RATE_76800 (76800 bps)

E_AHI_UART_RATE_115200 (115200 bps)

无返回值。

void vAHI_UartSetBaudDivisor(uint8 u8Uart,uint16 u16Divisor);

本函数设定UART波特率为baud-rate = 1000000/u16Divisor。

例如:

注意:在JN5148模块中可以通过调用vAHI_UartSetClocksPerBit()来设定其他的波特率。

u8Uart Identity of UART:

E_AHI_UART_0 (UART0)

E_AHI_UART_1 (UART1)

u16Divisor Integer divisor

无返回值。

void vAHI_UartSetControl(uint8 u8Uart,

bool_t bEvenParity,

bool_t bEnableParity,

uint8 u8WordLength,

bool_t bOneStopBit,

bool_t bRtsValue);

本函数设置指定UART的各种控制位。

注意:RTS不能自动被控制,它只能通过软件来置1或清零。

参数:

u8Uart Identity of UART:

E_AHI_UART_0 (UART0)

E_AHI_UART_1 (UART1)

bEvenParity Type of parity to be applied (if enabled):

E_AHI_UART_EVEN_PARITY (even parity)//偶校验

E_AHI_UART_ODD_PARITY (odd parity)//奇校验bEnableParity Enable/disable parity check://使能奇偶校验。

E_AHI_UART_PARITY_ENABLE

E_AHI_UART_PARITY_DISABLE

u8WordLength Word length (in bits)://数据长度

E_AHI_UART_WORD_LEN_5 (word is 5 bits)

E_AHI_UART_WORD_LEN_6 (word is 6 bits)

E_AHI_UART_WORD_LEN_7 (word is 7 bits)

E_AHI_UART_WORD_LEN_8 (word is 8 bits) bOneStopBit Number of stop bits - 1 stop bit, or 1.5 or 2 stop bits

(depending on word length), enumerated as:

E_AHI_UART_1_STOP_BIT (TRUE - 1 stop bit)

E_AHI_UART_2_STOP_BITS (FALSE - 1.5 or 2 stop bits) bRtsValue Set/clear RTS signal:

E_AHI_UART_RTS_HIGH (TRUE - set RTS to high)

E_AHI_UART_RTS_LOW (FALSE - clear RTS to low)

无返回值。

void vAHI_UartSetInterrupt(uint8 u8Uart,

bool_t bEnableModemStatus,

bool_t bEnableRxLineStatus,

bool_t bEnableTxFifoEmpty,

bool_t bEnableRxData,

uint8 u8FifoLevel);

本函数使能或关闭通过指定的UART产生中断,和设置接收先入先出触发门限,

参数:

u8Uart entity of UART:

E_AHI_UART_0 (UART0)

E_AHI_UART_1 (UART1)

bEnableModemStatus Enable/disable ‘modem status’ interrupt (e.g. CTS change

detected):

TRUE to enable

FALSE to disable

bEnableRxLineStatus Enable/disable ‘receive line status’ interrupt (break

indication, framing error, parity error or over-run):

TRUE to enable

FALSE to disable

bEnableTxFifoEmpty Enable/disable ‘Transmit FIFO empty’ int errupt:

TRUE to enable

FALSE to disable

bEnableRxData Enable/disable ‘receive data available’ interrupt:

TRUE to enable

FALSE to disable

u8FifoLevel Number of bytes in Receive FIFO required to trigger a

‘receive data available’ interrupt:

E_AHI_UART_FIFO_LEVEL_1 (1 byte)

E_AHI_UART_FIFO_LEVEL_4 (4 bytes)

E_AHI_UART_FIFO_LEVEL_8 (8 bytes)

E_AHI_UART_FIFO_LEVEL_14 (14 bytes)

无返回值。

void vAHI_UartSetRTSCTS(uint8 u8Uart,bool_t bRTSCTSEn);

本函数设置指定的UART使用或不使用RTS,CTS流控。

本函数必须使用在vAHI_UartEnable()之前。

在JN5139,JN5148模块中,UART工作在四线模式,如果切换到二线模式,你可以在调用vAHI_UartEnable()之前调用vAHI_UartSetRTSCTS()。以便释放RTS,CTS。

参数:

u8Uart Identity of UART:

E_AHI_UART_0 (UART0)

E_AHI_UART_1 (UART1)

bRTSCTSEn Take/release control of DIO lines for RTS and CTS:

TRUE to take control

FALSE to release control (allow use for other operations)

无返回值。

void vAHI_UartReset(uint8 u8Uart,

bool_t bTxReset,

bool_t bRxReset);

本函数复位指定的接收或发射。当前正在传输的字节不受影响。接收和发射可以共同或单独复位。

本函数可以设置先入先出的触发门限去单字节触发。接收先入先出中断触发门限可以通过vAHI_UartSetInterrupt()设置。

参数:

u8Uart Identity of UART:

E_AHI_UART_0 (UART0)

E_AHI_UART_1 (UART1)

bTxReset Transmit FIFO reset:

TRUE to reset the Transmit FIFO

FALSE not to reset the Transmit FIFO

bRxReset Receive FIFO reset:

TRUE to reset the Receive FIFO

FALSE not to reset the Receive FIFO

无返回值。

uint8 u8AHI_UartReadLineStatus(uint8 u8Uart);

本函数返回指定UART的状态信息。

注意:所读以下参数将在读完后被清除。

E_AHI_UART_LS_ERROR

E_AHI_UART_LS_BI

E_AHI_UART_LS_FE

E_AHI_UART_LS_PE

E_AHI_UART_LS_OE

参数:

u8Uart Identity of UART:

E_AHI_UART_0 (UART0)

E_AHI_UART_1 (UART1)

返回值:

相关文档