Skip to content

pslavkin/servo_pmsm

Repository files navigation

PMSM Servo motor driver based on C2000

development of a customized high precision microcontrolled permament magnet embedded servo motor

Progress

  • ✔️ Soft tools (compiler, css. eclipse, cmd)
  • ✔️ Hard tools (blue big board, launchpad, mootors)
  • ✔️ Blinky
  • ✔️ Customized cooperative RTOS
  • ✔️ SCI based command console
  • ✔️ ADC module single ended 15bits
  • ✔️ PWM two channel as encoder output
  • ✔️ IQMath RAM math library for math acceleration
  • ✔️ EQEP cuadrature decoder high and low speed and position managemenr
  • ✔️ Internal temperature sensor measurement using ADC
  • ✔️ Add schedule module to manage periodic task
  • ✔️ Spin motor reading his pos and speed
  • ✔️ PWM 3 phase openloop (added sample video)
  • ✔️ Port the project to controlBoard and do the fitst spin! (see video)
  • ✔️ controlBoard closed loop with LEM fitst aproach! (see video)
  • ✔️ PWM callibrate using ipark and svgen
  • ✔️ PWM follows mechanical angle 'current loop' at 5k
  • ✔️ Iq inchoate PI closed loop, but works
  • ✔️ MOLDOVA here I'm! spinning szgh13380CC motors
  • ✔️ fanuc servomotor experimetation
  • ✔️ mitsubishi servomotor experimetation
  • ✔️ step/dir emulation from console works!
  • ✔️ first set of curves controlling pos+vel+iq
  • ✔️ absolute position calc from realative in feedback
  • ✔️ sin generator sinusoidal and step function work
  • ✔️ step dir using isr to connect to a controller
  • ✔️ testing on a 4 poles motor and it work
  • ✔️ prototype arrives! It's huge!
  • ✔️ prototype works! 0.2m/seg max until now, but works
  • ✔️ connected to a chinise CNC works!
  • 🚧 bode plot
  • 🚧 scratch materplan
  • 🚧 merging example fcl with my own code
  • 🚧 trying to manage BiA128 fanuc encoder
  • 🚧 Testing current loop parameters
  • 🚧 Speed loop
  • 🔴 Sigma delta ADC decoder
  • 🔴 Shunt current close loop
  • 🔴 IQMath ROM math library for math acceleration on C2000 ROM
  • 🔴 Dual core compilation
  • 🔴 Dual core interconnect IPC

Table of Contents

If you're README has a lot of info, section headers might be nice.


SCI gif demo

PWM complementary demo

Spin motor manually. Encoder test

3PH generator open loop with leds, but fully functional

First Motor Spin, open loop, with blue board

First Motor Spin, closed loop, with blue board first aproach

moldova

here I'm

motorsszch

layout

I'm beggining the test using this motor

pinout qep

Take care about the pinout of CN2, it's refered as in the driver not regarding the pinout indicating in the DB15 connector

I figure out the original pinout and parameters from the chines manufacturer:

szgh13380CC in action

There it's a big motor in actiion to test if the encoder work as we suspect:

fanuc

I'd manage to figure out that inside fanuc encoder it has all kind of output not only the absolute position encoder, like analog sin/cos and incremental quadradture

fanuc encoder pinout from datasheet pag 235

mitsubishi

trying to test a servo motor mitsubishi from a stopped machine that has an absolute encoder with an alarm. I'd manage to test the analog output but nor the absolute output becouse I haven't their protocol, but at least I measure inside and aquire power supply pinout asi in pictures:

gnuplot

I've addedd gnuplot dir to visualize the data from servodriver using a set of log and also recompile picocomo to add log functionality. There are a first curves:

I've added sinusoidal and step function generator to test the response, see the videos and figures:

masterplan

4 poles motor test

testing a 4 poles instead of 8 and mixing encoders

proto

...and comes the prototype!! ? It's more than a proto!

testing the prototype at full speed full length and full voltage:

cnc

connected to a CNC with pulse and direction:

