Jump to content
43oh

DrOldies

Members
  • Content Count

    17
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by DrOldies

  1. I have found the Energia pin map pdf's are difficult to match with the (several) pin numbering systems so I created an Excel spreadsheet to combine all of these. It's in a spreadsheet so you can sort on any column. This makes it much easier to find the pins and their functions. The pin functional groups are color coded. Two sample images of the tables are included, one based on the Boosterpack pins (booster_pack), and the second on the breadboard pins (breadboard). Numbering lists include physical pins X6-X9, boosterpack pins A1- D2, GPIO pins PA-PQ, and digital pin-to-port numbers 1-95
  2. (I started this [Energia Library] topic and copied my spiE library over to make it easier to find) I wanted to improve the compatibility of the SPI.h lm4f library to include functions of arduino user contributed SPI.h libraries. I found SPI2.h here: http://forum.stellar...two-spi-modules. This library added multi-module features but removed the 123 & 1294 compatibility. I have merged SPI2 and the core SPI libs into spiE.h and added several more function variations. spiE.h best features are: 1. Array transfer up to 255 bytes. This is 5x faster than single byte transfer. 2. SPI2's
  3. SOLVED! Using your advice I looked for an alternative to SSI_DMARX/TX. SSI_TXEOT (transfer buffer empty) gives the program control for updating the send array if used in SSI_Init., and the interrupt function. I also found that the interrupt frequency can also be set during initialization. void SSI_Init(uint32_t _freqHz_){ ROM_SSIIntEnable(SSI0_BASE, SSI_TXEOT); ROM_SSIConfigSetExpClk(SSI0_BASE, F_CPU, SSI_FRF_MOTO_MODE_0, SSI_MODE_MASTER, _freqHz_, 8); } void SSI0IntHandler(void) if (ui32Status == SSI_TXEOT) { //update send array } } Here is the
  4. I obviously don't know what SysTick is supposed to do. Reviewing other code (very few examples are available) I gathered that it is a counter and when the SysTick value is reached it trips a DMA service interrupt. For the Arduino I would use a Timer interrupt. SysTick seems like a more efficient way to do this. Using SSI_DMARX/TX the interrupt occurs as soon as the array being transferred has been sent - the program has no control over the timing - so its not clear when I update that array. In my code these 3 line of code do nothing (I commented them out during testing). ROM_SysTickPeriodSet
  5. Sorry I was not clear in my last post. I'm learning that I cannot easily copy code from another MCU's program. The interrupt now works. It appears that the interrupt is based on the DMA Transmit completing (SSI_DMATX). The SysTickPeriod Set(period) has no effect and I can even comment out the 3 lines below in my CongifureuDMA() routine. What would I need to change to have the SysTick period control the interrupt timing? ROM_SysTickPeriodSet(100); ROM_SysTickIntEnable(); ROM_SysTickEnable(); BTW: The SSIIntEnable values are from ..\cores\lmf4\driverlib\ssi.h. They seemed l
  6. These maps are very useful but rather blurry. Can you make them available in a higher res format and downloadable like pdf? Thanks
  7. I registered the IntHandler and stripped out all the unnecessary calls as you suggested. I added LED toggles to the interrupt handler and the .ino sketch. It is functioning properly now, toweling 2 LEDs for each. However, ROM_SysTickPeriodSet(Period) seem to change the interrupt timing interval. I think that the uDMA may be triggering the interrupt every time the data send is completed (regardless of the tick period), but I can't see what I might have set incorrectly. I would like to be able to set the frequency from a few hertz to over 1 Mhz from the sketch. Here is the .cpp with the
  8. TM4C1294 PINOUT TABLE attachedTM4C1294 Board Pinouts.pdf I find the charts posted on Energia blurry and hard to read. I extracted the pinout table from one of the manuals and highlighted a few of the pin groupings (SSI, I2C, etc). Its much easier to read and its searchable.
  9. I am confused about the compatibility of BoosterPacks. According to the TM4C123 pub spmu296.pdf: * The TM4C123 is compatible with the "TIVA C Series LaunchPad BoosterPack XL" * The outer column of pins are also compatible with MSP430 "LaunchPad-Compatible BoosterPacks" In the TM4C129 pub spmu365a.pdf it describes the first and second BoosterPack XL. "‘A’ and ‘D’ make up the outer BoosterPack standard pins, ‘B’ and ‘C’ make up the inner BoosterPack XL standard pins." On examining the pinouts between the 123 and 1294 for these 2x10 pins, none of the pin functions match. How do I ident
  10. This is a boosterpack/shield that is needed. Could you post back on this thread when you want to share the design or have the boards ready? That way I can get notified by following this tread. So many times good ideas like this are mentioned and then I never hear about them again.
  11. Good suggestions. I tried both and added print statements to the 3 error handlers included from the previous code: 1. The LED statement in SSI0IntHandler does NOT turn with ROM_IntEnable(INT_SSI0); enabled. 2. The code returns to main when IntEnabled is commented out. ( As expected, without the Interrupt enabled, nothing else happens) 3. None of the error traps below report an error. static void NmiSR(void) Serial.println ("processor received a NMI");//debug static void FaultISR(void) Serial.println ("received a fault interrupt");//debug static void IntDefaultHandler(
  12. I am trying to take the code from here: http://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/t/367620.aspx and convert it to a Arduino/Energia library. The setup and initialization gets through the SSI configuration, and the uDMA configuration. However, at the last step to enable the interrupt it does not return from this call: // Enable the SSI0 peripheral interrupts. ROM_IntEnable(INT_SSI0); The original code was very well documented, but I'm including a version of my code with the comments removed for easier reading. There are so many steps to get SSI, DMA, and INT
  13. I assume you mean as an additional library such as spiE.h, and not as an update to the core SPI.h? After its tested you are welcome to add it as SPI.h since 90% of the code is from it.
  14. I wanted to improve the compatibility of the SPI.h lm4f library to include functions of arduino user contributed SPI.h libraries. I found SPI2.h here: http://forum.stellarisiti.com/topic/620-two-spi-modules. This library added multi-module features but removed the 123 & 1294 compatibility. I have merged SPI2 and the core SPI libs into spiE.h and added several more function variations. spiE.h best features are: 1. Array transfer up to 255 bytes. This is 5x faster than single byte transfer. 2. SPI2's pinMode() and digitalWrire() functions are replaced with faster macros. 3. Suppor
  15. Looking thru the lm4f library's SPI.h it appears that while I can instantiate 3 SPI objects (SSI1, SSI2, and SSI3), on 3 sets of pins, I cannot use any slaveSelect pin other than the default slaveSelect pin. I would like to control 2 devices by using the default SS pin and a second SS2 pin. Some other boards' SPI libraries leave the SS pin control to the user, making this simple. Any suggestions?
  16. I developed working code for TIMER0 interrupt on my TM4C129. But I would like to also get the current period. I assumed TimerLoadGet would return this but I get zero. I've tried all three of these functions with ROM_ and without. The peripherals manual doesn't help with info like "Returns the load value for the timer" returns 0 for uint32_t TimerLoadGet(TIMER0_BASE, TIMER_TIMA_TIMEOUT) returns 0 for uint32_t TimerValueGet(TIMER0_BASE, TIMER_TIMA_TIMEOUT) returns 65535 for uint32_t ROM_TimerMatchGet(TIMER0_BASE, TIMER_TIMA_TIMEOUT) Can anyone direct m
  17. I just recently jumped in with a TM4C129. It would also help if people included which board they are working with in their posting title. I have had to read through many posts to find that it's about the LM4 which appears to have more users. From what I gather from the docs even the 123 and 129 have significant differences. I agree the naming conventions add to the confusion.
×
×
  • Create New...