与MAX3108 UART接口

描述

本应用笔记是探讨MAX3108高性能通用异步接收器/发送器(UART)特性系列笔记中的第一篇,解释了MAX3108和控制微处理器之间的基本接口。应用笔记简要介绍了通过2、4或6引脚实现硬件连接;实施 31 个寄存器,可通过 SPI 或 I 访问2C接口;和三种复位机制。SPI 和 I 的更详细解释2C 接口和伪代码示例如下。

介绍

MAX3108为高性能通用异步收发器(UART),采用晶圆级封装(WLP),理想用于低功耗便携式设备。其高级功能范围从单独的 128 字发送和接收 FIFO 到广泛的硬件介导流控制。然而,在应用利用这些特性之前,它必须与MAX3108及其31个内部寄存器进行可靠的通信。本应用笔记介绍了MAX3108通信的基本原理。有关伪代码的软件约定显示在附录中。

硬件连接

MAX3108与微处理器(μP)之间的通信通过2、4或6个引脚进行。两个专用引脚 %-overbar_pre%IRQ%-overbar_post% 和 %-overbar_pre%RST%-overbar_post% 通常连接到微处理器 GPIO 引脚。%-overbar_pre_sentence%IRQ%-overbar_post% 是微处理器的输入引脚。作为双功能信号,%-overbar_pre%IRQ%-overbar_post%既指示MAX3108复位何时完成,又在发生某些可编程UART事件时通知微处理器。%-overbar_pre_sentence%RST%-overbar_post% 是微处理器的输出引脚。它可靠地强制MAX3108复位至已知状态。尽管可以在不使用这些引脚的情况下实现功能应用程序,但最好连接它们,除非缺少 GPIO 引脚。

MAX3108实现31个寄存器,每个寄存器一个字节宽,可通过SPI或I访问。2C 接口,在硬件中选择。由于其更大的带宽和更简单的实现,SPI接口更可取。绑定 SPI/%-overbar_pre%I2C%-overbar_post% 引脚高电平实现 SPI 接口。把它绑得很低,实现了我2C 接口。

MAX3108 SPI接口直接连接到微处理器上常用的SPI硬件引擎时效果最佳。

 

微处理器 SPI 引脚 MAX3108引脚
味噌/自主权达
莫西 莫西/A1
高莱克 SCLK/SCL
党卫军 /CS/A0

 

与其他SPI接口实现不同,即使MAX3108是SPI总线上唯一的器件,从选择(SS)信号也必须连接到MAX3108。

同样,I2C 接口在直接连接到 I 时效果最佳2微处理器上的 C 硬件引擎。

 

微处理器 I2C 引脚 MAX3108引脚
标准及校正实验所 SCLK/SCL
自主权评估 味噌/自主权达

 

与SPI接口不同,I2C 接口依赖于总线上具有唯一 I 的每个外设2C 地址。为避免地址冲突,MAX1 I引脚MOSI/A0和%-overbar_pre%CS%-overbar_post%/A3108上的硬件引脚搭接选项固定2C 外设地址为 16 种可能性之一。详情请参考MAX3108数据资料。

重置

MAX3108具有三种复位机制,所有这些机制都使MAX3108处于已知状态,需要后续寄存器设置负载。

第一种复位机制是在上电时自动复位。MAX3108要完成复位,无需时钟。但是,1.8V电源必须启动并运行。LDOEN 必须连接高电平,或者如果 LDOEN 连接为低电平,则必须将有效的 1.8V 电源连接到 V18 引脚。仅在复位期间,%-overbar_pre%IRQ%-overbar_post%引脚不是中断指示器,而是复位完成指示器。一旦%-overbar_pre%IRQ%-overbar_post%引脚变为高电平,复位完成。如果MAX3108不存在或未上电,程序流可能会无限期地卡在环路中。如果这是一个问题,请添加一个计时器。如果 %-overbar_pre%IRQ%-overbar_post% 在 300μs 后仍未出现,您可以假设有问题。为避免在MAX3108完全就绪之前写入寄存器,应用必须遵循以下步骤。while

 

/*
** Wait for the MAX3108 to come out of reset
*/
   
   // Wait for the IRQ pin to come up, as this
   // indicates that the MAX3108 reset is complete
   while (POLL_MAX3108_IRQ == 0);

