树莓派与Anybus CompactCom 40 在SPI模式下测试时的注意事项

22 11月 2024

本文介绍了一些树莓派与Anybus CompactCom 40 在SPI模式下测试时的注意事项

适用产品

Anybus CompactCom 40

问题

  • 测试树莓派与Anybus CompactCom 40在SPI模式下运行时,有什么注意事项

 

回答

  • 如果采用飞线的方式连接树莓派与Anybus CompactCom 40模块,应当适当降低SPI的通信速率,否则将会无法通信
    • 树莓派与Anybus CompactCom 40最小连接信号下要求(模块通信接口在评估版上设置为SPI)
    •  
    • 在/abcc_adapt/abcc_sys_adapt.c文件中,将SPI函数配置的时钟频率降低,
      • #if( ABCC_CFG_DRV_SPI )
           case ABP_OP_MODE_SPI:
              /*
              ** Check if running as root
              */
              if( geteuid() != 0 )
              {
                 fprintf( stderr, "WARNING! To use SPI as communication interface, this program must be run as root!\n\n" );
                 return( FALSE );
              }
         
              if( !bcm2835_spi_begin() )
              {
                 ABCC_PORT_DebugPrint( ( "SPI initialization failed!\n" ) );
                 return( FALSE );
              }
              else
              {
                 bcm2835_spi_setBitOrder( BCM2835_SPI_BIT_ORDER_MSBFIRST );
                 bcm2835_spi_setDataMode( BCM2835_SPI_MODE0 );
                 bcm2835_spi_setClockDivider( BCM2835_SPI_CLOCK_DIVIDER_128 ); /*  */
                 bcm2835_spi_chipSelect( BCM2835_SPI_CS0 );
                 bcm2835_spi_setChipSelectPolarity( BCM2835_SPI_CS0, LOW );
              }
              break;
        #endif
  • 将/abcc_adapt/abcc_drv_cfg.h中宏定义修改如下图
  •  使能树莓派SPI接口