Skip navigation
> RoadTest Reviews

Infineon BLDC Shield + XMC 4700 Relax Kit + Motor - Review

Scoring

Product Performed to Expectations: 10
Specifications were sufficient to design with: 10
Demo Software was of good quality: 10
Product was easy to use: 10
Support materials were available: 10
The price to performance ratio was good: 10
TotalScore: 60 / 60
  • RoadTest: Infineon BLDC Shield + XMC 4700 Relax Kit + Motor
  • Buy Now
  • Evaluation Type: Development Boards & Tools
  • Was everything in the box required?: Yes
  • Comparable Products/Other parts you considered: Arduino UNO
  • What were the biggest problems encountered?: Initially I would like to replace the BLDC motor in the existing Hot air oven system due to the space limitations I could not continue but my testing and the hardware performance was up to my expectations. Planning for the alternate motor way to use the system.

  • Detailed Review:

    Hardware:

    XMC4700 Relax Kit, IXF007T BLDC Sheild, BLDC motor are the hardware received in this contest.

    https://github.com/Infineon/XMC-for-Arduino/wiki/XMC4700-Relax-Kit#arduino-pin-outArduino Pin Out

    The pin configurations for the XMC4700 relax kit are similar to the Arduino UNO board. The pin diagram and the description are given and for more details you can visit the URL https://github.com/Infineon/XMC-for-Arduino/wiki/XMC4700-Relax-Kit.  The example programs, datasheets, user manuals, IDE and libraries can downloaded from the following URLs BLDC-SHIELD_IFX007T, KIT_XMC47_RELAX_5V_AD_V1 and Arduino IDE.

     

    Example program execution:

    An example program is executed on the relax kit for verifying the pin configuration by blinking the On-board LEDs. The images and video shows perfect configuration of board and the  example program is also given below.

    The LEDs blinking with a time delay is shown in the video.

     

    Sample code for assigning the XMC4700 kit GPIO pins for LEDs to blink with a time delay.

    // Sample code to check whether the required libraries are installed in the IDE or not
    #include <arduino.h>
    #include <XMC4700.h>
    #define LIGHT1 24  // Additional LED1
    #define LIGHT2 25  // Additional LED2
    
    void setup() 
    {
      // initialize digital pin LED_BUILTIN as an output.
      pinMode(LIGHT1, OUTPUT);
      pinMode(LIGHT2, OUTPUT);
    }
    // the loop function runs over and over again forever
    void loop() {
      digitalWrite(LIGHT1, HIGH);   // turn the LED on (HIGH is the voltage level)
      digitalWrite(LIGHT2, HIGH);
      delay(1000);                  // wait for a second
      digitalWrite(LIGHT1, LOW);    // turn the LED off by making the voltage LOW
      digitalWrite(LIGHT2, LOW);
      delay(1000);                  // wait for a second
    }
    

     

    More details on interfacing the motor to the IFX007T motor shield are given in the following URL https://create.arduino.cc/projecthub/Infineon_Team/motor-control-shield-for-arduino-519633 the shield can used to connect the motor in H bridge, Half bridge and hall sensor mode.

     

    In the below figure I had connected the BLDC fan in half Bridge mode to control the motor speed.

    The video shows the operation of the BLDC motor speed in auto-mode to turn ON and OFF with a time delay.

     

    Program to control the motor speed in Auto-mode.

    /** This example code if for half-bridge application. The Motor should be connected to the Output U and GND */
    #include "IFX007T-Motor-Control.h"
    uint8_t MotorNr = 0;
    uint8_t speed = 0;
    //Create an instance of 'IFX007TMotorControl' called 'MyMotor'
    IFX007TMotorControl MyMotor = IFX007TMotorControl();
    
    void setup()
    {
      MyMotor.begin();
    }
    
    void loop()
    {
      // First Argument: Choose which Motor to drive: 0 = U, 1 = V, 2 = W
      // Second Argument: Choose how fast it should turn: a value between 0 and 255
      speed = 127;
      MyMotor.setUniDirMotorSpeed(MotorNr, speed);
      delay(9000);
      speed = 0;
      MyMotor.setUniDirMotorSpeed(MotorNr, speed);
      delay(9000);
    }
    

     

    I would like to control the motor speed manual by turning it ON or OFF as the user interest by push-button.

    Program code for controlling the motor manually by push-button operation.

    #include <arduino.h>
    #include <XMC4700.h>
    #include "IFX007T-Motor-Control.h"
    #define pin_switch 26
    #define pin_LED 24
    
    uint8_t MotorNr = 0;
    uint8_t speed = 0;
    
    //Create an instance of 'IFX007TMotorControl' called 'MyMotor'
    IFX007TMotorControl MyMotor = IFX007TMotorControl();
    
    // variables to hold the new and old switch states
    boolean oldSwitchState = LOW;
    boolean newSwitchState = LOW;
    boolean LEDstatus = LOW;
    
    void setup() 
    {
        pinMode(pin_LED, OUTPUT);  
        digitalWrite(pin_LED,LOW); 
        pinMode(pin_switch, INPUT); 
        MyMotor.begin();
        
    }
    
    void loop()
    {
        newSwitchState = digitalRead(pin_switch);
    
        if ( newSwitchState != oldSwitchState ) 
        {
           // has the button switch been closed?
           if ( newSwitchState == HIGH )
           {
               if ( LEDstatus == LOW )
               {
                digitalWrite(pin_LED, HIGH);  
                LEDstatus = HIGH;   
                speed = 127;
                MyMotor.setUniDirMotorSpeed(MotorNr, speed);
                }
               else                    
               { 
                digitalWrite(pin_LED, LOW);   
                LEDstatus = LOW;
                speed = 0;
                MyMotor.setUniDirMotorSpeed(MotorNr, speed); 
                }
           }
           oldSwitchState = newSwitchState;
        }   
    }
    

     

     

    The system is working well with all different mode as of user choice it can control by the temperature operation, logic operation and can be used in various purposes. It is easy to program and configure the device to any application if the user have a basic knowledge on the Arduino boards and IDE. Thanks to the sponsoring and Element14 team for giving the opportunity to test the hardware and it performance. I felt it is very useful hardware to design any applications as the example programs and libraries are readily available.  


Comments

Also Enrolling

Enrollment Closes: Feb 23 
Enroll
Enrollment Closes: Feb 19 
Enroll
Enrollment Closes: Jan 29 
Enroll