Other Parts Discussed in Thread: SYSCONFIG
Tool/software:
Hi,
I am using DP83869HM with an AM263x microcontroller. Not able to transfer data between microcontroller and host PC.
The physical link between the devices is established, but transmission of data from the host PC to the microcontroller and vice versa is not happening.
In one condition, data transfer is happening when:
- The host PC ethernet setting is set to auto-negotiation & programming the LWIP UDP ethernet example. (Here data transmission is not happening.)
- The microcontroller is not power cycled; we are forcing 100 MBPS full duplex and programming the LWIP UDP Ethernet example program. (Here data transmission is happening.)
But if we force 100 MBPS at start from the host PC side at first and program LWIP UDP Ethernet example data, then data transmission is not possible.
please find the sysconfig file
/** * These arguments were used when this file was generated. They will be automatically applied on subsequent loads * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments. * @cliArgs --device "AM263x_beta" --package "ZCZ" --part "AM263x" --context "r5fss0-0" --product "MCU_PLUS_SDK_AM263x@09.02.00" * @versions {"tool":"1.20.0+3587"} */ /** * Import the modules used in this configuration. */ const eeprom = scripting.addModule("/board/eeprom/eeprom", {}, false); const eeprom1 = eeprom.addInstance(); const gpio = scripting.addModule("/drivers/gpio/gpio", {}, false); const gpio1 = gpio.addInstance(); const i2c = scripting.addModule("/drivers/i2c/i2c", {}, false); const i2c1 = i2c.addInstance(); const i2c2 = i2c.addInstance(); const debug_log = scripting.addModule("/kernel/dpl/debug_log"); const mpu_armv7 = scripting.addModule("/kernel/dpl/mpu_armv7", {}, false); const mpu_armv71 = mpu_armv7.addInstance(); const mpu_armv72 = mpu_armv7.addInstance(); const mpu_armv73 = mpu_armv7.addInstance(); const mpu_armv74 = mpu_armv7.addInstance(); const mpu_armv75 = mpu_armv7.addInstance(); const default_linker = scripting.addModule("/memory_configurator/default_linker", {}, false); const default_linker1 = default_linker.addInstance(); const general = scripting.addModule("/memory_configurator/general", {}, false); const general1 = general.addInstance(); const region = scripting.addModule("/memory_configurator/region", {}, false); const region1 = region.addInstance(); const section = scripting.addModule("/memory_configurator/section", {}, false); const section1 = section.addInstance(); const section2 = section.addInstance(); const section3 = section.addInstance(); const section4 = section.addInstance(); const section5 = section.addInstance(); const section6 = section.addInstance(); const section7 = section.addInstance(); const section8 = section.addInstance(); const section9 = section.addInstance(); const enet_cpsw = scripting.addModule("/networking/enet_cpsw/enet_cpsw", {}, false); const enet_cpsw1 = enet_cpsw.addInstance(); /** * Write custom configuration values to the imported modules. */ eeprom1.$name = "CONFIG_EEPROM0"; gpio1.pinDir = "OUTPUT"; gpio1.defaultValue = "1"; gpio1.$name = "eth_pwdn"; gpio1.GPIO_n.$assign = "PR0_PRU1_GPIO9"; i2c1.$name = "CONFIG_I2C0"; eeprom1.peripheralDriver = i2c1; i2c1.I2C.$assign = "I2C0"; i2c1.I2C.SCL.$assign = "I2C0_SCL"; i2c1.I2C.SDA.$assign = "I2C0_SDA"; i2c1.I2C_child.$name = "drivers_i2c_v1_i2c_v1_template1"; i2c2.$name = "CONFIG_I2C1"; i2c2.I2C.$assign = "I2C2"; i2c2.I2C.SCL.$assign = "UART0_RTSn"; i2c2.I2C.SDA.$assign = "UART0_CTSn"; i2c2.I2C_child.$name = "drivers_i2c_v1_i2c_v1_template2"; debug_log.enableUartLog = true; debug_log.enableCssLog = false; debug_log.uartLog.$name = "CONFIG_UART0"; debug_log.uartLog.UART.$assign = "UART0"; debug_log.uartLog.UART.RXD.$assign = "UART0_RXD"; debug_log.uartLog.UART.TXD.$assign = "UART0_TXD"; debug_log.uartLog.child.$name = "drivers_uart_v2_uart_v2_template0"; mpu_armv71.$name = "CONFIG_MPU_REGION0"; mpu_armv71.size = 31; mpu_armv71.attributes = "Device"; mpu_armv71.accessPermissions = "Supervisor RD+WR, User RD"; mpu_armv71.allowExecute = false; mpu_armv72.$name = "CONFIG_MPU_REGION1"; mpu_armv72.size = 15; mpu_armv72.accessPermissions = "Supervisor RD+WR, User RD"; mpu_armv73.$name = "CONFIG_MPU_REGION2"; mpu_armv73.baseAddr = 0x80000; mpu_armv73.size = 15; mpu_armv73.accessPermissions = "Supervisor RD+WR, User RD"; mpu_armv74.$name = "CONFIG_MPU_REGION3"; mpu_armv74.accessPermissions = "Supervisor RD+WR, User RD"; mpu_armv74.baseAddr = 0x70000000; mpu_armv74.size = 21; mpu_armv75.$name = "CONFIG_MPU_REGION4"; mpu_armv75.baseAddr = 0x70080000; mpu_armv75.size = 14; mpu_armv75.attributes = "NonCached"; default_linker1.$name = "memory_configurator_default_linker0"; general1.$name = "CONFIG_GENERAL0"; general1.stack_size = 8192; general1.heap_size = 34000; general1.linker.$name = "TIARMCLANG0"; region1.$name = "MEMORY_REGION_CONFIGURATION0"; region1.memory_region.create(7); region1.memory_region[0].type = "TCMA"; region1.memory_region[0].$name = "R5F_VECS"; region1.memory_region[0].size = 0x40; region1.memory_region[0].auto = false; region1.memory_region[1].type = "TCMA"; region1.memory_region[1].$name = "R5F_TCMA"; region1.memory_region[1].size = 0x7FC0; region1.memory_region[2].type = "TCMB"; region1.memory_region[2].size = 0x8000; region1.memory_region[2].$name = "R5F_TCMB"; region1.memory_region[3].$name = "SBL"; region1.memory_region[3].auto = false; region1.memory_region[3].size = 0x40000; region1.memory_region[4].$name = "OCRAM"; region1.memory_region[4].auto = false; region1.memory_region[4].manualStartAddress = 0x70084000; region1.memory_region[4].size = 0x17C000; region1.memory_region[5].type = "FLASH"; region1.memory_region[5].auto = false; region1.memory_region[5].size = 0x80000; region1.memory_region[5].$name = "FLASH"; region1.memory_region[6].$name = "CPPI_DESC"; region1.memory_region[6].auto = false; region1.memory_region[6].manualStartAddress = 0x70080000; region1.memory_region[6].size = 0x4000; section1.load_memory = "R5F_VECS"; section1.group = false; section1.$name = "Vector Table"; section1.output_section.create(1); section1.output_section[0].$name = ".vectors"; section1.output_section[0].palignment = true; section2.load_memory = "OCRAM"; section2.$name = "Text Segments"; section2.output_section.create(5); section2.output_section[0].$name = ".text.hwi"; section2.output_section[0].palignment = true; section2.output_section[1].$name = ".text.cache"; section2.output_section[1].palignment = true; section2.output_section[2].$name = ".text.mpu"; section2.output_section[2].palignment = true; section2.output_section[3].$name = ".text.boot"; section2.output_section[3].palignment = true; section2.output_section[4].$name = ".text:abort"; section2.output_section[4].palignment = true; section3.load_memory = "OCRAM"; section3.$name = "Code and Read-Only Data"; section3.output_section.create(2); section3.output_section[0].$name = ".text"; section3.output_section[0].palignment = true; section3.output_section[1].$name = ".rodata"; section3.output_section[1].palignment = true; section4.load_memory = "OCRAM"; section4.$name = "Data Segment"; section4.output_section.create(1); section4.output_section[0].$name = ".data"; section4.output_section[0].palignment = true; section5.load_memory = "OCRAM"; section5.$name = "Memory Segments"; section5.output_section.create(3); section5.output_section[0].$name = ".bss"; section5.output_section[0].output_sections_start = "__BSS_START"; section5.output_section[0].output_sections_end = "__BSS_END"; section5.output_section[0].palignment = true; section5.output_section[1].$name = ".sysmem"; section5.output_section[1].palignment = true; section5.output_section[2].$name = ".stack"; section5.output_section[2].palignment = true; section6.load_memory = "OCRAM"; section6.$name = "Stack Segments"; section6.output_section.create(5); section6.output_section[0].$name = ".irqstack"; section6.output_section[0].output_sections_start = "__IRQ_STACK_START"; section6.output_section[0].output_sections_end = "__IRQ_STACK_END"; section6.output_section[0].input_section.create(1); section6.output_section[0].input_section[0].$name = ". = . + __IRQ_STACK_SIZE;"; section6.output_section[1].$name = ".fiqstack"; section6.output_section[1].output_sections_start = "__FIQ_STACK_START"; section6.output_section[1].output_sections_end = "__FIQ_STACK_END"; section6.output_section[1].input_section.create(1); section6.output_section[1].input_section[0].$name = ". = . + __FIQ_STACK_SIZE;"; section6.output_section[2].$name = ".svcstack"; section6.output_section[2].output_sections_start = "__SVC_STACK_START"; section6.output_section[2].output_sections_end = "__SVC_STACK_END"; section6.output_section[2].input_section.create(1); section6.output_section[2].input_section[0].$name = ". = . + __SVC_STACK_SIZE;"; section6.output_section[3].$name = ".abortstack"; section6.output_section[3].output_sections_start = "__ABORT_STACK_START"; section6.output_section[3].output_sections_end = "__ABORT_STACK_END"; section6.output_section[3].input_section.create(1); section6.output_section[3].input_section[0].$name = ". = . + __ABORT_STACK_SIZE;"; section6.output_section[4].$name = ".undefinedstack"; section6.output_section[4].output_sections_start = "__UNDEFINED_STACK_START"; section6.output_section[4].output_sections_end = "__UNDEFINED_STACK_END"; section6.output_section[4].input_section.create(1); section6.output_section[4].input_section[0].$name = ". = . + __UNDEFINED_STACK_SIZE;"; section7.load_memory = "OCRAM"; section7.$name = "Initialization and Exception Handling"; section7.output_section.create(3); section7.output_section[0].$name = ".ARM.exidx"; section7.output_section[0].palignment = true; section7.output_section[1].$name = ".init_array"; section7.output_section[1].palignment = true; section7.output_section[2].$name = ".fini_array"; section7.output_section[2].palignment = true; section8.$name = "NDK Packet Memory CPPI_DESC"; section8.type = "NOLOAD"; section8.load_memory = "CPPI_DESC"; section8.output_section.create(1); section8.output_section[0].$name = ".bss:ENET_CPPI_DESC"; section8.output_section[0].alignment = 128; section9.$name = "NDK Packet Memory DMA_PKT_MEMPOOL"; section9.type = "NOLOAD"; section9.group = false; section9.load_memory = "OCRAM"; section9.output_section.create(1); section9.output_section[0].$name = ".bss:ENET_DMA_PKT_MEMPOOL"; section9.output_section[0].alignment = 128; enet_cpsw1.$name = "CONFIG_ENET_CPSW0"; enet_cpsw1.LargePoolPktCount = 32; enet_cpsw1.PktInfoOnlyEnable = true; enet_cpsw1.hostportRxCsumOffloadEn = false; enet_cpsw1.cptsHostRxTsEn = false; enet_cpsw1.DisableMacPort2 = true; enet_cpsw1.macAddrConfig = "Manual Entry"; enet_cpsw1.customBoardEnable = true; enet_cpsw1.txDmaChannel[0].$name = "ENET_DMA_TX_CH0"; enet_cpsw1.rxDmaChannel[0].$name = "ENET_DMA_RX_CH0"; enet_cpsw1.rxDmaChannel[0].macAddrCount = 2; enet_cpsw1.pinmux[0].$name = "ENET_CPSW_PINMUX0"; enet_cpsw1.pinmux[0].MDIO.$assign = "MDIO"; enet_cpsw1.pinmux[0].MDIO.MDIO_MDIO.$assign = "MDIO_MDIO"; enet_cpsw1.pinmux[0].MDIO.MDIO_MDC.$assign = "MDIO_MDC"; enet_cpsw1.pinmux[0].RGMII1.$assign = "RGMII1"; enet_cpsw1.pinmux[0].RGMII2.$assign = "RGMII2"; enet_cpsw1.pinmux[0].RGMII2.RD0.$used = false; enet_cpsw1.pinmux[0].RGMII2.RD1.$used = false; enet_cpsw1.pinmux[0].RGMII2.RD2.$used = false; enet_cpsw1.pinmux[0].RGMII2.RD3.$used = false; enet_cpsw1.pinmux[0].RGMII2.RX_CTL.$used = false; enet_cpsw1.pinmux[0].RGMII2.RXC.$used = false; enet_cpsw1.pinmux[0].RGMII2.TD0.$used = false; enet_cpsw1.pinmux[0].RGMII2.TD1.$used = false; enet_cpsw1.pinmux[0].RGMII2.TD2.$used = false; enet_cpsw1.pinmux[0].RGMII2.TD3.$used = false; enet_cpsw1.pinmux[0].RGMII2.TX_CTL.$used = false; enet_cpsw1.pinmux[0].RGMII2.TXC.$used = false; enet_cpsw1.netifInstance.create(1); enet_cpsw1.netifInstance[0].$name = "NETIF_INST_ID0"; /** * Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future * version of the tool will not impact the pinmux you originally saw. These lines can be completely deleted in order to * re-solve from scratch. */ enet_cpsw1.pinmux[0].RGMII1.RD0.$suggestSolution = "RGMII1_RD0"; enet_cpsw1.pinmux[0].RGMII1.RD1.$suggestSolution = "RGMII1_RD1"; enet_cpsw1.pinmux[0].RGMII1.RD2.$suggestSolution = "RGMII1_RD2"; enet_cpsw1.pinmux[0].RGMII1.RD3.$suggestSolution = "RGMII1_RD3"; enet_cpsw1.pinmux[0].RGMII1.RX_CTL.$suggestSolution = "RGMII1_RX_CTL"; enet_cpsw1.pinmux[0].RGMII1.RXC.$suggestSolution = "RGMII1_RXC"; enet_cpsw1.pinmux[0].RGMII1.TD0.$suggestSolution = "RGMII1_TD0"; enet_cpsw1.pinmux[0].RGMII1.TD1.$suggestSolution = "RGMII1_TD1"; enet_cpsw1.pinmux[0].RGMII1.TD2.$suggestSolution = "RGMII1_TD2"; enet_cpsw1.pinmux[0].RGMII1.TD3.$suggestSolution = "RGMII1_TD3"; enet_cpsw1.pinmux[0].RGMII1.TX_CTL.$suggestSolution = "RGMII1_TX_CTL"; enet_cpsw1.pinmux[0].RGMII1.TXC.$suggestSolution = "RGMII1_TXC";
Please find the schematic