Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by Lyon

  1. Hi, Normally, once the application is written, will remain there forever. But some users may have also some other needs, and may use the flash instead adding other external components. So, a couple of examples: a) if you need a bigger memory for EEPROM and also you need to guarantee a bigger number of write cycles, then you may use the flash instead EEPROM (this may be done by using several sectors and if one is full the data is moved to another one and the previous is erased) some companies use to write there a serial number and some other production data (passwords, etc). L
  2. Hi, ROM = holds the boot loader and Tiva libraries; can be read/execute (i.e. you may call functions from there) but cannot be moved/erased/written back. FLASH = where the application holds; cpu executes instructions read from flash. You may use it also to write there, erase, read. API functions provided in library. EEPROM = a small section electrical erasable, for storing constants/parameters for program. Has a bigger write cycle count than flash(500K vs. 100K). API functions provided in library. L
  3. Hi, I do not understand what you mean about this: on the pins that have other functions besides GPIO , do i need to turn the other fuctions off ? Can you be more explicit? There is a reset configuration - explained in GPIO chapter - please read again. ​Related to that, some precautions are needed when working with PortC, since this contains JTAG pins, so if you need to use that port, set/reset only the pins involved, not all - i.e. avoid writing to pins 0..3. Also, in this expression: GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_5, 0xFF); if you like to set up the pin 5, you can do it by s
  4. Hi, This expression is wrong: GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_0 , 2); Should be: GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_0 , 1); // powers of 2, 2^0=1, 0 is the bit number Some more problems: if you really use CCS, then the project should have some other settings also - seems you tried something similar with Energia - if this is the case, I suggest to see/import some examples found in Tiva, compile, run, debug before doing directly something new. The settings mentioned before are enabling the port peripherals A and B first before using them and also clock setting. Blinky is a good sta
  5. Hi, The "calendar mode" is a feature available only for TM4C129x microcontrollers. Does not exist on 123 series. It is an addition of several registers with bit fields allocated for year, months, day of the week, hours, minutes, seconds. On "old" Launchpad you will get hard fault, since calendar mode writes to non-existing registers (of coarse you need to initialize with some data before calling HibernateCalendarGet() ). However, the RTC counter mode is still available, can be used - and that implies of coarse the transformations with time structure, instead to be read at once. L
  6. Hi L.R.A, The bug refers only on "calendar" mode on 129 micro controller. TM4C123 does not need that, because the calendar register does not exist there, so you do not need to modify something. As for "file for the bug" - yes I did not filed it - the bug is described in hibRTC.ino file, at the beginning - I used your file and just made modifications/updates and checked it out. Regards, L
  7. HI, Your micro may be locked and you can unlock it with the use of UNIFLASH application, Linux version from this link: http://processors.wiki.ti.com/index.php/Category:CCS_UniFlash L
  8. hibRTC.ino.zip Hi, The libraries suggested are for tm4c1294 and should be used only with this micro controller. This is due to a special hardware (new), implemented in micro and which departs that one used in tm4C123. As noted, there is a bug in driverlib when you need to use the year and day of the week. The attached file highlight the place where the bug is and shows a correction:
  9. Hi, Reading your observations seems the internal EEPROM is not suitable for your application - in this case an external one is better. Also, your data (waypoints) could exceed the size of internal EEPROM - so this is the most important argument to not use it. But for other data, like calibartions or some other parameters, seldom modified, could be stored there. We use a variation of this, writing data into last pages of the flash, no problems ( production ~15K pcs/year). Reading the errata sheet is the best thing to do before anything else - and choose that product only if silicon bugs have
  10. HI, Yes, there is/are such things as you wish - see the file driverlib/eeprom.c and pick-up the functions needed. About problems - did not noticed but worth to check errata sheet. Problems were with LM4F series, seems to be gone now. One mention: all reads/writes must be in multiples of 4 bytes, so to maximize its use you must pack some data (depending on what you need to store) L
  11. Hi, If it has I2C interface (if I am not wrong) does your board has pull-up resistors for I2C pins? L
  12. Lyon


    Hi, PF0 is the NMI pin (also PD7) so you must to unlock it first before using it. See how to here: http://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/t/284566.aspx L
  13. Hi, Please specify your target toolchain: Keil or CCS or GCC - this is what you wrote, and got errors on what line(s)? L
  14. Hi, I just don't know so I just ask - did you noticed the change of system control clock function in TM4C129x micros? this gave a lot of pain to many users so my question. This should be left outside so the users can change/check. L NB: Looks like this: // // Run from the PLL at 120 MHz. // g_ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480), 120000000); and the return va
  15. hi, Don't rush to connect both Launchpad and battery circuit(s) just now - try to learn/play with launchpad until you make a pwm working and then you may connect the circuits with the battery. At the moment of connection use only a ground wire - leave the Launchpad powered from USB and the rest of the circuits from the battery. When all will be ready, you will need to make some circuits with Lmxxxx to power the whole as independent product. The Launchpad has two possible USB connection: one is for DEBUG, which has also a USB serial interface and may be used to send data to a PC and a seco
  16. Hi, Oh, I see it now - but anyway I was complaining about XLAToff value, which is wrong. And doing such shortcuts will stop the user to change several pins states in a single expression/time if on the same port. L
  17. Hi, Looking into your code, I am a little bit puzzled - do you use Tiva libraries or there are some (unknown to me) special functions - ref GPIOPinWrite - if this is from Tiva, then you should have three arguments - GPIOPinWrite(uint32_t ui32Port, uint8_t ui8Pins, uint8_t ui8Val) so your definition for XLATon and XLAToff are wrong being the same (should be as it is now for XLATon and 0 for XLAToff). If this is another function,which I don't know, then I apologize... L
  18. HI, I understand you - what I would do would to port some arduino libraries - here is what I got: http://code.google.com/p/tlc5940arduino/ but I did not checked it yet to see all the implications. L
  19. Hi, If you serch with Google for "TLC5940 arduino" you will find out several sources for libraries already made for this device. All you need to do is to write a small number of functions to adapt to specific TM4C peripherals. Also could be already ported for Energia by someone else. L
  20. Hi, There are several problems with your code - and I will take them one by one - lets start with the first one: char *stringrecv[4]; Please see this link: http://www.cplusplus.com/forum/beginner/30805/ where it is described a similar case with yours. Correct your code and come back for the next step. L
  21. Hi, @@jayfree - usually the sampling at very precise defined time should be performed - it is not needed to get 1Ms and then try to display them - you have no physical media to display and refresh that, either PC, either paper - so the signal is sampled at defined interval and for display it is reconstructed - there is a reconstruction theory behind that (sinc function is ideal, but not used, so linear interpolators can be used instead since the mathematics involved is simple, operating only on adjacent samples). If you take 1Ms, then anyway you must discard many samples (or select from this
  22. Hi, But take into account you do not need too many samples to take - depending on your viewport, 100 points (samples) may be enough. You cannot compress pixels/points - this is usual the limit of eye resolution (although you may protest to this assertion…) and while you transmit a buffer with 100 samples, another one is to be acquired, so some hardware/software parallel processing. Tektronix used (at the beginning of DSO era) to take such amount of samples and then to interpolate between points to give some extra resolution. This was until someone developed the 1Gs/s sampler and this is
  23. Hi, I realized you use .asm - but for general knowledge driverlib understanding does not hart - neither a second toolchain usage. About driverlib (and to be fair also about CMSIS library) - you may have help when someting goes wrong, another metod to test/verify a function or a concept. Also, all these functions reside inside on-chip ROM and are ready to be called from application. L
  24. Hi, Please be careful - the excerpt in blue is part of the function mentioned above - you do not need to repeat again. I was trying to suggest you to read the code in driverlib, to see it is easy to decipher and then use. Now, I suggest again to read the comments of that function in driverlib. I recognize the user manual is/has some problems, but the main descriptions are in the followings: -paragraph - Module clocking -paragraph - page 247 ADC Clock Control But I use what is written in driverlib - used in several other situations without problems. L
  25. Hi, ADC clock must be configured also (new in Tiva-129!) with the call: ADCClockConfigSet(ADC0_BASE, ADC_CLOCK_SRC_PIOSC | ADC_CLOCK_RATE_FULL, 1); And this one can be read (from driverlib/adc.c) as (neglecting first some assertions): // // Write the sample conversion rate. // HWREG(ui32Base + ADC_O_PC) = (ui32Config >> 4) & ADC_PC_SR_M; // // Write the clock select and divider. // HWREG(ui32Base + ADC_O_CC) = (ui32Config & ADC_CC_CS_M) | (((ui32ClockDiv - 1) << ADC_CC_CLKDIV_S)) ; As you can see, all
  • Create New...