第二种复位机制是通过MAX3108 %-overbar_pre%RST%-overbar_post%引脚进行硬件复位。在这种情况下,手动将%-overbar_pre%RST%-overbar_post%引脚脉冲为低电平,然后为高电平。与上电时自动复位一样,%-overbar_pre%IRQ%-overbar_post%引脚表示复位完成。如上所述,为防止MAX3108缺电或未上电时无限期卡在环路中,增加一个延迟最小为300μs的定时器。伪代码见下文。while

 

/*
** Perform a hardware reset
*/
   SET_MAX3108_RESET_PIN_LOW;
   WAIT (1µs);
   SET_MAX3108_RESET_PIN_HIGH;

   // Wait for the IRQ pin to come up, as this
   // indicates that the MAX3108 reset is complete
   while (POLL_MAX3108_IRQ == 0);

第三种复位机制是软件控制的复位,它依赖于SPI或I2C 访问 MAX3108。与其他复位一样,MAX3108寄存器需要在复位完成后重新加载。使用以下伪代码调用重置。

 

/*
** Software reset of the MAX3108
*/
   MAX3108_Write (MAX3108R_MODE2, 0x01);
   MAX3108_Write (MAX3108R_MODE2, 0x00);

通过 SPI 接口

MAX3108与微处理器之间的通信通过%-overbar_pre%RST%-overbar_post%引脚、%-overbar_pre%IRQ%-overbar_post%引脚(均如上所述)以及应用微处理器和MAX3108寄存器之间的接口进行。此寄存器接口可以是 SPI 或 I2C 接口。有关 SPI 选项的详细信息显示在此处,而有关 I 的详细信息2C 接口出现在通过 I 接口2C部分。

SPI 接口是微处理器上常用的硬件接口。SPI接口的另一个优点是它的速度。MAX3108可支持高达26Mbps的SPI数据速率,比目前大多数微处理器SPI硬件更快。

MAX3108 SPI接口不仅支持单寄存器读写,还支持突发读写。这些突发事务提高了寄存器接口的效率,进一步推开了寄存器接口成为瓶颈的点。

与其他SPI方案不同,微处理器上SPI主硬件的SS信号必须连接至MAX3108 %-overbar_pre%CS%-overbar_post%/A0引脚。除了选择SPI总线外设的传统用途外,%-overbar_pre%CS%-overbar_post%/A0引脚还向MAX3108发出SPI事务边界信号。%-overbar_pre%CS%-overbar_post%/A0的下降沿向MAX3108表示SPI接口上的下一个字节是MAX3108寄存器地址。%-overbar_pre%CS%-overbar_post%/A0的上升沿向MAX3108发出信号,表明SPI事务(单次读取、单次写入、突发读取或突发写入)已经结束。

SPI 事务本质上是双向的。对于从微处理器写入MAX3108的每个字节,MAX3108同时返回一个字节到微处理器。这些往往可以忽略;寄存器写操作忽略MAX3108的返回字节。类似地,寄存器读取返回其值,微处理器向MAX3108发送虚拟字节。这些虚拟字节不会降低接口速度,因为它们与有效的寄存器读取或写入数据同时发生。

单 SPI 写入

单个写入事务的伪代码如下所示:

 

/*
** Write one byte to the specified register in the MAX3108
**
** Arguments: 
** port: MAX3108 register address to write to (0x00 through 0x1e)
** val: the value to write to that register
**
** return value:  TRUE
**
*/
BOOL MAX3108_SPI_Write (unsigned int port,
                        unsigned char val) {
   unsigned int dummy;

   // Indicate the start of a transaction
   SET_MAX3108_CS_PIN_LOW;

   // Write transaction is indicated by MSbit of the
   // MAX3108 register address byte = 1.  SPI return
   // from the MAX3108 ignored
   dummy = SPI_SEND_BYTE (0x80 | port);

   // Now send the value to write, return value ignored
   dummy = SPI_SEND_BYTE (val);

   // Finally, indicate transaction completion
   SET_MAX3108_CS_PIN_HIGH;

   return TRUE;
}

突发 SPI 写入

MAX3108 SPI接口还支持突发写入,适用于快速FIFO填充或快速寄存器负载。如果寄存器地址为零,则突发写入将填充发送FIFO。这允许快速FIFO填充,无需切换MAX3108 %-overbar_pre%CS%-overbar_post%/A0线或为每个写入FIFO字节发送寄存器地址。

对于任何其他MAX3108寄存器地址,寄存器地址随着突发的每个后续字节自动递增,从而允许快速寄存器填充。

突发写入事务的伪代码如下所示:

 

