Jump to content
Electronics-Lab.com Community

Search the Community

Showing results for tags 'ok1028a-c development board'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Electronics Forums
    • Projects Q/A
    • Datasheet/Parts requests
    • Electronic Projects Design/Ideas
    • Power Electronics
    • Service Manuals
    • Theory articles
    • Electronics chit chat
    • Microelectronics
    • Electronic Resources
  • Related to Electronics
    • Spice Simulation - PCB design
    • Inventive/New Ideas
    • Mechanical constructions/Hardware
    • Sell/Buy electronics - Job offer/requests
    • Components trade
    • High Voltage Stuff
    • Electronic Gadgets
  • General
    • Announcements
    • Feedback/Comments
    • General
  • Salvage Area

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website URL


Yahoo


Skype


Location


Interests

Found 1 result

  1. After checking the schematic of the OK1028A-C and the "QorIQ LS1028 AReference Manual", it is found that there are 8 FlexTimers (FTM) available by defaultLS1028on the board, with each FTM having 8 pwm channels. The default backlight uses the pwm generated by FTM1, and we use FTM7 to do the pwm test. As shown in the figure below: LS1028 RCWSR12 registers 12-14 are pin multiplexed for I2C4. As shown in the figure below: The I2C4 pin can be multiplexed into six pin functions. The OK1028A-C sets the pins to rx and tx of can2 , you can see T6_CAN2_RX, U7_CAN2_TX in the schematic "OK1028A-C_V1.1". We can set I2C4 to the pwm pin by modifying the rcw file. OK1028A-C supports the pwm function by default, so we do not need to transplant the driver. All we need to do is to modify the pinmux and add the corresponding device node of pwm in the device tree. Modify packages/firmware In the /rcw/ls1028ardb/RSQPP0x85bb/rcw1500gpu600.rcw file, the setting for IIC4_PMUX is to configure the pin as a pwm output. Change IIC4 _ PMUX = 2 to IIC4 _ PMUX = 4 As shown in the figure below: After completing the above settings, we need to modify the device tree code and add pwm configuration. The path of our modified file is as follows: packages/linux/linux/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi. Then add the pwm7 device Pwm7: pwm@2860000 { compatible = "fsl,ls1028a-ftm-pwm"; reg =; #pwm-cells =; clock-names = "ftm_sys"; clocks = <&ftm_sysclk>; }; As shown in the figure below: ▐ Start the OK1028A-C system root@forlinx:~#cat /sys/kernel/debug/pwm View our current pwm devices As shown in the figure below: We have now opened a pwm controller and can see that FTM1 supports 8 channels, with the backlight using pwm channel 1. Compile the modified device tree file and firmware, burn them intoFolinx EmbeddedLS1028A-CDevelopment Board, and boot up the system. root@forlinx:~#cat /sys/kernel/debug/pwm View our current pwm devices. As shown in the figure below: At this time, although the pwm device we added is turned on, it is still different from the pwm0 device. Each channel of the newly added pwm device has no set period and duty cycle. So in the next step, we do not need to add driver code, but use sys to set pwm parameters directly. Pwmchip8 is the pwm device we added. ▐ Enable pwm channel used root@forlinx:~#echo 1 > /sys/class/pwm/pwmchip8/export Initialize pwm channel 1 root@forlinx:~#echo 2 > /sys/class/pwm/pwmchip8/export Initialize pwm channel 2 root@forlinx:~#cat /sys/kernel/debug/pwm CommandCheck out our current pwm devices: If you want to cancel the corresponding pwm channel, you can use "echo 1 > /sys/class/pwm/pwmchip8/unexport". “echo 2 > /sys/class/pwm/pwmchip8/unexport” command. Since we can only enable pwm one way at a time, configure and turn on pwm1 first. root@forlinx:~#echo 1000000 > /sys/class/pwm/pwmchip8/pwm1/period Configure the pwm1 period to be 1000000 in ns, which is 1kHZ. root@forlinx:~#echo 500000 > /sys/class/pwm/pwmchip8/pwm1/duty_cycle Configure the duty_cycle to 500000, the on time in a cycle is the duty cycle, the unit is ns, and the duty cycle is 50%. root@forlinx:~#echo 1 > /sys/class/pwm/pwmchip8/pwm1/enable Enable root@forlinx:~#cat/sys/class/pwm/pwmchip8/pwm1/{enable,period,duty_cycle}Command to view our pwm enable status, period, and duty cycle. As shown in the figure below: ▐ Test the 1khz square wave generated by T6_CAN2_RX with oscilloscope Since we can only enable one pwm at a time, we need to turn off pwm1 first if we want to enable pwm2. root@forlinx:~#echo 0 > /sys/class/pwm/pwmchip8/pwm1/enable root@forlinx:~#echo 1000000 > /sys/class/pwm/pwmchip8/pwm2/period Configure period to 1000000 root@forlinx:~#echo 500000 > /sys/class/pwm/pwmchip8/pwm2/duty_cycle Configure duty_cycle to 500000. root@forlinx:~#echo 1 > /sys/class/pwm/pwmchip8/pwm2/enable Enable root@forlinx:~#cat/sys/class/pwm/pwmchip8/pwm2/{enable,period,duty_cycle} ▐ Test the 1khz square wave generated by U7_CAN2_TX with oscilloscope When we use OK1028A-C single board computer, due to pin multiplexing, the pins of many functional modules are not led out, but the driver of the module is supported. In this case, we only need to modify the corresponding pinmux configuration and device tree file of rcw to use the corresponding function.
×
  • Create New...