Jump to content

froggy

Members
  • Content Count

    12
  • Joined

  • Last visited

  • Days Won

    2
  1. @@energia Did you forget to include it as an example in the last release? I don't currently have access to any TivaC hardware, so I can't personally verify that it still works in Energia. Also, I noticed that the "arch/lwiplib.h" doesn't seem to exist anymore, and is instead "architecture/lwiplib.h". Why the change? @@B@tto, Are you able to successfully ping the Tiva board?
  2. On the Energia pinout image of the Tiva C, it shows that PG0/PG1 and PN4/PN5 are both connected to the I2C module. Will the Wire library for the Tiva C connected send/receive I2C data on both sets of pins? Or are we supposed to somehow specify which pins we want I2C on? I'm having difficulty reading an MS5837 I2C depth sensor on module 1. I call the Wire.setModule(1) function before calling the Wire.begin(), and I have verified that pull-ups are in place. I was intending to use PG0/PG1 for this, but don't have anything connected to PN4/PN5. I have no issues reading the depth sensor with a bit-banged I2C master, but I would really prefer to use the I2C hardware to get faster read/writes.
  3. With my code base on a Tiva C connected, I'll occasionally have trouble pinging the board. I have a static IP set on the same subnet for my laptop and the Tiva C. The problem seems to be resolved by running a UDP example, pinging the board from the laptop, and then reloading my software. Though, I will note that this process doesn't seem to be rock-solid and can take a bit of fiddling to get it going at first. Is there any reason the ICMP ping responder could stop working or reasons for why it might be flaky like this occasionally?
  4. Are you doing any filtering on the sensor output? I'd suggest setting up an RC low pass filter to smooth out the jitter, and then maybe oversampling the data (read it 2-10x more often than needed) and applying a moving average on the data.
  5. If you need to measure a frequency in the 1-2 Megahertz (MHz) range, I suspect that a hardware counter will be absolutely necessary. From the TM4C1294, it looks like the timers do support edge counting. You might also be able to use the quadrature input to measure counts over time too.
  6. From the tm4c1294, I thought I remembered only seeing 8 PWM pins, yet the Energia picture (http://energia.nu/wordpress/wp-content/uploads/2014/06/LaunchPads-LM4F-TM4C-%E2%80%94-Pins-Maps-13-34.jpeg) shows quite a bit more than that. Can you really get PWM on every pin marked for PWM on the Energia diagram, or is it a case of all of the pins marked being PWM capable but only get PWM on 8 of them?
  7. For those interested, I also have a pretty cool (if I must say so myself...) Processing <-> "Arduino/Energia" library on GitHub: https://github.com/sopgenorth/MSOE_ROV_2015 . It communicates a set of variables to/from the two devices over UDP, and is pretty easy to use and get going.
  8. It is certainly possible to add this as a programming method to Energia. The behind the scenes stuff is pretty straightforward, send the "magic packet" (defined in the LM Flash help), start a BOOTP client, then send the compiled binary over TFTP. I'm working on setting up the Energia build environment right now to take a stab at it. Edit: It might be even easier than I thought if it's "kosher" to have the TI LM flash utility included in the Energia build. Energia could then just have some dialog option for adjusting your Ethernet settings (perhaps even auto-detect them), and a new "upload over ethernet" option that would make a system call to the flash utility.
  9. Thanks for the starting point there. The calls to Swupdate don't seem to be working since the LM Flash Utility still hangs on the "trying to connect". Starting the MAC/PHY with the "SoftwareUpdateInit()" function, my callback function is called as expected. I get the same behavior with the Energia UDP/Ethernet libraries where I can see the "magic update packet". I suspect that the issue is that I don't have the proper Ethernet Bootloader installed, but can't seem to find any information on how to install/build it. Any idea how I can install the Ethernet Bootloader/include it in my projects? Comment block from SoftwareUpdateBegin(): //***************************************************************************** // //! Passes control to the bootloader and initiates a remote software update //! over Ethernet. //! //! This function passes control to the bootloader and initiates an update of //! the main application firmware image via BOOTP across Ethernet. This //! function may only be used on parts supporting Ethernet and in cases where //! the Ethernet boot loader is in use alongside the main application image. //! It must not be called in interrupt context. //! //! Applications wishing to make use of this function must be built to //! operate with the bootloader. If this function is called on a system //! which does not include the bootloader, the results are unpredictable. //! //! \note It is not safe to call this function from within the callback //! provided on the initial call to SoftwareUpdateInit(). The application //! must use the callback to signal a pending update (assuming the update is to //! be permitted) to some other code running in a non-interrupt context. //! //! \return Never returns. EDIT: I got the Ethernet update to work by making a few modifications to the SwUpdate.c file. For whatever reason (I didn't really bother looking into this part...), the defines aren't set to use the ROM based Ethernet bootloader in the SoftwareUpdateBegin function, and the ROM Ethernet functions aren't defined in Energia 017's "rom.h" file. The latest version of TivaWare (TivaWare_C_Series-2.1.2.111) does provide the proper definitions for it. I simply added the necessary defines to call the ROM_UpdateEMAC and forced the code to use that, instead of the flash bootloader based update system. It also seems to be important that the MAC address set by the Ethernet library matches the MAC address programmed into user registers (by default this is what is on the sticker on the board). Anyways, I've attached a working Energia example with support for updates over Ethernet. EthSwupdate.zip
  10. The LM Flash utility provided by TI does support "flash over ethernet". From what I've seen on TI's forums, you need to make some calls to functions in the TivaWare "swupdate.h" to monitor for Ethernet flash commands. I've tried adding TivaWare stuff to the Energia build without much luck. I think my next step will be to move over to CSS 6, which naturally provides a better environment for calling Energia and TivaWare functions. If anyone has anything to add to this, let me know. If I get flashing over Ethernet to work, I'll update this post to document my steps.
  11. It would be really awesome for my project if I could update code over Ethernet, instead of USB for my Tiva C connected. I've tried the latest version of the LM Flash Utility (Build 1613) and cannot seem to connect to the Tiva C over Ethernet with the utility. I have a MAC and IP set on my board using the Energia Ethernet UDP library and can verify them with a ping and look at my laptop's ARP table, but I am unsure if this is enough to satisfy the needs of the LM Flash Utility. I was hoping that the functionality would be supported "behind the scenes" in Energia, but that does not seem to be the case. Is there a TI TivaWare/StarterWare function that can be easily called to gain this functionality? Has anyone here had any luck trying to program the Tiva C connected over Ethernet?
  12. I'm trying to read and write data from an OV6630 I2C camera module with my TIVA C connected series. After searching, reading manuals, and playing around with my code I'm unsure why it isn't working. Does anyone here have a suggestion as to why it might not be working? For reference, here's the code: http://pastebin.com/Jy1pAxwm I'm using TI's CCS 5.4 on a Windows 8.1 machine.
×
×
  • Create New...