/*
** Write a burst of bytes to the MAX3108
**
** Arguments:
** port: MAX3108 register address to write to
** len: number of bytes to send to MAX3108 registers
** ptr: pointer to the bytes to send
**
** return value:  TRUE
**
*/
BOOL MAX3108_SPI_Puts (unsigned int port,
                       unsigned int len,
                       unsigned char *ptr) {

   unsigned int dummy;

   // Indicate the start of a transaction
   SET_MAX3108_CS_PIN_LOW;

   // Write transaction indicated by MSbit of the
   // MAX3108 register address byte = 1.  SPI return
   // from the MAX3108 ignored
   dummy = SPI_SEND_BYTE (0x80 | port);

   // Covers the case where len==0
   while (len--) {
      dummy = SPI_SEND_BYTE (*ptr++);  // return value ignored
   }

   // Indicate transaction completion
   SET_MAX3108_CS_PIN_HIGH;

   return TRUE;
}

注意,对于突发写入事务,第一个字节是MAX3108寄存器地址,所有后续字节都是寄存器值写入。最终寄存器写入由%-overbar_pre%CS%-overbar_post%/A0引脚变为高电平表示。

SPI硬件引擎(通常基于DMA)也控制MAX3108 %-overbar_pre%CS%-overbar_post%/A0引脚,通常通过标有overbar_post overbar_pre SS的引脚。当 %-overbar_pre%CS%-overbar_post%/A0 变低时,表示下一个 SPI 事务开始。%-overbar_pre%CS%-overbar_post%/A0必须保持较高的最短时间为0ns。此时确保MAX100识别出交易已完成。

单 SPI 读取

通过SPI读取寄存器字节涉及发送寄存器地址,后跟虚拟字节。来自虚拟字节的SPI反馈是所选MAX3108寄存器的值。

单次读取的伪代码如下:

 

/*
** Read one byte from the specified register in the MAX3108
**
** Arguments: 
** port: MAX3108 register address to read from
**
** return value:  the register value
**
*/
unsigned int MAX3108_SPI_Read (unsigned int port) {
   unsigned int dummy;
   unsigned int val;

   // Indicate the start of a transaction
   SET_MAX3108_CS_PIN_LOW;

   // Read transaction indicated by MSbit of the
   // address byte = 0.  SPI return from the MAX3108
   // ignored
   dummy = SPI_SEND_BYTE (port & 0x7f);

   // Now send a dummy byte to collect the 
   // register value
   val = SPI_SEND_BYTE (0x00);

   // Finally, indicate transaction completion
   SET_MAX3108_CS_PIN_HIGH;

   return val;
}

突发 SPI 读取

MAX3108 SPI接口还支持突发读取,适用于快速FIFO清空或快速寄存器扫描。如果寄存器地址为零,则突发读取为空接收FIFO。这样就可以快速进行FIFO转储,而无需切换MAX3108 %-overbar_pre%CS%-overbar_post%/A0线或为每个FIFO字节读取发送寄存器地址。

对于任何其他MAX3108寄存器地址,寄存器地址随着突发的每个后续字节自动递增,从而允许快速寄存器扫描。

突发读取事务的伪代码如下:

 

/*
** Read a burst of bytes from the MAX3108
**
** Arguments:
** port: MAX3108 register address to read from
** len: number of bytes to get from MAX3108 registers
** ptr: pointer to where to place the bytes
**
** return value:  TRUE
**
*/
BOOL MAX3108_SPI_Gets (unsigned int port,
                       unsigned int len,
                       unsigned char *ptr) {

   unsigned int dummy;

   // Indicate the start of a transaction
   SET_MAX3108_CS_PIN_LOW;

   // Read transaction indicated by MSbit of the
   // address byte = 0.  SPI return from the MAX3108
   // ignored
   dummy = SPI_SEND_BYTE (port & 0x7f);

   // Covers the case where len==0
   while (len--) {
      *ptr++ = SPI_SEND_BYTE (0x00);
   }

   // Indicate transaction completion
   SET_MAX3108_CS_PIN_HIGH;

   return TRUE;
}

注意,对于突发读取事务,第一个字节是MAX3108寄存器地址,所有后续字节都是假字节,其返回值为寄存器值。最终寄存器读取由%-overbar_pre%CS%-overbar_post%/A0引脚变为高电平表示。

通过 I 接口2C

MAX3108寄存器和微处理器之间的通信也可以通过I进行。2C 接口。

