diff --git a/script_support/components/CAPE/ROBOTICS/CAPE.tcl b/script_support/components/CAPE/ROBOTICS/CAPE.tcl index d2738afdb96acffec58cc282d9db2d724ac53256..d982cc8c2301b73bc2e2e407706b203a0da20612 100644 --- a/script_support/components/CAPE/ROBOTICS/CAPE.tcl +++ b/script_support/components/CAPE/ROBOTICS/CAPE.tcl @@ -127,6 +127,11 @@ sd_instantiate_component -sd_name ${sd_name} -component_name {CAPE_PWM} -instanc +# Add PWM_1 instance +sd_instantiate_component -sd_name ${sd_name} -component_name {CAPE_PWM} -instance_name {PWM_1} + + + # Add scalar net connections sd_create_scalar_net -sd_name ${sd_name} -net_name {P9_12} sd_create_scalar_net -sd_name ${sd_name} -net_name {P9_PIN15} @@ -173,10 +178,10 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:GPIO_6_PAD" "P8 sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:GPIO_7_PAD" "P8_PIN38" } sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:GPIO_8_PAD" "P8_PIN39" } sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:GPIO_9_PAD" "P8_PIN40" } -sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:PCLK" "P9_GPIO_0:PCLK" "PCLK" "PWM_0:PCLK" "apb_rotary_enc_0:pclk" } -sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:PRESETN" "P9_GPIO_0:PRESETN" "PRESETN" "PWM_0:PRESETN" "apb_rotary_enc_0:presetn" } -sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_PIN13_USER_LED_10" "PWM_0:PWM_3" } -sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_PIN19" "PWM_0:PWM_2" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:PCLK" "P9_GPIO_0:PCLK" "PCLK" "PWM_0:PCLK" "PWM_1:PCLK" "apb_rotary_enc_0:pclk" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:PRESETN" "P9_GPIO_0:PRESETN" "PRESETN" "PWM_0:PRESETN" "PWM_1:PRESETN" "apb_rotary_enc_0:presetn" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_PIN13_USER_LED_10" "PWM_1:PWM_1" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_PIN19" "PWM_1:PWM_0" } sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_PIN33" "apb_rotary_enc_0:enc1_b" } sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_PIN35" "apb_rotary_enc_0:enc1_a" } sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:PAD_0" "P9_PIN15" } @@ -197,10 +202,11 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_OUT" "G # Add bus interface net connections sd_connect_pins -sd_name ${sd_name} -pin_names {"APB_BUS_CONVERTER_0:APB_MASTER" "CoreAPB3_CAPE_0:APB3mmaster" } sd_connect_pins -sd_name ${sd_name} -pin_names {"APB_BUS_CONVERTER_0:APB_SLAVE" "APB_SLAVE" } -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreAPB3_CAPE_0:APBmslave0" "PWM_0:APBslave" } sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreAPB3_CAPE_0:APBmslave1" "P8_GPIO_UPPER_0:APB_bif" } sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreAPB3_CAPE_0:APBmslave2" "P9_GPIO_0:APB_bif" } sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreAPB3_CAPE_0:APBmslave3" "apb_rotary_enc_0:APB_TARGET" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreAPB3_CAPE_0:APBmslave4" "PWM_0:APBslave" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreAPB3_CAPE_0:APBmslave5" "PWM_1:APBslave" } # Re-enable auto promotion of pins of type 'pad' auto_promote_pad_pins -promote_all 1 diff --git a/script_support/components/CAPE/ROBOTICS/CAPE_PWM.tcl b/script_support/components/CAPE/ROBOTICS/CAPE_PWM.tcl index 88963aad2122a6f0a9dad31383f21b74c855b6c5..e59a793e700e3bf6b651a30c8b44e610d721aa0a 100644 --- a/script_support/components/CAPE/ROBOTICS/CAPE_PWM.tcl +++ b/script_support/components/CAPE/ROBOTICS/CAPE_PWM.tcl @@ -16,8 +16,6 @@ sd_create_scalar_port -sd_name ${sd_name} -port_name {APBslave_PREADY} -port_dir sd_create_scalar_port -sd_name ${sd_name} -port_name {APBslave_PSLVERR} -port_direction {OUT} sd_create_scalar_port -sd_name ${sd_name} -port_name {PWM_0} -port_direction {OUT} sd_create_scalar_port -sd_name ${sd_name} -port_name {PWM_1} -port_direction {OUT} -sd_create_scalar_port -sd_name ${sd_name} -port_name {PWM_2} -port_direction {OUT} -sd_create_scalar_port -sd_name ${sd_name} -port_name {PWM_3} -port_direction {OUT} # Create top level Bus Ports @@ -42,8 +40,6 @@ sd_create_bif_port -sd_name ${sd_name} -port_name {APBslave} -port_bif_vlnv {AMB sd_instantiate_component -sd_name ${sd_name} -component_name {corepwm_C1} -instance_name {corepwm_C1_0} sd_create_pin_slices -sd_name ${sd_name} -pin_name {corepwm_C1_0:PWM} -pin_slices {[0:0]} sd_create_pin_slices -sd_name ${sd_name} -pin_name {corepwm_C1_0:PWM} -pin_slices {[1:1]} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {corepwm_C1_0:PWM} -pin_slices {[2:2]} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {corepwm_C1_0:PWM} -pin_slices {[3:3]} @@ -52,8 +48,6 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"PCLK" "corepwm_C1_0:PCLK" } sd_connect_pins -sd_name ${sd_name} -pin_names {"PRESETN" "corepwm_C1_0:PRESETN" } sd_connect_pins -sd_name ${sd_name} -pin_names {"PWM_0" "corepwm_C1_0:PWM[0:0]" } sd_connect_pins -sd_name ${sd_name} -pin_names {"PWM_1" "corepwm_C1_0:PWM[1:1]" } -sd_connect_pins -sd_name ${sd_name} -pin_names {"PWM_2" "corepwm_C1_0:PWM[2:2]" } -sd_connect_pins -sd_name ${sd_name} -pin_names {"PWM_3" "corepwm_C1_0:PWM[3:3]" } # Add bus interface net connections diff --git a/script_support/components/CAPE/ROBOTICS/CoreAPB3_CAPE.tcl b/script_support/components/CAPE/ROBOTICS/CoreAPB3_CAPE.tcl index 38a4dc75819b28522eba39cb7a7065f38658954a..c619dcda4d75be2e56610ec07f149235a36076b2 100644 --- a/script_support/components/CAPE/ROBOTICS/CoreAPB3_CAPE.tcl +++ b/script_support/components/CAPE/ROBOTICS/CoreAPB3_CAPE.tcl @@ -4,12 +4,12 @@ # Create and Configure the core component CoreAPB3_CAPE create_and_configure_core -core_vlnv {Actel:DirectCore:CoreAPB3:4.2.100} -component_name {CoreAPB3_CAPE} -params {\ "APB_DWIDTH:32" \ -"APBSLOT0ENABLE:true" \ +"APBSLOT0ENABLE:false" \ "APBSLOT1ENABLE:true" \ "APBSLOT2ENABLE:true" \ "APBSLOT3ENABLE:true" \ -"APBSLOT4ENABLE:false" \ -"APBSLOT5ENABLE:false" \ +"APBSLOT4ENABLE:true" \ +"APBSLOT5ENABLE:true" \ "APBSLOT6ENABLE:false" \ "APBSLOT7ENABLE:false" \ "APBSLOT8ENABLE:false" \ diff --git a/script_support/components/CAPE/ROBOTICS/corepwm_C1.tcl b/script_support/components/CAPE/ROBOTICS/corepwm_C1.tcl index cdf175b5938fd916c7c0d51d71cf5ff6ca942d7e..fed7e6ddb50154ae8c71aae8abd22208f33da101 100644 --- a/script_support/components/CAPE/ROBOTICS/corepwm_C1.tcl +++ b/script_support/components/CAPE/ROBOTICS/corepwm_C1.tcl @@ -89,7 +89,7 @@ create_and_configure_core -core_vlnv {Actel:DirectCore:corepwm:4.5.100} -compone "FIXED_PWM_POSEDGE14:0" \ "FIXED_PWM_POSEDGE15:0" \ "FIXED_PWM_POSEDGE16:0" \ -"PWM_NUM:4" \ +"PWM_NUM:2" \ "PWM_STRETCH_VALUE1:false" \ "PWM_STRETCH_VALUE2:false" \ "PWM_STRETCH_VALUE3:false" \ diff --git a/script_support/components/CAPE/ROBOTICS/device-tree-overlay/robotics-cape.dtso b/script_support/components/CAPE/ROBOTICS/device-tree-overlay/robotics-cape.dtso index 3661f0ecaad5261d45f54671a09fa9f10846c995..dfb718e858c9b5ffc9aca8ba034b29c1ea758c8e 100644 --- a/script_support/components/CAPE/ROBOTICS/device-tree-overlay/robotics-cape.dtso +++ b/script_support/components/CAPE/ROBOTICS/device-tree-overlay/robotics-cape.dtso @@ -4,15 +4,33 @@ /dts-v1/; /plugin/; +&{/chosen} { + overlays { + ROBOTICS-CAPE-GATEWARE = &cape_pwm0; + }; +}; + &{/} { + fabric-bus@40000000 { - core_pwm0: pwm@41000000 { + + cape_pwm0: pwm@41400000 { compatible = "microchip,corepwm-rtl-v4"; - reg = <0x0 0x41000000 0x0 0xF0>; + reg = <0x0 0x41400000 0x0 0xF0>; microchip,sync-update-mask = /bits/ 32 <0>; - #pwm-cells = <2>; + #pwm-cells = <3>; + status = "okay"; + clocks = <&fabric_clk3>; + }; + + cape_pwm1: pwm@41500000 { + compatible = "microchip,corepwm-rtl-v4"; + reg = <0x0 0x41500000 0x0 0xF0>; + microchip,sync-update-mask = /bits/ 32 <0>; + #pwm-cells = <3>; + status = "okay"; clocks = <&fabric_clk3>; - status = "okay"; }; }; }; +