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.

TM4C1294NCPDT: launchpad

Part Number: TM4C1294NCPDT
Other Parts Discussed in Thread: AFE4404

Hi Ralph,

After reviewing, I was able to know after following which sequence , i was not able to run tivaware 1294 usb examples along with ur  cdcserial example on windows7 PC.The sequence is as follows-

1.I run ur cdcserial example.It run sucessfully.

2.I modified the usb_struct.c file used in ur example as per my requirement & is attached for ur ref..usb_structs.c

3.Then, I build ur example code again.After build finish with no error,I clicked on debug button in ccs to program launchpad.

4.A message window opened up as attached

5.Then, w.o knowing much about reuse debug setting effect, I clicked ok with 1st option highlighted.

6.I came out of debug after programming the controller.The USB device is not getting detected.

7. then,I tried to run  tivaware usb examples w.o success.

Pl.let me know What must have gone wrong with after application of  " reuse debug setting" so that successfully running codes r not running.

Thanks & Regards,

Neelima

  • Hello Neelima,

    I am unable to compile based on the usb_structs.c file you attached as I am missing defines for these:

    USB_VID_TI_2047,
    USB_PID_EVM,

    Please provide them and I can try and compile and download on my end.
  • Hi Ralph,

    Here is missing define file which is to be replaced in usblib of TivaWare_C_Series-2.1.4.178 folder.

    usb-ids.h

    Thanks & Regards,

    Neelima

  • Hello Neelima,

    I am not quite sure what went wrong in your CCS workspace, as I am able to compile the cdcserial example with your updates, load it onto my TM4C LaunchPad, and I can see a USB Serial COM Port get partially enumerated (it needs the correct drivers to fully install, which is expected since the PID information has changed).

    It sounds like CCS is the problem here, so I would suggest the following:

    1) Delete both the usb_dev_cserial and usb_dev_cdcserial examples from your workspace (this means including the folders inside of the workspace directory
    2) Restart CCS so it may clear any remaining connections to those examples
    3) Re-import the usb_dev_cdcserial example from the .zip file to CCS and update it with your usb_structs.c file
    4) Try and do a Clean and then a Build to see if your build errors resolve

    If that doesn't work, I would then try using a new workspace and perform steps 3 & 4.
  • Hi Ralph,

    I tried to run ur cdcserial example with success after trying ur suggestion.Now,usb port is seen.

    I modified the usb_struct.c file used in ur example as per my requirement & changed
    Run from the PLL at 40 MHz instead of 120Mhz & build code w.o errors.Programmed launchpad with it.

    Now,usb port is seen as "Unknown device".So, if try to update its driver,it says driver software is upto date.

    I tried to search it on forum & found this-TM4C1294NCPDT: change system clock to 80Mhz and usb_cserial didn't work.
    e2e.ti.com/.../616791
    There ,u have given workaround as
    If you want to run the Sys Clock at 80MHz and USB Clock at 60MHz you would need to use the SysCtlClockFreqSet to set the primary clocks to 80MHz and then HWREG calls to directly set the USB clock to be VCO of 480MHz divided by 8 instead of being based off of the Sys Clock.
    Whether this solution will work for me for 40Mhz?
    If yes,can u give code or how to use HWREG calls for Register 220: USB Clock Configuration (USBCC) as I have not used it.

    Thanks & Regards,

    Neelima
  • Hello Neelima,

    Running the PLL at 40MHz for USB definitely will cause the issue you highlighted. Can you elaborate why you want to even drop the clock speed so much? Why can you not use 120MHz where the device works very reliably? Or alternatively, 60MHz would also work, could that be sufficient for your use case? I want to understand why you are dead set on 40MHz...

    Furthermore, I am not sure if you can run the Sys Clock at 40MHz and USB Clock at 60MHz, I don't believe such a setting has been done before. We don't recommend taking an approach like what you are trying to achieve.
  • Hello Ralph,

    I have told in earlier post that I am migrating working code for tiva123 of client to tiva1294 for larger memory requirements with latest Tivaware-2.1.4.178 library.

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/908/M4_5F00_USB_5F00_setting.PNG

    I am using sys clock of 40Mhz which sets vco=480Mhz & then usb clk =60Mhz with divisior =8 as shown above.

    It is as per Tm4c1294 datasheet & so valid.There is no such errata that I can not use this combination.

    Only in SPMU297E-tivaware usb user guide,3.2.2 USB Host Configurable Features,tells about default pll,cpu clk used for tiva1294 in usb api.

    So,I want to HWREG call to directly set the USB clock to be VCO of 480MHz divided by 8 instead of being based off of the Sys Clock..

    Pl.provide code or how to use HWREG calls for Register 220: USB Clock Configuration (USBCC) as I do not know how to use it.

    Thanks & Regards,

    Neelima

  • Hello Neelima,

    You still haven't explained WHY you need 40 MHz.

    Correct, there is no errata you can't, but I've never seen anyone try to do what you are doing and it makes zero sense to me. Please help me understand what you gain by limiting your clock speed when you are still using USB operation. What you are asking is to go against years of common practice for this application...

    I don't have any example code to share with you because this has never been done before, and until I understand very clearly what your need for this is, I am not going to create DRM code as that is counter to our forum guidelines (see sticky post, point 4) - now if you can prove why your use case mandates this need, then we can look into helping further, but as is, it's up to you to come up with the code you need to achieve your application.
  • Hi Ralph,

    We have brought afe4490 evm & after evalution of it & our need for more led channel requirement,we shifted to afe4404 & built our own pcb & interfaced it with tm4c123 launchpad successfully.For this ,we referred TI afe4404 evm code & gui.

    The code with tm4c123 launchpad which is working was interfaced to afe4404 evmGUI to just crosscheck SPo2 waveform for testing purpose only.The tm4c123 launchpad was interfaced to our own afe pcb.Now,We have shifted to tm4c1294 launchpad for more memory requirement.

    We have used 40Mhz clock for I2C(400KHZ fast mode) interfacing afe4404 whose I2C speed=400KHZ to Tiva1294 as per datasheet(page 1291)

    After reading led data from afe4404,we r sending it to PC GUI over USB as evm communication protocol.AFE4404 I2C interface requires some time delays which r adjusted for 40Mhz & working properly.

    I hope 40Mhz requirement/need is cleared.

    Thanks & Regards,
    Neelima

  • Hello Neelima,

    Have you tried using the higher 120MHz clock speed and configuring I2C properly for 400kHz operation? Does that break the operation?

    It sounds to me like it would be easier to do that and possibly adjust the delay timings than try operate the device in a manner that differs greatly from standard device operation. Especially as 120MHz will in general give you better processing power and speed so it only would benefit your application would it not?