我2C 接口是微处理器上常见的硬件辅助接口。I 的另一个优点2C接口是它只使用两个引脚。而不是为每个外设选择单独的芯片(如在SPI接口的情况下),一个I2C 接口依赖于每个具有唯一 I 的外设2C 地址。为避免与其他 I 发生可能的冲突2同一 I 上的 C 外设2C总线,MAX3108可通过引脚编程至16个唯一I之一2通过 MOSI/A1 和 %-overbar_pre%CS%-overbar_post%/A0 引脚的引脚绑定实现 C 外设地址。在下面的伪代码中,假定预处理器变量MAX3108_I2C_PERIPHERAL_ADDRESS是用适当的 I 定义的2C 寄存器写入地址,与任何其他 I 的地址是唯一的2同一总线上的 C 外设。

MAX3108不仅支持标准模式(100kbps)和快速模式(400kbps)I2C,但也有快速模式加 (1Mbps) I2C.

The MAX3108 I2C 接口不仅支持单寄存器读写,还支持突发读写。这些突发事务提高了寄存器接口的效率,进一步推开了寄存器接口成为瓶颈的点。

单 I2C 写入

单个写入事务的伪代码如下所示:

 

/*
** Write one byte to the specified register in the MAX3108
**
** Arguments: 
** port: MAX3108 register address to write to
** val: the value to write to that register
**
** return value:  TRUE – register successfully written
**                FALSE – I2C protocol error of some kind
**
*/
BOOL MAX3108_I2C_Write (unsigned int port,
                        unsigned char val) {
   
   // Indicate the start of a transaction and send the
   // MAX3108 write peripheral address (LSbit = 0)
   I2C_SET_START_CONDITION;
   I2C_SEND_BYTE (MAX3108_I2C_PERIPHERAL_ADDRESS);

   // Is anybody out there?
   if (!I2C_TEST_ACK) {
      I2C_SET_STOP_CONDITION;  // no – close out the
      return FALSE;            //  transaction
   }

   // The MAX3108 is out there, now send the MAX3108
   // register to write
   I2C_SEND_BYTE (port);

   // Possibly illegal MAX3108 register address?
   If (!I2C_TEST_ACK) {
      I2C_SET_STOP_CONDITION;
      return FALSE;
   }

   // Now send the byte to write
   I2C_SEND_BYTE (val);

   // Did the MAX3108 get confused?
   If (!I2C_TEST_ACK) {
      I2C_SET_STOP_CONDITION;
      return FALSE;
   }

   // The MAX3108 is OK with our write, make it so
   I2C_SET_STOP_CONDITION;
   return TRUE;
}

爆裂 I2C 写入

The MAX3108 I2C 接口还支持突发写入,适用于快速 FIFO 填充或快速寄存器加载。如果寄存器地址为零,则突发写入将填充发送FIFO。这允许快速填充FIFO,而无需I2写入的每个 FIFO 字节的 C 前导码开销。

对于任何其他MAX3108寄存器地址,寄存器地址随着突发的每个后续字节自动递增,从而允许快速寄存器填充。

突发写入事务的伪代码如下所示:

 

/*
** Write a burst of bytes to the MAX3108
**
** Arguments:
** port: MAX3108 register address to write to
** len: number of bytes to send to MAX3108 registers
** ptr: pointer to the bytes to send
**
** return value:  TRUE – register successfully written
**                FALSE – I2C protocol error of some kind

**
*/
BOOL MAX3108_I2C_Puts (unsigned int port,
                       unsigned int len,
                       unsigned char *ptr) {

   // Indicate the start of a transaction and send the
   // MAX3108 write peripheral address (LSbit = 0)
   I2C_SET_START_CONDITION;
   I2C_SEND_BYTE (MAX3108_I2C_PERIPHERAL_ADDRESS);

   // Is anybody out there?
   if (!I2C_TEST_ACK) {
      I2C_SET_STOP_CONDITION;  // no – close out the
      return FALSE;            //  transaction
   }

   // The MAX3108 is out there, now send the MAX3108
   // register address
   I2C_SEND_BYTE (port);

   // Possibly illegal MAX3108 register address?
   If (!I2C_TEST_ACK) {
      I2C_SET_STOP_CONDITION;
      return FALSE;
   }

   while (len--) {
      // Now send the byte to write
      I2C_SEND_BYTE (*ptr++);

      // Did the MAX3108 get confused?
      if (!I2C_TEST_ACK) {
         I2C_SET_STOP_CONDITION;
         return FALSE;
      }
   }

   // The MAX3108 is OK with our write, make it so
   I2C_SET_STOP_CONDITION;
   return TRUE;
}
 

