SBC8530:深圳天漠科技的高性能嵌入式开发平台

5星 · 超过95%的资源 需积分: 10 3 下载量 199 浏览量 更新于2024-09-14 收藏 1.02MB PDF 举报
"SBC8530是一款由深圳天漠科技有限公司设计的基于Jorjin APModule的高性能ARMCortex-A8开发板,适用于体积紧凑且需要强大处理能力的嵌入式系统应用。该开发板与BeagleBoard-XM在形态上相似,集成了DM3730/AM3715处理器、多功能模块和丰富的接口,如WIFI+BT+FM三合一模块、多种串行通信接口、DVI和HDMI接口等。" SBC8530单板机的主要特点和组成部分如下: 1. **处理器**:SBC8530采用TI(德州仪器)的DM3730或AM3715处理器,这是一款集成1GHz ARM Cortex-A8核心的处理器,针对高性能计算进行了优化。DM3730还额外包含一个800MHz TMS320C64x+ DSP核心,专为数字信号处理而设计。此外,它还配备了NEON SIMD协处理器,增强了多媒体处理能力。 2. **存储器**:开发板配备了512MB的32位DDRSDRAM,运行速度为200MHz,以及512MB的16位NAND Flash,用于存储操作系统和其他固件。 3. **接口**:SBC8530提供了多种接口以适应不同的应用场景,包括: - MMC/SD卡插槽:用于扩展存储。 - 40-pin扩展连接器:提供GPIO(通用输入/输出)功能。 - UARTs(通用异步收发传输器):包括UART1、UART3和BT_UART2,用于串行通信。 - DSS(数字媒体子系统):支持视频处理。 - TSC2046触摸屏控制器:用于触控设备。 - RJ45网络接口:通过LAN9514芯片提供以太网连接。 - USB接口:包括Mini-AB接口和USB 2.0高速接口,以及4个通过USB3320控制器扩展的USB端口。 - 音频接口:内置Speaker、MIC,支持通过SPI1接口连接的TFP410来实现DVI输出。 - 视频接口:具有S-Video接口和HDMI(通过DVI-D连接)接口,可支持最高1280*720分辨率,30fps的DVI-D高清输出。 - WG7310模块:整合了WIFI、BT和FM功能。 4. **电源管理**:TPS65950电源管理芯片负责整个系统的电源供应,确保高效且稳定的能源分配。 5. **物理尺寸**:Jorjin APModule采用POP(封装上的封装)技术,将DM3730/AM3715处理器、MCP(内存和闪存)以及电源管理芯片封装在一个仅29.5*22*2.8mm的小型模块中,实现了高度集成。 SBC8530开发板因其小巧的体积、强大的处理器性能和丰富的接口选项,成为开发嵌入式系统和设备的理想平台,尤其适合对体积和处理能力有高要求的应用场景。

void TestDelay(uint32 delay); void TestDelay(uint32 delay) { static volatile uint32 DelayTimer = 0; while (DelayTimer<delay) { DelayTimer++; } DelayTimer=0; } extern void CAN2_ORED_0_31_MB_IRQHandler(void); #if 1 // #include "Can_Ipw.h" #define MSG_ID 20u #define RX_MB_IDX 1U #define TX_MB_IDX 0U volatile int exit_code = 0; extern Flexcan_Ip_StateType Can_Ipw_xStatus0; /* User includes / uint8 dummyData[8] = {1,2,3,4,5,6,7}; /! \brief The main function for the project. \details The startup initialization sequence is the following: * - startup asm routine * - main() / //extern const Clock_Ip_ClockConfigType Clock_Ip_aClockConfig[1]; extern void CAN0_ORED_0_31_MB_IRQHandler(void); int main(void) { uint8 u8TimeOut = 100U; CanIf_bTxFlag = FALSE; CanIf_bRxFlag = FALSE; / Initialize the Mcu driver / #if (MCU_PRECOMPILE_SUPPORT == STD_ON) Mcu_Init(NULL_PTR); #elif (MCU_PRECOMPILE_SUPPORT == STD_OFF) Mcu_Init(&Mcu_Config); / Initialize the clock tree and apply PLL as system clock / Mcu_InitClock(McuClockSettingConfig_0); while ( MCU_PLL_LOCKED != Mcu_GetPllStatus() ) { / Busy wait until the System PLL is locked / } #endif / (MCU_PRECOMPILE_SUPPORT == STD_ON) / / Write your code here / Mcu_DistributePllClock(); Mcu_SetMode(McuModeSettingConf_0); / Initialize Platform driver */ Platform_Init(NULL_PTR); Port_Init(&Port_Config); Spi_Init(&Spi_Config); #if 1 // CanTrcv_TJA1145_Init(); uint8 SWK_WUF_Detection = 0u; uint8 tempRegVal = 0u; /SBC mode StandBy/ /SBC_SetMode(CANTRCV_TRCVMODE_STANDBY);/ /Disable wakepin/ Sbc_Reg_Write(CanTrcv_Tja1145_Wpe, 0x00, FALSE); /Set Lock control register/ Sbc_Reg_Write(CanTrcv_Tja1145_Lc, 0x00, FALSE); /Can baudrate config/ Sbc_Reg_Write(CanTrcv_Tja1145_Dr, CANTRCV_TJA1145_CAN_DATA_RATE, FALSE); /Set CAN control register/ Sbc_Reg_Write(CanTrcv_Tja1145_Cc, 0x31, FALSE); Sbc_Reg_Read(CanTrcv_Tja1145_Ts, &tempRegVal); Sbc_Reg_Read(CanTrcv_Tja1145_Tes, &SWK_WUF_Detection); Sbc_Reg_Write(CanTrcv_Tja1145_Mc, CanTrcv_Tja1145_Mc_MC_Normal, FALSE); Sbc_Reg_Write(CanTrcv_Tja1145_Cc,CanTrcv_Tja1145_Cc_CMC_Active,FALSE); #endif // Clock_Ip_Init(&Clock_Ip_aClockConfig[0]); volatile Flexcan_Ip_StatusType result = 1; volatile Flexcan_Ip_StatusType result1 = 1; IntCtrl_Ip_EnableIrq(FlexCAN0_1_IRQn); IntCtrl_Ip_InstallHandler(FlexCAN0_1_IRQn, CAN0_ORED_0_31_MB_IRQHandler, NULL_PTR); // Dio_WriteChannel(DioConf_DioChannel_DioChannel_O_S_STB_CAN3_M, STD_LOW);//CAN3 STB Flexcan_Ip_DataInfoType rx_info = { .msg_id_type = FLEXCAN_MSG_ID_STD, .data_length = 8u, .is_polling = TRUE, .is_remote = FALSE }; Flexcan_Ip_MsgBuffType rxData; FlexCAN_Ip_Init(CanController_0, &Can_Ipw_xStatus0, &Flexcan_aCtrlConfigPB[0U]);// while (1) { if(rx_compli==1) { FlexCAN_Ip_SetStartMode(CanController_0); FlexCAN_Ip_ConfigRxMb(CanController_0, RX_MB_IDX, &rx_info, MSG_ID); // rx_info.is_polling = FALSE; FlexCAN_Ip_Send(CanController_0, TX_MB_IDX, &rx_info, MSG_ID, (uint8 *)&dummyData); FlexCAN_Ip_Receive(CanController_0, RX_MB_IDX, &rxData, TRUE); while(FlexCAN_Ip_GetTransferStatus(CanController_0, RX_MB_IDX)

2023-06-03 上传