I recently started to use LM3S6965 on a production board.
I was not thrilled by the quality. My questions to TI:
1. The LM3S6965, a part introduced in 2008, still has a serious malfunction on the GPIO (Errata "GPIO input pin latches in the Low state") and it also glitches during power-up. Does TI have any plan to ever fix this?
2. TI ships library code for the Stellaris, including a documented Soft-I2C example. Because of the GPIO latching issue, the Soft-I2C code does not work on the LM3S6965. Does TI have any plan to maybe update the library code so that it actually works on the silicon shipped? Or at least document it? After how many years shipping the product?
3. About the Soft-I2C... "the timer tick function can simply be called in a loop until the entire I2C transaction has completed" is not correct, the code line// Wait until the software I2C is idle. while(SoftI2CBusy(&g_sI2C))is also not correct, beause when called the state machine is STILL idle. States progress based on the timer IRQ, including the initial state transition.This is from official, documented TI library / example code, and it does not work because of bugs in the code and bugs in the silicon. Does TI have any formal process where the example codes shipped are actually tested?
4. Before choosing the LM3S6965, my initial choice was a LM3S9B90 for its EBI: However... the Flash is buggy, limited to 100 Flash write cycles & there is danger of Flash contents corruption. Are there any plans to fix these Flash issues?
Overall i question whether TI is serious about its Stellaris business: Examples that don't work, old chips that have serious bugs that do not get fixed, new chips with bugs that render them near unusable make me very suspicious about using these parts ever again in the future. And if as a customer I end up debugging documented library code then you did not do your work.
I totally agree with you. We are using LM3S9B92 in our last projects and there are lots of bugs in B1 rev. One of the most important thing is that the power-up problem. You are designing a 1 million dolar custom design power electronic converter and you are energizing it, however stellaris won't start. Can you imagine the problems that we may face.
We just order the new revision(rev C) , the distributor said us that we can only supply the samples of rev C. They said " if you order new board, we can not guarantee that you get the rev C". So we get the samples, but the CCS is chip locked so we never debug it using CCS. We just use the LM flash programmer to load it and never debug.
Only thing I can say is that I disappointed. We get the stellaris for Ethernet communication but I just regret doing that.
Andreas,
Regarding soft-i2C:
Andreas Grawehr3. About the Soft-I2C... "the timer tick function can simply be called in a loop until the entire I2C transaction has completed" is not correct, the code line// Wait until the software I2C is idle.
I believe that this is correct. Can you explain more why it is not correct. Based on the item below, I believe that the following would work fine:
do
{
SoftI2CTimerTick(&g_sI2C);
}
while(SoftI2CBusy(&g_sI2C));
Andreas Grawehrwhile(SoftI2CBusy(&g_sI2C)) is also not correct, beause when called the state machine is STILL idle.
This is definitely a bug - thanks for bringing this to our attention.
Jonathan Guy
the first part is not correct because you can not "simply" call the timer tick function, it works only under exactly the code you give.