注意,对于突发写入事务,第一个字节为MAX3108 I2C外设地址,第二个字节为MAX3108寄存器地址,后续所有字节均为寄存器值写入。最终寄存器写入由 STOP 条件指示。

单 I2C 读取

通过 I 读取寄存器字节2C涉及发送MAX3108读寄存器地址,后跟I2C 重新启动条件以转动 I2C总线绕行,从写(到MAX3108指定MAX3108寄存器)到读(获取寄存器值)。

单次读取的伪代码如下:

 

/*
** Read one byte from the specified register in the MAX3108
**
** Arguments: 
** port: MAX3108 register address to read from
**
** return value:  the register value (0x00XX)
**                0xff00 is there was some error
**
*/
unsigned int MAX3108_I2C_Read (unsigned int port) {

   unsigned int val;

   // Indicate the start of a transaction and send the
   // MAX3108 write peripheral address (LSbit = 0)
   I2C_SET_START_CONDITION;
   I2C_SEND_BYTE (MAX3108_I2C_PERIPHERAL_ADDRESS);

   // Is anybody out there?
   if (!I2C_TEST_ACK) {
      I2C_SET_STOP_CONDITION;  // no – close out the
      return 0xff00;           //  transaction
   }

   // The MAX3108 is out there, now send the MAX3108
   // register address
   I2C_SEND_BYTE (port);

   // Possibly illegal MAX3108 register address?
   If (!I2C_TEST_ACK) {
      I2C_SET_STOP_CONDITION;
      return 0xff00;
   }

   // Now turn the I2C bus around by sending the MAX3108
   // I2C peripheral read address (LSbit = 1)
   I2C_SET_RESTART_CONDITION;
   I2C_SEND_BYTE (MAX3108_I2C_PERIPHERAL_ADDRESS | 0x01);

   if (!I2C_TEST_ACK) {
      I2C_SET_STOP_CONDITION;
      return 0xff00;
   }

   // Now get the register value
   val = I2C_RECEIVE_BYTE;
   I2C_SEND_NACK;
   I2C_SET_STOP_CONDITION;

   return (val);
}

爆裂 I2C 读取

The MAX3108 I2C 接口还支持突发读取,适用于快速 FIFO 清空或快速寄存器扫描。如果寄存器地址为零,则突发读取为空接收FIFO。这允许快速 FIFO 转储,而不会产生与 I 相关的开销2每个 FIFO 字节读取的 C 前导码。

对于任何其他MAX3108寄存器地址,寄存器地址随着突发的每个后续字节自动递增,从而允许快速寄存器扫描。

突发读取事务的伪代码如下所示:

 

/*
** Read a burst of bytes from the MAX3108
**
** Arguments:
** port: MAX3108 register address to read from
** len: number of bytes to get from MAX3108 registers
** ptr: pointer to where to place the bytes
**
** return value:  TRUE – if all read
**                FALSE – if there was any error
**
*/
BOOL MAX3108_I2C_Gets (unsigned int port,
                       unsigned int len,
                       unsigned char *ptr) {




   // Indicate the start of a transaction and send the
   // MAX3108 write peripheral address (LSbit = 0)
   I2C_SET_START_CONDITION;
   I2C_SEND_BYTE (MAX3108_I2C_PERIPHERAL_ADDRESS);

   // Is anybody out there?
   if (!I2C_TEST_ACK) {
      I2C_SET_STOP_CONDITION;  // no – close out the
      return FALSE;           //  transaction
   }

   // The MAX3108 is out there, now send the MAX3108
   // register address
   I2C_SEND_BYTE (port);

   // Possibly illegal MAX3108 register address?
   If (!I2C_TEST_ACK) {
      I2C_SET_STOP_CONDITION;
      return FALSE;
   }

   // Now turn the I2C bus around by sending the MAX3108
   // I2C peripheral read address (LSbit = 1)
   I2C_SET_RESTART_CONDITION;
   I2C_SEND_BYTE (MAX3108_I2C_PERIPHERAL_ADDRESS | 0x01);

   if (!I2C_TEST_ACK) {
      I2C_SET_STOP_CONDITION;
      return FALSE;
   }

   // Now get the register values
   while (len--) {
      *ptr++ = I2C_RECEIVE_BYTE;
      if (len)
         I2C_SEND_ACK;     // all but last read
      else
         I2C_SEND_NACK;    // last read only
   }
 
   I2C_SET_STOP_CONDITION;
   return TRUE;
}

