Ich benutze das EV-LM3S811 Board von Luminary zusammen mit dem
mitgelieferten Keil Compiler. Für den Anfang will ich nur mal die LED
blinken lassen. Jedoch scheitere ich bereits daran, die LED
einzuschalten. Ich habe schon alles mögliche probiert. Vielleicht kann
mir jemand erklären wo mein Fehler liegt. Hier ist mein Code:
Wieso sollte die LED denn mit diesem Code blinken? Die Fkt. GPIOPinWrite
wird nur einmal aufgerufen und dann wird mit 20Mhz nichts mehr getan
oder hab ich nen Interrupt übersehen?
Marcus
Natürlich blinkt die LED nicht, sie soll ja erst einmal nur leuchten,
was sie aber nicht tut.
An so etwas Komplexes wie blinken wage ich mich dann, wenn ich sie zum
Leuchten gebracht habe. ;-)
Hier ist auch noch der versprochene Anhang ...
Hmm. man sollte das teil wohl doch eher zum "zocken" benutzen ;)
einige haben probleme mit dem oled, andere koennen nicht das
beispielprogramm einspielen.
ps: dies ging nicht gegen die nutzer, eher gegen das board
Guten Abend,
ich habe letzte Woche ebenfalls das Eval Kit erhalten. Allerdings habe
ich folgendes Problem:
wenn ich die Demo-Programme auf den Controller laden will, zeigt uVision
zwar an, dass die Übertragung erfolgt sei, allerdings wird nachher kein
Code auf dem Board ausgeführt.
Ich habe keine Ahnung wie ich dieses Problem lösen könnte, da ich noch
nie mit uVision gearbeitet habe und zur Zeit auch keinen JTAG-Debugger
zur Hand habe.
Kennt jemand das Problem und kann mir Hilfe leisten?
Vielen Dank
Benedikt Köppel
Zum Problem mit PC5, siehe errata:
2 GPIO
2.1 GPIO internal pull-up resistor does not pull up to 3.3 V
Description:
Resetting a Stellaris microcontroller causes configurable I/O signals,
with the exception of the
JTAG port, to be set to the default mode of a GPIO input with a weak
internal pull-up resistor. The
intent of this weak pull-up (~200k ohm) is to ensure that configurable
signals are quiescent during
the period between a reset operation and configuration of the
microcontroller by the user. In
current Stellaris devices, these pull-up resistors are set too high (~2M
ohm) and do not guarantee
that the inputs will be biased to a logic '1' as intended. As a result,
it is possible that a non-driven
input pin could float to a mid-level voltage between a logic 0 and 1.
This may produce unintended
switching of the input resulting in excessive current draw.
Workaround:
An external pull-up resistor should be used if the system design
requires that a GPIO input be
biased to a logical '1' after a reset. If a pin is unused or there is no
requirement for the pin to be a
High after reset, software may enable the internal pull-down resistors
to prevent excess current
draw on the pad. Note that the internal bias resistors are not intended
to replace external resistors
for open-drain type applications.
Affected:
C0
2.2 PB6, PC5, and PC6 are not 5-V tolerant
Description:
The pins associated with GPIO signals PB6, PC5, and PC6 are not 5-V
tolerant. Applying a
voltage to any of these pins that is greater than VDD (3.3 V) will have
undetermined results.
Workaround:
No workaround is available.
Affected:
C0
Sollte also nicht schalten können.
Mfg Sascha
Ich habe den Fehler gefunden. Aus irgendeinem Grund habe ich angenommen,
daß GPIOPinWrite einen Bitwert als Parameter bekommt, es muß aber ein
char-Wert sein. Mit PA0 hat das dann zufälligerweise funktioniert, weil
PA0 eben das nullte Bit ist ... argh!
Übrigens funktioniert das ganz komisch: damit jeder Portpin einzeln
angesprochen werden kann belegt das GPIODATA Register für jeden Port 256
Adressen. Der Offset wird dann als Bitmaske benutzt um die zu
modifizierenden Bits auszuwählen.
Hier der funktionierende Code:
Benedikt K.: das Programm wird ausgeführt, sobald man die Resettaste auf
dem Board drückt. JTAG ist auf dem Board integriert, um den Debugger zu
starten schau mal im Menü "Debug" nach. ;-)
Sascha: das mit den Errata hat mich auch stutzig gemacht, aber ich
dachte mir, wenn die LED im Demoprogramm funktioniert dann muß das doch
gehen ...
Theoretisch müsste ich ja so im Hyperterminal eine Ausgabe erhalten. Ich
habe das Programm kompiliert ("Project"-"Rebuild all target files") und
dann auf den Chip geladen ("Flash"-"Download"). Das hat geklappt.
Anschliessend Hyperterminal gestartet, Verbindung aufgebaut, Resetknopf
gedrückt am Eval Kit. Aber es kommt nichts.
Eine Ausgabe auf den Bildschirm gelingt ebenfalls nicht (mit dem
Demo-Programm hello versucht).
Woran könnte es noch liegen?
Wenn ich auf "Debug"-"Start/Stop Debug Session" gehe, erhalte ich den
Fehler:
"MISSING DEVICE (R003: SECURITY KEY NOT FOUND)
Running in Eval Mode"
Anschliessend startet die Debug-Umgebung aber auch so passiert nichts
auf dem Controller (oder ich merke es nicht :D). Mein eigenes Programm
(s.o.) gibt keine Ausgabe auf den UART0 und das hello-Demo-Programm gibt
keine Ausgabe auf den OLED.
Freundliche Grüsse
Benedikt Köppel
Lies dir mal den "Stellaris Driver Library User's Guide" durch.
Zum Debugger: setze zuerst mit F9 einen Breakpoint in deinem Programm,
z.B. in der ersten Zeile von main(). Dann drückst du (im Debugger) Reset
und anschließend Run. Dann kannst Du mit Einzelschritten weitermachen
(Step).
Hallo
Marko B. Vielen Dank für den korrigierten Code. Das funktioniert so
wirklich.
Die Demo-App "hello" geht aber immernoch nicht. Ich glaube nicht dass
das Display defekt ist, aber kann es auch nicht überprüfen. Jedenfalls
hat es ganz zu Beginn mit dem Spiel das schon auf dem Chip war sehr gut
funktioniert.
Wo könnte der Fehler noch liegen?
Freundliche Grüsse
Benedikt Köppel
Wenn das "hello" Demo nichts anzeigt dann liegt das mit ziemlicher
Sicherheit am Display. Mein Display hatte auch dauernd Aussetzer bis ich
die Kontakte nachgelötet habe. Entweder hat es nach dem Reset nichts
angezeigt oder es fror später im Betrieb ein. Flashe doch nochmal das
Spiel und teste es ein paar Minuten lang.
Hallo Marko B.
woher kriege ich denn das Spiel nochmals? Es ist ja nirgends als
Demo-App auf der CD, oder habe ich das übersehen?
Freundliche Grüsse
Benedikt Köppel
Hallo,
das Spiel geht einwandfrei. Nachdem ich das Spiel draufgeladen habe und
dann den Flash mit "Erase" gelöscht habe, kann ich jetzt auch die
anderen Demo-Apps drauf tun.
Soweit klappts :D
Vielen Dank
Benedikt Köppel