sasha force test (don't try by youserlf!):

I've used internal transceivers to receive pulse and dir diferential signalign from cnc. I've use a CAN transceiver for pulse and a rs485 from encoder , both isolated

Hierarchy

.
├── 2837xD_FLASH_lnk_cpu1_cmd
├── 2837xD_FLASH_lnk_cpu1.cmd
├── 2837xD_RAM_lnk_cpu1_cmd
├── 2837xD_RAM_lnk_cpu1.cmd
├── Debug
│   ├── ccsObjs.opt
│   ├── driverlib
│   │   ├── adc.d
│   │   ├── adc.obj
│   │   ├── asysctl.d
│   │   ├── asysctl.obj
│   │   ├── can.d
│   │   ├── can.obj
│   │   ├── cla.d
│   │   ├── cla.obj
│   │   ├── cmpss.d
│   │   ├── cmpss.obj
│   │   ├── cputimer.d
│   │   ├── cputimer.obj
│   │   ├── dac.d
│   │   ├── dac.obj
│   │   ├── dcsm.d
│   │   ├── dcsm.obj
│   │   ├── dma.d
│   │   ├── dma.obj
│   │   ├── ecap.d
│   │   ├── ecap.obj
│   │   ├── emif.d
│   │   ├── emif.obj
│   │   ├── epwm.d
│   │   ├── epwm.obj
│   │   ├── eqep.d
│   │   ├── eqep.obj
│   │   ├── flash.d
│   │   ├── flash.obj
│   │   ├── gpio.d
│   │   ├── gpio.obj
│   │   ├── hrpwm.d
│   │   ├── hrpwm.obj
│   │   ├── i2c.d
│   │   ├── i2c.obj
│   │   ├── interrupt.d
│   │   ├── interrupt.obj
│   │   ├── mcbsp.d
│   │   ├── mcbsp.obj
│   │   ├── memcfg.d
│   │   ├── memcfg.obj
│   │   ├── sci.d
│   │   ├── sci.obj
│   │   ├── sdfm.d
│   │   ├── sdfm.obj
│   │   ├── spi.d
│   │   ├── spi.obj
│   │   ├── subdir_rules.mk
│   │   ├── subdir_vars.mk
│   │   ├── sysctl.d
│   │   ├── sysctl.obj
│   │   ├── upp.d
│   │   ├── upp.obj
│   │   ├── version.d
│   │   ├── version.obj
│   │   ├── xbar.d
│   │   └── xbar.obj
│   ├── lib
│   │   ├── subdir_rules.mk
│   │   └── subdir_vars.mk
│   ├── libraries
│   │   ├── control
│   │   │   ├── ctrl
│   │   │   │   └── source
│   │   │   │       ├── ctrl.d
│   │   │   │       ├── subdir_rules.mk
│   │   │   │       └── subdir_vars.mk
│   │   │   ├── fwc
│   │   │   │   └── source
│   │   │   │       ├── fwc.d
│   │   │   │       ├── subdir_rules.mk
│   │   │   │       └── subdir_vars.mk
│   │   │   ├── mtpa
│   │   │   │   └── source
│   │   │   │       ├── mtpa.d
│   │   │   │       ├── subdir_rules.mk
│   │   │   │       └── subdir_vars.mk
│   │   │   ├── pi
│   │   │   │   └── source
│   │   │   │       ├── pi.d
│   │   │   │       ├── subdir_rules.mk
│   │   │   │       └── subdir_vars.mk
│   │   │   ├── pid
│   │   │   │   └── source
│   │   │   │       ├── pid.d
│   │   │   │       ├── subdir_rules.mk
│   │   │   │       └── subdir_vars.mk
│   │   │   ├── vsf
│   │   │   │   └── source
│   │   │   │       ├── subdir_rules.mk
│   │   │   │       ├── subdir_vars.mk
│   │   │   │       └── vsf.d
│   │   │   └── vs_freq
│   │   │       └── source
│   │   │           ├── subdir_rules.mk
│   │   │           ├── subdir_vars.mk
│   │   │           └── vs_freq.d
│   │   ├── fcl
│   │   │   └── lib
│   │   │       ├── subdir_rules.mk
│   │   │       └── subdir_vars.mk
│   │   ├── filter
│   │   │   ├── filter_fo
│   │   │   │   └── source
│   │   │   │       ├── filter_fo.d
│   │   │   │       ├── subdir_rules.mk
│   │   │   │       └── subdir_vars.mk
│   │   │   ├── filter_so
│   │   │   │   └── source
│   │   │   │       ├── filter_so.d
│   │   │   │       ├── subdir_rules.mk
│   │   │   │       └── subdir_vars.mk
│   │   │   └── offset
│   │   │       └── source
│   │   │           ├── offset.d
│   │   │           ├── subdir_rules.mk
│   │   │           └── subdir_vars.mk
│   │   ├── math
│   │   │   └── source
│   │   │       ├── FPUmathTables.obj
│   │   │       ├── sincos.obj
│   │   │       ├── sqrt.obj
│   │   │       ├── subdir_rules.mk
│   │   │       └── subdir_vars.mk
│   │   ├── observers
│   │   │   ├── est
│   │   │   │   └── source
│   │   │   │       ├── subdir_rules.mk
│   │   │   │       ├── subdir_vars.mk
│   │   │   │       ├── user.d
│   │   │   │       └── user_dm.d
│   │   │   ├── fast
│   │   │   │   └── lib
│   │   │   │       └── f28004x
│   │   │   │           ├── subdir_rules.mk
│   │   │   │           └── subdir_vars.mk
│   │   │   └── slip
│   │   │       └── source
│   │   │           ├── slip.d
│   │   │           ├── subdir_rules.mk
│   │   │           └── subdir_vars.mk
│   │   ├── sfra
│   │   │   ├── examples
│   │   │   │   ├── cmd
│   │   │   │   │   ├── subdir_rules.mk
│   │   │   │   │   └── subdir_vars.mk
│   │   │   │   ├── drivers
│   │   │   │   │   └── f28004x
│   │   │   │   │       └── source
│   │   │   │   │           ├── device.d
│   │   │   │   │           ├── sfra_examples_hal.d
│   │   │   │   │           ├── subdir_rules.mk
│   │   │   │   │           └── subdir_vars.mk
│   │   │   │   └── example1_stb
│   │   │   │       └── source
│   │   │   │           ├── example1_stb.d
│   │   │   │           ├── subdir_rules.mk
│   │   │   │           └── subdir_vars.mk
│   │   │   ├── gui
│   │   │   │   ├── source
│   │   │   │   │   ├── sfra_gui_scicomms_driverlib.d
│   │   │   │   │   ├── subdir_rules.mk
│   │   │   │   │   └── subdir_vars.mk
│   │   │   │   ├── subdir_rules.mk
│   │   │   │   └── subdir_vars.mk
│   │   │   └── lib
│   │   │       ├── subdir_rules.mk
│   │   │       └── subdir_vars.mk
│   │   ├── transforms
│   │   │   ├── clarke
│   │   │   │   └── source
│   │   │   │       ├── clarke.d
│   │   │   │       ├── subdir_rules.mk
│   │   │   │       └── subdir_vars.mk
│   │   │   ├── ipark
│   │   │   │   └── source
│   │   │   │       ├── ipark.d
│   │   │   │       ├── subdir_rules.mk
│   │   │   │       └── subdir_vars.mk
│   │   │   ├── park
│   │   │   │   └── source
│   │   │   │       ├── park.d
│   │   │   │       ├── subdir_rules.mk
│   │   │   │       └── subdir_vars.mk
│   │   │   └── svgen
│   │   │       └── source
│   │   │           ├── subdir_rules.mk
│   │   │           ├── subdir_vars.mk
│   │   │           ├── svgen_current.d
│   │   │           └── svgen.d
│   │   └── utilities
│   │       ├── angle_gen
│   │       │   └── source
│   │       │       ├── angle_gen.d
│   │       │       ├── subdir_rules.mk
│   │       │       └── subdir_vars.mk
│   │       ├── cpu_time
│   │       │   └── source
│   │       │       ├── cpu_time.d
│   │       │       ├── subdir_rules.mk
│   │       │       └── subdir_vars.mk
│   │       ├── datalog
│   │       │   └── source
│   │       │       ├── datalog.d
│   │       │       ├── dlog_4ch_f.d
│   │       │       ├── subdir_rules.mk
│   │       │       └── subdir_vars.mk
│   │       ├── diagnostic
│   │       │   └── source
│   │       │       ├── graph.d
│   │       │       ├── subdir_rules.mk
│   │       │       └── subdir_vars.mk
│   │       ├── queue
│   │       │   └── source
│   │       │       ├── queue.d
│   │       │       ├── subdir_rules.mk
│   │       │       └── subdir_vars.mk
│   │       └── traj
│   │           └── source
│   │               ├── subdir_rules.mk
│   │               ├── subdir_vars.mk
│   │               └── traj.d
│   ├── makefile
│   ├── objects.mk
│   ├── sources.mk
│   ├── src
│   │   ├── adc_.d
│   │   ├── adc_.obj
│   │   ├── cbuffer.d
│   │   ├── cbuffer.obj
│   │   ├── device.d
│   │   ├── device.obj
│   │   ├── eqep_.d
│   │   ├── eqep_.obj
│   │   ├── events.d
│   │   ├── events.obj
│   │   ├── everythings.d
│   │   ├── everythings.obj
│   │   ├── F2837xD_CodeStartBranch.obj
│   │   ├── fcl_qep_f2837x_tmdxiddk.d
│   │   ├── leds.d
│   │   ├── leds.obj
│   │   ├── main.d
│   │   ├── main.obj
│   │   ├── parser.d
│   │   ├── parser.obj
│   │   ├── pwm.d
│   │   ├── schedule.d
│   │   ├── schedule.obj
│   │   ├── scia.d
│   │   ├── scia.obj
│   │   ├── sm.d
│   │   ├── sm.obj
│   │   ├── subdir_rules.mk
│   │   ├── subdir_vars.mk
│   │   ├── systick.d
│   │   ├── systick.obj
│   │   ├── wdog.d
│   │   └── wdog.obj
│   ├── subdir_rules.mk
│   ├── subdir_vars.mk
│   └── utils
│       ├── cmdline.d
│       ├── subdir_rules.mk
│       ├── subdir_vars.mk
│       ├── ustdlib.d
│       └── ustdlib.obj
├── doc
│   ├── datasheet
│   │   ├── controlBoard.pdf
│   │   ├── controlBoard_sch.pdf
│   │   ├── fanuc_A860-2020-T301_pinout.txt
│   │   ├── fanuc_bia128.pdf
│   │   ├── fanuc_serie_beta.pdf
│   │   ├── fcl_sensored_pmsm_iddk_users_guide.pdf
│   │   ├── IndutrialDrivesRev[2.2.1].pdf
│   │   ├── spru514_c_compiler.pdf
│   │   ├── sprui77c_launchpad.pdf
│   │   ├── spruip4.pdf
│   │   └── spruiq4.pdf
│   ├── pics
│   │   ├── controlcard.jpeg
│   │   ├── fanuc_encoder_pinout_datasheet.png
│   │   ├── fanuc_encoder_pinout.jpg
│   │   ├── launchpad_detailed.jpg
│   │   ├── launchpad.jpeg
│   │   ├── mitsubishi_encoder1.jpg
│   │   ├── mitsubishi_encoder2.jpg
│   │   ├── mitsubishi_motor.jpg
│   │   ├── moldova.jpg
│   │   ├── motor_szgh.jpg
│   │   ├── motor_szgh_parameters.jpg
│   │   ├── motor_szgh_pinout_chinese.jpg
│   │   ├── motor_szgh_pinout.jpg
│   │   └── TMDXIDDK379D.jpeg
│   ├── ref
│   │   ├── 3-Phase AC Motor Controller.pdf
│   │   ├── AN1958_NXP.pdf
│   │   ├── eqep_ex2_calculation.xls
│   │   ├── JCRA2010_modules_Clarke_publicado.pdf
│   │   ├── pid_demistified.pdf
│   │   ├── servo_control.pdf
│   │   └── SF2_MC_Park_InvPark_Clarke_InvClarke_Transforms_UG.pdf
│   └── videos
│       ├── encoder_manual.gif
│       ├── fanuc_analog_output.gif
│       ├── fanuc_analog_output.mp4
│       ├── fanuc_qep_output.gif
│       ├── fanuc_qep_output.mp4
│       ├── info.txt
│       ├── level2open_loop.gif
│       ├── level5closed_loop.gif
│       ├── pwm_3ph_openloop.gif
│       ├── pwm.gif
│       ├── sci.gif
│       ├── speedup_fanuc_analog_output.mp4
│       ├── speedup_fanuc_qep_output.mp4
│       └── szgh13380cc_runnning.gif
├── driverlib
│   ├── adc.c
│   ├── adc.h
│   ├── asysctl.c
│   ├── asysctl.h
│   ├── can.c
│   ├── can.h
│   ├── cla.c
│   ├── cla.h
│   ├── cmpss.c
│   ├── cmpss.h
│   ├── cpu.h
│   ├── cputimer.c
│   ├── cputimer.h
│   ├── dac.c
│   ├── dac.h
│   ├── dcsm.c
│   ├── dcsm.h
│   ├── debug.h
│   ├── device.h
│   ├── dma.c
│   ├── dma.h
│   ├── driverlib.h
│   ├── ecap.c
│   ├── ecap.h
│   ├── emif.c
│   ├── emif.h
│   ├── epwm.c
│   ├── epwm.h
│   ├── eqep.c
│   ├── eqep.h
│   ├── flash.c
│   ├── flash.h
│   ├── gpio.c
│   ├── gpio.h
│   ├── hrpwm.c
│   ├── hrpwm.h
│   ├── i2c.c
│   ├── i2c.h
│   ├── inc
│   │   ├── hw_adc.h
│   │   ├── hw_asysctl.h
│   │   ├── hw_can.h
│   │   ├── hw_cla.h
│   │   ├── hw_clbxbar.h
│   │   ├── hw_cmpss.h
│   │   ├── hw_cputimer.h
│   │   ├── hw_dac.h
│   │   ├── hw_dcsm.h
│   │   ├── hw_dma.h
│   │   ├── hw_ecap.h
│   │   ├── hw_emif.h
│   │   ├── hw_epwm.h
│   │   ├── hw_epwmxbar.h
│   │   ├── hw_eqep.h
│   │   ├── hw_flash.h
│   │   ├── hw_gpio.h
│   │   ├── hw_hrpwm.h
│   │   ├── hw_i2c.h
│   │   ├── hw_inputxbar.h
│   │   ├── hw_ints.h
│   │   ├── hw_ipc.h
│   │   ├── hw_mcbsp.h
│   │   ├── hw_memcfg.h
│   │   ├── hw_memmap.h
│   │   ├── hw_nmi.h
│   │   ├── hw_outputxbar.h
│   │   ├── hw_pie.h
│   │   ├── hw_sci.h
│   │   ├── hw_sdfm.h
│   │   ├── hw_spi.h
│   │   ├── hw_sysctl.h
│   │   ├── hw_types.h
│   │   ├── hw_upp.h
│   │   ├── hw_xbar.h
│   │   └── hw_xint.h
│   ├── interrupt.c
│   ├── interrupt.h
│   ├── mcbsp.c
│   ├── mcbsp.h
│   ├── memcfg.c
│   ├── memcfg.h
│   ├── pin_map.h
│   ├── sci.c
│   ├── sci.h
│   ├── sdfm.c
│   ├── sdfm.h
│   ├── spi.c
│   ├── spi.h
│   ├── sysctl.c
│   ├── sysctl.h
│   ├── upp.c
│   ├── upp.h
│   ├── version.c
│   ├── version.h
│   ├── xbar.c
│   └── xbar.h
├── flash.sh
├── include
│   ├── abi_prefix.h
│   ├── assert.h
│   ├── autoinit.h
│   ├── boot_hooks.h
│   ├── complex
│   ├── complex.h
│   ├── cpp_inline_math.h
│   ├── cpy_tbl.h
│   ├── crc_defines.h
│   ├── crc_tbl.h
│   ├── ctype.h
│   ├── cxxabi.h
│   ├── _data_synch.h
│   ├── _defs.h
│   ├── elfnames.h
│   ├── errno.h
│   ├── exception.stdh
│   ├── fenv.h
│   ├── fenv-softfloat.h
│   ├── file.h
│   ├── float.h
│   ├── _fmt_specifier.h
│   ├── inttypes.h
│   ├── IQmathLib.h
│   ├── _isfuncdcl.h
│   ├── _isfuncdef.h
│   ├── iso646.h
│   ├── limits.h
│   ├── linkage.h
│   ├── locale.h
│   ├── _lock.h
│   ├── lowlev.h
│   ├── math_blocks
│   │   ├── aci_fe_const.h
│   │   ├── aci_fe.h
│   │   ├── aci_se_const.h
│   │   ├── aci_se.h
│   │   ├── angle_math.h
│   │   ├── clarke.h
│   │   ├── com_trig.h
│   │   ├── cur_const.h
│   │   ├── cur_mod.h
│   │   ├── dmctype.h
│   │   ├── ~Docs
│   │   │   └── DMC MATH_v13.1.pdf
│   │   ├── impulse.h
│   │   ├── ipark.h
│   │   ├── mod6_cnt.h
│   │   ├── park.h
│   │   ├── pid_grando.h
│   │   ├── pid_reg3.h
│   │   ├── pi.h
│   │   ├── pi_reg4.h
│   │   ├── rampgen.h
│   │   ├── readme.txt
│   │   ├── resolver.h
│   │   ├── rmp2cntl.h
│   │   ├── rmp3cntl.h
│   │   ├── rmp_cntl.h
│   │   ├── sin_cos_table.h
│   │   ├── smopos_const.h
│   │   ├── smopos.h
│   │   ├── speed_est.h
│   │   ├── speed_fr.h
│   │   ├── speed_pr.h
│   │   ├── svgen_comm.h
│   │   ├── svgen_dpwm.h
│   │   ├── svgen.h
│   │   ├── svgen_mf.h
│   │   ├── vhzprof.h
│   │   └── volt_calc.h
│   ├── math.h
│   ├── _mutex.h
│   ├── new.stdh
│   ├── opt.h
│   ├── pprof.h
│   ├── _pthread.h
│   ├── _reg_mutex_api.h
│   ├── _reg_synch_api.h
│   ├── setjmp.h
│   ├── signal.h
│   ├── stdalign.h
│   ├── stdarg.h
│   ├── stdbool.h
│   ├── stddef.h
│   ├── _stdint40.h
│   ├── stdint.h
│   ├── stdio.h
│   ├── stdlibf.h
│   ├── stdlib.h
│   ├── stdnoreturn.h
│   ├── string.h
│   ├── strings.h
│   ├── tgmath.h
│   ├── _ti_config.h
│   ├── time.h
│   ├── _tls.h
│   ├── trgdrv.h
│   ├── typeinfo.stdh
│   ├── wchar.h
│   └── wctype.h
├── lib
│   ├── IQmath_fpu32_coff.lib
│   ├── IQmath_fpu32.lib
│   └── rts2800_fpu32.lib
├── libraries
│   ├── control
│   │   ├── ctrl
│   │   │   ├── include
│   │   │   │   ├── ctrl.h
│   │   │   │   ├── ctrl_obj.h
│   │   │   │   └── ctrl_states.h
│   │   │   └── source
│   │   │       └── ctrl.c
│   │   ├── fwc
│   │   │   ├── include
│   │   │   │   └── fwc.h
│   │   │   └── source
│   │   │       └── fwc.c
│   │   ├── mtpa
│   │   │   ├── include
│   │   │   │   └── mtpa.h
│   │   │   └── source
│   │   │       └── mtpa.c
│   │   ├── pi
│   │   │   ├── include
│   │   │   │   └── pi.h
│   │   │   └── source
│   │   │       └── pi.c
│   │   ├── pid
│   │   │   ├── include
│   │   │   │   └── pid.h
│   │   │   └── source
│   │   │       └── pid.c
│   │   ├── vsf
│   │   │   ├── include
│   │   │   │   └── vsf.h
│   │   │   └── source
│   │   │       └── vsf.c
│   │   └── vs_freq
│   │       ├── include
│   │       │   └── vs_freq.h
│   │       └── source
│   │           └── vs_freq.c
│   ├── fcl
│   │   ├── docs
│   │   │   └── fast_current_loop_library_users_guide.pdf
│   │   ├── include
│   │   │   ├── fcl_cpu_cla.h
│   │   │   └── fcl_pi.h
│   │   └── lib
│   │       ├── fcl_cpu_cla_coff.lib
│   │       ├── fcl_cpu_cla_eabi.lib
│   │       └── fcl_cpu_cla.lib
│   ├── filter
│   │   ├── filter_fo
│   │   │   ├── include
│   │   │   │   └── filter_fo.h
│   │   │   └── source
│   │   │       └── filter_fo.c
│   │   ├── filter_so
│   │   │   ├── include
│   │   │   │   └── filter_so.h
│   │   │   └── source
│   │   │       └── filter_so.c
│   │   └── offset
│   │       ├── include
│   │       │   └── offset.h
│   │       └── source
│   │           └── offset.c
│   ├── math
│   │   ├── include
│   │   │   └── math.h
│   │   └── source
│   │       ├── FPUmathTables.asm
│   │       ├── sincos.asm
│   │       └── sqrt.asm
│   ├── observers
│   │   ├── est
│   │   │   ├── include
│   │   │   │   ├── est_Flux_states.h
│   │   │   │   ├── est.h
│   │   │   │   ├── est_Ls_states.h
│   │   │   │   ├── est_Rr_states.h
│   │   │   │   ├── est_Rs_states.h
│   │   │   │   ├── est_states.h
│   │   │   │   ├── est_Traj_states.h
│   │   │   │   ├── motor.h
│   │   │   │   └── userParams.h
│   │   │   └── source
│   │   │       ├── user.c
│   │   │       └── user_dm.c
│   │   ├── fast
│   │   │   └── lib
│   │   │       └── f28004x
│   │   │           └── f28004x_fast_rom_symbols_fpu32.lib
│   │   └── slip
│   │       ├── include
│   │       │   └── slip.h
│   │       └── source
│   │           └── slip.c
│   ├── position_sensing
│   │   └── qep
│   │       └── include
│   │           └── qep_defs.h
│   ├── sfra
│   │   ├── C2000SoftwareFrequencyResponseAnalyzer_1_40_00_manifest.html
│   │   ├── docs
│   │   │   └── sfra_library_users_guide.html
│   │   ├── examples
│   │   │   ├── ccs
│   │   │   │   ├── example1_stb_f28004x_f32_coff.projectspec
│   │   │   │   ├── example1_stb_f28004x_f32_eabi.projectspec
│   │   │   │   ├── example1_stb_f28004x_f32_tmu_coff.projectspec
│   │   │   │   └── example1_stb_f28004x_f32_tmu_eabi.projectspec
│   │   │   ├── cmd
│   │   │   │   ├── f28004x_flash_lnk.cmd
│   │   │   │   └── f28004x_flash_lnk_eabi.cmd
│   │   │   ├── drivers
│   │   │   │   └── f28004x
│   │   │   │       ├── include
│   │   │   │       │   ├── device.h
│   │   │   │       │   ├── driverlib.h
│   │   │   │       │   ├── sfra_examples_hal.h
│   │   │   │       │   └── sfra_examples_settings.h
│   │   │   │       └── source
│   │   │   │           ├── device.c
│   │   │   │           └── sfra_examples_hal.c
│   │   │   └── example1_stb
│   │   │       ├── debug
│   │   │       │   └── setupdebugenv.js
│   │   │       ├── include
│   │   │       │   └── example1_stb.h
│   │   │       └── source
│   │   │           └── example1_stb.c
│   │   ├── gui
│   │   │   ├── Abt.Controls.SciChart.Wpf.dll
│   │   │   ├── CompDesigner.exe
│   │   │   ├── Comp.xml
│   │   │   ├── include
│   │   │   │   └── sfra_gui_scicomms_driverlib.h
│   │   │   ├── SFRAData.csv
│   │   │   ├── SFRA_GUI.exe
│   │   │   ├── SFRA_GUI_MC.exe
│   │   │   └── source
│   │   │       └── sfra_gui_scicomms_driverlib.c
│   │   ├── include
│   │   │   └── sfra_f32.h
│   │   ├── lib
│   │   │   ├── sfra_f32_coff.lib
│   │   │   ├── sfra_f32_eabi.lib
│   │   │   ├── sfra_f32_tmu_coff.lib
│   │   │   ├── sfra_f32_tmu_eabi.lib
│   │   │   └── sfra.lib
│   │   ├── release_notes.pdf
│   │   ├── scripts
│   │   │   ├── FRADataExtraction.m
│   │   │   ├── FRAData.xlsx
│   │   │   ├── SFRAData.csv
│   │   │   ├── STB_Data_Compare_with_model.m
│   │   │   └── STB_Run.xlsx
│   │   └── TILAW305447v1clickwrap.pdf
│   ├── transforms
│   │   ├── clarke
│   │   │   ├── include
│   │   │   │   └── clarke.h
│   │   │   └── source
│   │   │       └── clarke.c
│   │   ├── ipark
│   │   │   ├── include
│   │   │   │   └── ipark.h
│   │   │   └── source
│   │   │       └── ipark.c
│   │   ├── park
│   │   │   ├── include
│   │   │   │   └── park.h
│   │   │   └── source
│   │   │       └── park.c
│   │   └── svgen
│   │       ├── include
│   │       │   ├── svgen_current.h
│   │       │   └── svgen.h
│   │       └── source
│   │           ├── svgen.c
│   │           └── svgen_current.c
│   └── utilities
│       ├── angle_gen
│       │   ├── include
│       │   │   └── angle_gen.h
│       │   └── source
│       │       └── angle_gen.c
│       ├── cpu_time
│       │   ├── include
│       │   │   └── cpu_time.h
│       │   └── source
│       │       └── cpu_time.c
│       ├── datalog
│       │   ├── include
│       │   │   ├── datalog.h
│       │   │   └── dlog_4ch_f.h
│       │   └── source
│       │       ├── datalog.c
│       │       └── dlog_4ch_f.c
│       ├── diagnostic
│       │   ├── include
│       │   │   └── graph.h
│       │   └── source
│       │       └── graph.c
│       ├── math_blocks
│       │   └── include
│       │       ├── CLA_v1.0
│       │       │   ├── ACI_FE_CLA.h
│       │       │   ├── ACI_FE_CONST_CLA.h
│       │       │   ├── ACI_SE_CLA.h
│       │       │   ├── ACI_SE_CONST_CLA.h
│       │       │   ├── CLARKE_CLA.h
│       │       │   ├── iPARK_CLA.h
│       │       │   ├── PARK_CLA.h
│       │       │   ├── PI_CLA.h
│       │       │   ├── RAMP_CTL_CLA.h
│       │       │   ├── RAMP_GEN_CLA.h
│       │       │   ├── SMO_CONST_CLA.h
│       │       │   ├── SMOPOS_CLA.h
│       │       │   ├── SMOPOS_CONST_CLA.h
│       │       │   ├── SPEED_EST_CLA.h
│       │       │   ├── SVGEN_CLA.h
│       │       │   └── VOLT_CALC_CLA.h
│       │       └── math_blocks
│       │           ├── aci_fe_const.h
│       │           ├── aci_fe.h
│       │           ├── aci_se_const.h
│       │           ├── aci_se.h
│       │           ├── angle_math.h
│       │           ├── clarke.h
│       │           ├── com_trig.h
│       │           ├── cur_const.h
│       │           ├── cur_mod.h
│       │           ├── dmctype.h
│       │           ├── ~Docs
│       │           │   └── DMC MATH_v13.1.pdf
│       │           ├── impulse.h
│       │           ├── ipark.h
│       │           ├── mod6_cnt.h
│       │           ├── park.h
│       │           ├── pid_grando.h
│       │           ├── pid_reg3.h
│       │           ├── pi.h
│       │           ├── pi_reg4.h
│       │           ├── rampgen.h
│       │           ├── readme.txt
│       │           ├── resolver.h
│       │           ├── rmp2cntl.h
│       │           ├── rmp3cntl.h
│       │           ├── rmp_cntl.h
│       │           ├── sin_cos_table.h
│       │           ├── smopos_const.h
│       │           ├── smopos.h
│       │           ├── speed_est.h
│       │           ├── speed_fr.h
│       │           ├── speed_pr.h
│       │           ├── svgen_comm.h
│       │           ├── svgen_dpwm.h
│       │           ├── svgen.h
│       │           ├── svgen_mf.h
│       │           ├── vhzprof.h
│       │           └── volt_calc.h
│       ├── queue
│       │   ├── include
│       │   │   └── queue.h
│       │   └── source
│       │       └── queue.c
│       ├── traj
│       │   ├── include
│       │   │   └── traj.h
│       │   └── source
│       │       └── traj.c
│       └── types
│           └── include
│               └── types.h
├── ram.sh
├── README.md
├── src
│   ├── adc_.c
│   ├── adc_.h
│   ├── cbuffer.c
│   ├── cbuffer.h
│   ├── device.c
│   ├── eqep_.c
│   ├── eqep_.h
│   ├── events.c
│   ├── events.h
│   ├── everythings.c
│   ├── everythings.h
│   ├── F2837xD_CodeStartBranch.asm
│   ├── fcl_qep_f2837x_tmdxiddk.c
│   ├── leds.c
│   ├── leds.h
│   ├── main.c
│   ├── parser.c
│   ├── parser.h
│   ├── pwm.c
│   ├── pwm.h
│   ├── schedule.c
│   ├── schedule.h
│   ├── scia.c
│   ├── scia.h
│   ├── sm.c
│   ├── sm.h
│   ├── systick.c
│   ├── systick.h
│   ├── wdog.c
│   └── wdog.h
├── tags
├── targetConfigs
│   ├── readme.txt
│   └── TMS320F28379D.ccxml
├── types_c.taghl
├── user_files
│   ├── configs
│   │   └── f28379d.ccxml
│   ├── images
│   │   └── servo_pmsm.out -> ../../Debug/servo_pmsm.out
│   └── settings
│       └── generated.ufsettings
└── utils
    ├── cmdline.c
    ├── cmdline.h
    ├── makefile_ram2flash.sh
    ├── ustdlib.c
    └── ustdlib.h

202 directories, 651 files

Team

pslavkin neo doe
pslavkin
github.com/pslavkin github.com/pslavkin github.com/pslavkin

Support

Reach out to me at one of the following places!

License

License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published