注意,对于突发读事务,第一个字节是MAX3108 I2C外设写地址,第二个字节为MAX3108寄存器地址,第三个字节为MAX3108 I2C外设读取地址,并且所有后续字节都是寄存器值读取。微处理器在要读取更多寄存器时,以 ACK 条件响应每个字节读取。NACK条件表示从MAX3108读取的最终寄存器。

结论

按照本应用笔记提供的编码指南,可以快速启动并运行微处理器和MAX3108之间的接口。

本应用笔记中伪代码例程的大部分翻译都是特定于微处理器的。除中断处理程序外,本系列中的其他特定代码应用笔记详细探讨了MAX3108的特性,几乎不需要转换为特定的目标微处理器。它们将依靠本应用笔记中描述的读、写、获取和放置基元来封装微处理器特有的问题。

附录

本附录包含理解本应用笔记以及本系列其他伪代码所需的定义,详细探讨MAX3108的特性。

与引脚 I/O 相关的定义

POLL_MAX3108_IRQ:该伪代码返回MAX3108 %-overbar_pre%IRQ%-overbar_post%引脚的数字状态。该引脚需要外部上拉才能正常工作。

SET_MAX3108_CS_PIN_HIGH:该伪代码驱动MAX3108 %-overbar_pre%CS%-overbar_post%/A0引脚高电平。

SET_MAX3108_CS_PIN_LOW:该伪代码驱动MAX3108 %-overbar_pre%CS%-overbar_post%/A0引脚为低电平。

SET_MAX3108_RESET_PIN_HIGH:该伪代码驱动MAX3108 %-overbar_pre%RST%-overbar_post%引脚高电平。

SET_MAX3108_RESET_PIN_LOW:该伪代码将MAX3108 %-overbar_pre%RST%-overbar_post%引脚驱动为低电平。

等:此伪代码至少将以下指令的执行延迟到指定的时间。

与I有关的定义2C 接口

I2C_SEND_BYTE:该伪代码通过I向MAX3108发送一个字节2C总线。

I2C_SET_RESTART_CONDITION:此伪代码在 I 上放置了 RESTART 条件2C总线。

I2C_SET_START_CONDITION:此伪代码在 I 上放置了一个 START 条件2C总线。

I2C_SET_STOP_CONDITION:此伪代码在 I 上放置了一个 STOP 条件2C总线。

I2C_TEST_ACK:如果MAX3108响应用ACK写入的字节,则返回TRUE;如果MAX3108响应用NACK写入的字节,则返回FALS。

SPI_SEND_BYTE:一个字节通过SPI接口发送到MAX3108,同时捕获MAX3108返回的字节。

与寄存器接口相关的定义

MAX3108_Gets:此例程要么MAX3108_I2C_Gets,要么MAX3108_SPI_Gets,具体取决于应用程序中实现的接口。

MAX3108_Puts:此例程要么MAX3108_I2C_Puts,要么MAX3108_SPI_Puts,具体取决于应用程序中实现的接口。

MAX3108_Read:此例程MAX3108_I2C_Read或MAX3108_SPI_Read,具体取决于应用程序中实现的接口。

MAX3108_Write:此例程是MAX3108_I2C_Write的,也可以是MAX3108_SPI_Write的,具体取决于应用程序中实现的接口。

MAX3108_I2C_Gets:本应用笔记描述的本例程通过I接收FIFO或其它MAX3108寄存器的突发读取。2C 接口。

MAX3108_I2C_Puts:本应用笔记中描述的本例程通过I向MAX3108发送FIFO或其它MAX3108寄存器进行突发写入。2C 接口。

MAX3108_I2C_Read:本应用笔记描述的本例程通过I读取MAX3108寄存器之一的值。2C 接口。

MAX3108_I2C_Write:本应用笔记描述的本例程通过I向MAX3108寄存器写入一个值。2C 接口。

MAX3108_SPI_Gets:本应用笔记描述了该例程,通过SPI接口从MAX3108接收FIFO或其他MAX3108寄存器进行突发读取。

MAX3108_SPI_Puts:本应用笔记描述的本例程通过SPI接口对MAX3108发送FIFO或其它MAX3108寄存器进行突发写入。

MAX3108_SPI_Read:本应用笔记描述的该例程通过SPI接口读取MAX3108寄存器之一的值。

MAX3108_SPI_Write:本应用笔记描述的本例程通过SPI接口向MAX3108寄存器写入一个值。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分