This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

piccolo 28035 sci have any limitation

Hi,

i use piccolo 28035 with HVBLDC_Sensorless controlling(in HVMotorCtrl+PfcKit_v1.4). and it works ok. Then I add rs232 to LED panel display(HT46RU22 + LCD Driver HT1621B) with sci(in DSP2803x_examples_ccsv4). I found that once motor start, then sci(rs232) slow or stop, and once motor stop, then sci(rs232) ok.

Have any idea or something to solve this problem? Or piccolo 28035 sci have any limitation?

 

We all look forward with eager for your expert suggestion.

Best Regards

John

 

  • Can I ask exactly what you mean when it slows?

    Does it:

    a) Decrease in baud rate

    b) Have the same baud rate, but the time in between bytes increases

    c) Both

    Have a look at the lines on a scope to see which is happening and if there is significant noise on the lines when the motor is on.

    Tim

  • Hi Tim,

    mcu a) HT46RU22: Baud Rate  38400  BRG 12  Error  0.16   (for BRGH=1&fSYS=8MHz)            

    mcu b) piccolo 28035: Baud Rate  38400  BRR 48  Error  -0.35

    Have the same baud rate,

    Whether the Baud Rate error caused slower transfer when motor is on.

    We all look forward with eager for your expert suggestion.

    Best Regards

    John

  • The minor difference in baud rate should not cause any issue.  What I wanted to know is whether, when the motor is on, the baud rate is still 38400?  To find this out you will need to put an oscilloscope on the line and measure the baud rate. 


    Also, when you say 'slow' do you mean that the number of bytes being transferred per second is reduced when the motor is on?


    Tim

  • Hi Tim,

    when the motor is on, the baud rate of the HT to TI on the line is measured still 38400 and TI to HT:the number of bytes being transferred per second is reduced  . The piccolo 28035 contain motor, buck, i2c and sci. So the piccolo 28035 execution time must be bigger than sampling time(#define ISR_FREQUENCY 40, 25 microsec). How to get the the piccolo 28035 execution time? And can I set sampling time be 50 microsec(20k)? Does motor works fine?  

    We all look forward with eager for your expert suggestion.

    Best Regards

    John

  • Hi Tim,

    I need the execution time for the piccolo 28035  and cannot get it to work.  I'm using CCS4 and XDS100 USB EMULATOR. 

    We all look forward with eager for your expert suggestion.

    Best Regards

    John

  • John,

    As I suspected it looks like it is an execution time issue.  Here a few questions/tips:

    1) Check the clock speed.  In DSP2803x_SysCtrl.c, the clock is initialized.  The clock should be set to 60MHz (max speed) - read SPRUFB0D.pdf (System Clocking and Ints Guide) for information.  Are you using an external or internal oscillator?

    2) I assume you are using interrupts for your motor,buck, i2c and sci - correct me if I am wrong.

    3) If you are using interrupts you can time how long each takes by doing the following steps:

     - Find a spare GPIO which you can read with an oscilloscope.  Set it up as an output.  Output it low.

     - At the start of your interrupt toggle the GPIO high. 

    - At the end of your interrupt toggle the GPIO low

    - Run your program and measure with an oscilloscope.  You can check the frequency between rising edges (repetition rate of the interrupt) and the length of the pulses (execution time).

    Do this for the motor and buck peripherals.  If the smallest interrupt period (1/ max interrupt frequency) is comparable to sum of the length of the execution time of buck+motor you are likely to have execution time issues.

    4) If you think it is an execution time issue, adjust the frequency of buck/motor to a slower rate and see if that helps.

    5) Are you running your control loops from the CPU or the CLA coprocessor?

    Hopefully these steps can give you more insight into the problem,

    Tim