Forum: Mikrocontroller und Digitale Elektronik AVR Control Experimentierplatine


von Volker (Gast)


Lesenswert?

Hallo,

hat jemand erfahrung mit der Experimentierplatine AVR Ctrl. ?

Ich muß eine in Betrieb nehmen und scheitere an simplen Dingen.

1. Das Display 16x2 zeigt nur in der ersten Zeile dunkle Blöcke. Die
zweite Zeile ist blank. (Spannung liegt an und an den Pin2,4,5 und 12
des Displays liegen 4,9V an. Alle anderen 0V.

2.) Mit dem Programmierkabel (parallel) kann ich Daten einlesen. Sehe
leider ohne Display nicht, was er macht und wie man das Programm
startet. Gibt es ein Terminalprogramm, wo ich die Abläufe verfolgen
kann?

3.) Habe AVR-Studio4 , Bascom und Ponyprog runtergeladen. Leider
bekomme ich darüber keinen Kontakt zum AT90S8535. Welches Programm kann
den Parallelport unter W2000 ansprechen? Oder sollte ich es lieber mit
der seriellen Schnittstelle versuchen.

Hoffentlich nimmt sich jemand dieser Anfängerprobleme an.

Volker

von Malte Marwedel (Gast)


Lesenswert?

Hast du einen Link zur Platine?
Meistens werden die AVRs über den LPT Port programmiert, der RS232 Port
dient oft zu Datenaustausch mit dem bereits laufendem Programm.
Schwarze Balken auf LCDs bedeutet meist falsch initialisiert oder
einfach das Timing nicht eingehalten (zu schnell initialisiert).

von Divison (Gast)


Lesenswert?

Also ich hab da einiges zum laufen drauf gebracht. Du kannst Ponyprog
benutzen, das funktioniert bei mir ganz gut.

Wenn du dein Programm kompiliert hast, dann musst du es mit Ponnyprog
in den AVR schreiben. Dann läuft es. Starten brauchst du da nix. Und
vergiss erstmal das Display. Schwarzer balken ist schon mal nicht
schlecht, nur musst du ihm auch Daten schicken u.s.w. Das kannste ja
alle später noch üben. Als erstes ist es schonmal gut wenn du die LED´s
da oben rechts zum leuchten, blinken oder laufen bekommst. Da gibt es
VIELE Demoprogramme für. Ach ja, du solltest dir vieleicht überlegen
das ganze in C zu programmieren. Da kannst du dann wohl am besten
wählen zwischen Win-AVR oder CodevisionAVR. Ich benutze Win-AVR. Da
kann ich machen was ich will, und bin nicht auf diese Gui von
Codevision eingeschrängt. Aber das muss jeder für sich selber
ausprobieren. Was hast du denn da für einen ISP-Adapter? Das Kabel zum
Programmieren meine ich, was bei dir an der Paralellen Schnittstelle
steckt.

Wenn du das dann alles hast. Platine funktioniert, und die LED´s
leuchten wie du dir das gedacht hast, dann kannst hier im Forum mal mit
der Auche nach Display ansteuern loslegen. Da findet sich viel, und
schon viel fertiges für den Win-AVR. Z.B von Peter Fleury, der hat da
eine echt klasse Library für. Die läuft auch auf der AVR-CTRL.
Zumindest bei mir. Also solltest du das auch hinbekommen.

Liebe Grüsse und hoffe etwas geholfen zu haben.

Division

Ach ja, wenn du nicht so recht weiter kommst, dann immer fragen. ABER
mit GENAUER Beschreibung!!!!!!!! Was geht nicht? Was hast du gemacht?
Welche Sprache? Welcher Controller... usw.

Mit Beiträgen wie:" Meine Display geht nicht, weiss einer warum" ist
immer keinem geholfen.

Gute nacht!

von Volker (Gast)


Lesenswert?

Danke Malte und Jan,

hier der Link für die Platine

http://mikrocontroller.cco-ev.de/de/avr-ctrl.htm

Das ist die Platine von mikrocontroller.com. War leicht aufzubauen.

Da das Display nicht richtig funktionierte, habe ich aus dem
Downloadbereich dieser Seite das Programm LED-Lauflicht geladen. Damit
sollten die 8 auf dem Board befindlichen LED`s eine Art Lauflicht
erzeugen. Mit dem Programm isp_avr, was auch von dieser Seite stammt,
konnte ich es Problemlos über LPT1 einspielen. Die LED`s blinkten aber
nur während der Datenübertragung. Lauflicht ging nicht.

Auf dr Seite ist für den einfachen Einstieg beschrieben, das Bascom,
AVR-Studio oder Ponnyprog nutzbar sind. Alle Programme habe ich
getestet. Mein Problem ist die Einstellung der Programme auf den ISP
Adapter für das Board. Auch für die RS232 Schnittstelle kam noch keine
Kommunikation mit Hilfe dieser Programme zustande. Bin mir sicher, dass
es nur eine simple Einstellung sein kann, die mir noch fehlt.

Wollte Bascom nur nehmen, um erst mal schnell einen Erfolg zu haben.
Später will ich es mit C versuchen.

Euer Anfänger Volker

von Malte Marwedel (Gast)


Lesenswert?

Da das Programm sich ja offensichtlich einspielen lässt, müste es
loslaufen sobald der LPT Port nicht mehr den Controller resettet (Low
Pegel: Controller wird zurückgesetzt/programmiert, High: Das Programm
müsste laufen). Über RS232 kommuniziert der AVR nur, wenn du ihn so
Programmiert hast. Bei einem Lauflicht Beispiel dürfte der AVR die
Serielle Schnittstelle schlicht ignorieren.

von Volker (Gast)


Lesenswert?

Hi Malte,

habe die PINs beobachtet.
Reset ist nur während der Programmierung low. Danach high. Also sollte
das Programm loslaufen, was es aber nicht tut.

Ich habe bei der Programmierung aber eine Warnmeldung erhalten.
Warning: more than 8192 Bytes
Adress: 04cd Write: 95 Read: 95 Volume: 240% of Eprom  100% of
File(1230 Byte)

Wenn ich das Demoprogramm für die Tastenabfrage (290 Byte) einspiele,
kommt die Warnmeldung (8192 Byte) nicht mehr.

Die Meldung 240% of Eprom verstehe ich nicht ganz, wenn das File nur
1230 Byte hat.

Gibt es auch ein Programm, mit dem ich den LPT1 Port unter W2000
ansprechen kann? (Porttalk hat nicht funktioniert.) z.Z. spiele ich die
.BIN Dateien unter Dos mit isp_avr von der mikrocontroller.com Seite
ein.

von Divison (Gast)


Lesenswert?

hört sich ganz so an als wenn du einen Falschen chip ausgefwählt hast in
deinem schreibprogramm.

Aber ich lasse mich nacher nochmal zu deiner email aus, muss aber jetzt
gerade erstmal weg!

von Volker (Gast)


Lesenswert?

Hallo Ihr zwei Helfer,

jetzt mal eine Erfogsnachricht.

Aus Verzweiflung habe ich mich nochmal mit dem Script für Ponnyprog
beschäftigt. (Steht auf mikrocontroller.com)

#SELECTDEVICE "AVR Auto"
SELECTDEVICE at90s8535
LOAD-Prog main.hex

# write withaot Verify
WRITE-ALL
# Write with verify
# WRITE&VERIFY-ALL

Damit habe ich wierder einen Kommunikationsversuch gemacht. Sccript
geladen und wollte dann Programm auslesen. Dabei kam eine
Fehlermeldung, dass es ein unbekanntes Device ist, obwohl ich den
At90s8535 eingestellt habe.
Nachdem ich das Programmierkabel abgezogen hatte, lief auf einmal das
Programm los und auch das Display funktioniert jetzt.
Verwunderlich ist nur, warum es vorher nicht lief, obwohl alle Pins
außer Reset auch low waren.

z.Z. nehme ich isp_avr zum Einlesen der Daten in den Atmel. Danach
aktiviere ich das Programm auf unerklärliche Weise mit Ponnyprog.

Das wäre mal ein Hinweis an mikrocontroller.com, die ja für Anfänger
Platinen bauen. Da kann es an den simpelsten Dingen scheitern.

von Divison (Gast)


Lesenswert?

Das Problem hab ich nich. Bei meiner funktioniert das allses so wie es
soll, auch mit dem Stecker dran lassen. Haste vieleicht nen Widerstand
vergessen auf der Platine?

von Volker (Gast)


Lesenswert?

Hi Jan,

habe jetzt alle Programme mit isp_avr zum laufen gebracht. Das kuriose
ist aber, dass ich das Programm erst lade mit
isp_avr /lpt1 /data out.bin und es funktioniert nicht.
Danach mache ich isp_avr /lpt1 /erase out.bin und das Programm startet
sofort.

Muß ich den Speicher auch mal löschen? habe nämlich nach jedem mal
erase ein vorher geladenes Programm zum laufen gebracht.

Bei Ponnyprog habe ich es mit der Einstellung für das Interface DT006
I/O versucht. Obwohl die LED´s beim laden blinken (aber nur2) kommt die
Fehlermeldung unknown device.

Was sind Fuse und Lock bits? muß ich da auch noch was verändern?

von Malte Marwedel (Gast)


Lesenswert?

Mit den Lock Bits kannst du verhindern, dass der AVR neu Programmiert
werden kann oder das bereits programmierte Programm wieder ausgelesen
werden kann. (Beides dürfte für Privatnutzer uninterressant sein, also
besser nichts ändern).
Mit den Fusebits kann mann weitere Parameter einstelle, z.B. Reset
deaktivieren (ACHTUNG, dann lässt sich der Chip nur noch mit einem
teuerm Programmer wieder programmieren, ist bei deinem Chip speziell
aber nicht möglich) oder Bootloader Aktivieren, zwischen
internem/externem Quarz wählen. Genaues steht mit Datenblatt des
Controllers.

von Volker (Gast)


Lesenswert?

Danke!

Da werde ich nichts verändern. Ich bin aber immer noch auf der Suche
nach einer komfortablen Lösung. Da Bascom und Ponnyprog nicht mit dem
Board arbeiten, habe ich mir Win AVR geladen. Jetzt kann mir
hoffentlich jemand sagen, wie ich Win AVR einstellen muß, um über LPT1
zu programmieren. Oder wenigstens über RS232 Daten zu lesen.

Freue mich über jeden kleinen Schritt, der mir es endlich ermöglicht
ein Programm zu schreiben und einfach in den Controller zu laden.
Mössen alle Dateien , die ich in den Controller lade .bin sein?

von Malte Marwedel (Gast)


Lesenswert?

Um das Programm in den Controller zu laden kannst du (bei deinem
Controller/Board) prinziepiell nur den LPT Port verwenden.
Wenn du den RS232 Port benutzen möchtest, der ermöglicht dir den
Datentransport zwischen PC und AVR oder zwischen AVR und einem zweiten
AVR. Dazu solltest du aber don Controller schon ein wenig kennen.
Prinziepiell musst du für RS232 drei Register setzen.
UDR, um ein einzelnes Datenbyte zu senden/empfangen.
UCR, um RS232 übehaupt zu aktivieren
UBRR, um die Geschwindigkeit zu wählen.
Wie du genau die Register setzten musst, steht in dem Datenblatt des
AT90S8535, das solltest du dir auf jedenfall (wenn nicht schon getan)
mal downloaden und ansehen  (gibts kostenlos auf der Atmel Webseite,
nicht die summary, sonder die komplette Version laden).

Die Pinbelegung des LPT Ports kenn ich nicht, leider gibt es da
mehrere, so dass ich nicht weiß welcher Programmer mit der Belegung
funktioniert (ist die dritte Belegungsmöglichkeit die ich sehe).

von Volker (Gast)


Lesenswert?

Hallo Ihr Helfer,

habe es jetzt endlich mit Ponnyprog geschafft. Mein Kabel war für
isp_avr geeignet und bei Ponnyprog ist die Pinbelegung anders. Da muß
ich dem Entwickler der Platine einen Vorwurf machen. Ein Hinweis für
Anfänger zu Betriebssystem und funktionsfähigen Programmen hätte mir
mindestens 8 Stunden probieren erspart. Jetzt muß ich nur noch die
Hürde überwinden, wie ich mit Win AVR oder AVR Studio 4.0 ein
C-Programm als .hex File compilieren kann. Dann kann ich hoffentlich
langsam mitreden und endlich ein eigenes Programm testen.

Also Danke für die 1. Hilfe!

von Holger B. (Gast)


Lesenswert?

Hallo Volker,

Du hast das Program in den EEPROM-Speicher geladen, weil Du
isp_hb mit dem Parameter /data gestartest hast.
Wenn Du das weg lässt, landet das Programm im Flash
/erase benötigst Du immer.

Auf dem Schaltplan zur AVR_ctrl ist das Interface zu ISP_AVR
beschrieben, das läuft ja bei Dir auch.
Auf der Mikrocontroller.com-HP findest Du aber auch, wie man Ponyprog
damit zum laufen bekommt.

CVAVR schon mal getestet?

Gruss,
Holger

von Volker (Gast)


Lesenswert?

Hallo Holger,

zuerst mal einen Hinweis: Die Platine funktioniert super, wenn  erstmal
die Kommunikationshürde zum PC überwunden ist.
Das mit isp_avr hat ja funktioniert. War eben "nur" in Dos möglich.
Wo ich da was hingeladen habe, stand nicht in der Beschreibung oder
wurde übersehen. Mit erase habe ich die Programme wieder gelöscht.
Kurios war nur, das dann das vorhergehende Programm wieder zum laufen
kam. (Flash/Eprom startet das Programm aus dem Flash und auch aus dem
Eprom?)
Mit Ponnyprog ist jetzt alles o.k. (Kabel ist anders als bei ISP_avr.)
Da wird es mal Zeit, dass sich alle an die Belegung vom Atmel-Kabel
halten und somit der Kabelsalat nicht mehr notwendig ist. Ein einfacher
aber evtl. sinnvoller Standard.

Ein Hinweis für alle Anfänger muß bei jeder Platine vorhanden sein, die
nicht "Standardware" ist. z.B Mit welchem Betriebsystem die Programme
funktionieren und die typischen Startprobleme (die ein Profi sich schon
gar nicht mehr vorstellen kann). Einfaches Demo mit Compiler für Bascom
und C. Und auch für Assembler ein Demo. (Mit Einstellungsbeispiel für
Editor und Compiler)Damit kann ein Anfänger schnell starten und sich in
die Materie vertiefen. Ich war fast so weit, wieder vollkommen auf Dos
umzusteigen.

Denkst Du, dass ich mit dem At90S535 und dem Board eine Schaltung mit
Funkuhr, Analogeingang, TTL Ausgang, und dazu eine Tastenabfrage zur
Veränderung von 8 Variablen, die im Programm vordefiniert sind
realisieren kann? Die 5 Tasten sollen als hoch, runter, rechts,links
und enter/Menü definiert werden. Oder ist das Board zumindest erst mal
die Grundlage für mein Vorhaben und der MC muß nur getauscht werden.

Viele Grüße

Volker

von Malte Marwedel (Gast)


Lesenswert?

Deine geplante Uhr dürfte mit den genannten Funktionen sicherlich in
einen AT90S8535 passen. Nur werden dir wahrscheinlich danach noch eine
ganze Reihe nützlicher Zusatzfeatures einfallen und dann könnte es
langsam knapp werden.
Heißer Tip mach nicht den Fehler (wie ich) und packe die Texte fürs LCD
in den RAM - der füllt sich sonst in Null Komma Nichts - sondern lass
sie im Flash.
Stichwort: PROGMEM

von Holger B. (Gast)


Lesenswert?

Hallo Volker,

zufällig habe ich gerade ein Funkuhr-Programm für die AVR-Ctrl fertig.
Vielleicht füge ich eine Tastaturoutine und eine Analogeingabe mit ein.
Die findest Du dann auf unserer Homepage. Wenn ich Deine eMail-Adr
hätte, könnte ich das DCF77-Progamm schon schicken

Die Funkuhr soll noch in meine Heizungssteuerung  rein

Gruss,
Holger

von Divison (Gast)


Lesenswert?

Hallo Holger,

würdest du mir eventuell den Code für die Funkuhr überlassen?

Ist der in C?

Würde mich freuen, wenn du mir den mal mailen würdest.

Liebe Grüsse

Division

von Volker (Gast)


Lesenswert?

Hallo,

@ Malte
Danke für den Tip mit dem Flash. Werde bald die ersten Versuche
starten.
Mit Progmem komme ich nicht ganz weiter. War wahrscheinlich mein erster
Fehler mit ISP_avr und /data Zusatz. Holger hatte mich darauf
hingewiesen.

@ Holger
Meine Mail steht auch weiter oben und ist ut@studentenhausleipzig.de
Die Funkuhr nutzt Du für Deine Heizungssteuerung bestimmt zur Steuerung
der Heizzeiten. Hast du auch an eine Routine gedacht, in der die
verschiedenen Zeiten über Tastatur frei verändert werden können? Mit so
einem Board wird es 100%-ig funktionieren, sage ich mal als
Wiederanfänger.

Übrigens von Jan habe ich auch super Unterstützung erhalten. WinAVR
oder Codevision? WinAVR soll besser und "billiger" sein.

von Malte Marwedel (Gast)


Lesenswert?

Progmem bezieht sich auf den Quelltext, nicht auf den Programmer. Als
Beispiel folgender Ausschnitt aus einem Programm von mir:

u08 rs232rausstring[36];

const char linielang[] PROGMEM =
"---------------------------------";
const char zeitmaske[] PROGMEM = "Zeit: xx xx:xx Datum: xx.xx.xxxx";

void newscreen(void) {
const char wochentage[] = "MoDiMiDoFrSaSo";
  calcweekday(); //Damit der Wochentag sofort richtig angezeigt wird
  rs232sendstring();
  strcpy_P(rs232rausstring,linielang);
  [...]
}

Der c-Compiler (ich verwende gcc aus winavr) hat hier nichts besseres
zu tun als wochentage[] sofort aus dem Flash in den RAM zu kopieren,
egal ob jemals drauf zugegriffen wird oder nicht. linielang[] und
zeitmaske[] bleiben dank PROGMEM im Flash (und verbrauchen somit
erstmal keinen RAM). Dann kopiert bei mir der Befehlt strcpy_P
linielang[] in den RAM. rs232rausstring[] liegt im RAM und enthält dann
eine Kopie von linielang[]. Mit der Kopie kann dann normal gearbeitet
werden.

von Malte Marwedel (Gast)


Lesenswert?

Bin zufällig auf eine Seite gestoßen, die eine Tabelle mit den
verschiedenen LPT Pin Belegungen der Programmer enthält.
http://www.klaus-leidinger.de/mp/Mikrocontroller/meinetools.html#Atmel%2090Sxxxx

von Volker (Gast)


Lesenswert?

Hallo Malte,

hätte ich sagen müssen. Nur durch den Hinweis auf der Seite bin ich auf
meinen Fehler gestoßen. Ist eben von Vorteil, wenn sich Leute entweder
auf einen Standard einigen oder wie dort geschehen, eine Übersichtliche
Tabelle erstellen. Irgendwo habe ich sogar ein guten Einfall gesehen.
Da hat einer ein Multifunktions-ISP Adapter gebaut. Mit PIN-Umschalter
für alle gängigen Programme. Aber vermutlich brauch man das nur am
Anfang seiner Programmierübungen. Danach steht ja sowieso fest, mit
welchem Programm man weiter arbeiten will. Ich schwanke noch zwischen
Assembler, was länger dauert und C über WinAVR oder Codevision.

von Holger B. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

mein DCF77-Programm habe ich mal gerade angehängt.
Der Empfänger wird an den ExtInt1 angeschlossen. Polarität sollte egal
sein.
Die Uhr läuft normal weiter, wenn der Empfang abbricht. Wichtig war mir
dabei die Sicherheit, weil das in meine Heizung soll. Der Sekundentakt
wird langsam auf den DCF77-Takt synchronisiert.

Das Hex-File für die AVR-crtl kann ich auch mal schicken.
Wenn ich mal Zeit habe, landet das bei:
http://www.mikrocontroller.com

Gruss,
Holger

von Henry (Gast)


Lesenswert?

hatte die selben probleme

sample electronics programmer aufbauen mit tesprogramm testen
an lpt 1

Bascom avr starten

programmer einstellen auf "sample electronics programmer

compiler einstellen auf deinen chip 90s8535

Lcd einstellen nach deinem lcd "bsp. 16*2" und die leitungen
einstellen

ein Bsp. starten config lcd ______

Bascom ist genau richtig für den anfang

versuchs mal
henry

von Volker (Gast)


Lesenswert?

Hallo Ihr Helfer,

habe alles mit Bascom gestartet. War einfacher. Wenn ich mal Zeit habe,
dann wird es auf jedenfall C. z.Z. Läuft das Temperaturprogramm,
Analogwerterfassung und Tastenfunktion gleichzeitig in einer Schleife.
Wenigstens ein kleiner Erfolg!

Meine fehlerhafte Temperaturmessung auf der AVR-Ctrl Platine beruht hat
2 Gründe:
1. zuviel Wärmeentwicklung des 5V Reglers, der in der Nähe des 1820
ist.
2. Es werden neuerdings immer ca. 70°C angezeigt. Ich ziehe dann den
Wert 140 ab und schon habe ich die richtige Temperatur. Ob es ein
Sensorfehler ist, weiß ich aber nicht.


Wie weit ist denn die Funkuhr und wie kann ich das C file mit Winavr
nutzen?

Viele Grüße

Volker

von David (Gast)


Lesenswert?

Hallo,

ich will es kurz machen:
Ich bin Anfänger und gerade dabei meine Platine(ATMEGA32 Contollerboard) 
mit aufgespielten Boardlader zu verstehen.
Das Testprogramm läuf einwandfrei, nun will ich aber dieses Programm 
wieder löschen....?..daher meine Frage: Wie löscht man ein gespeichertes 
Programm im Mega32 aber ohne diesen Boardlader gleich mit zu löschen?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

So alte Diskussionen gräbt man nicht mehr aus, wenn man ein brennendes 
aktuelles Problem hat.

Der Bootloader muss sich sich darum kümmern, das alte Programm zu 
löschen, bevor das neue Programm ins Flash geschrieben wird. Und das 
machen anständige Bootloader auch.

Das übliche Chip Erase in der AVR-ISP-Programmiersoftware, das du 
vielleicht vom normalen Flash-Programmieren kennst, solltest du nicht 
machen, denn das würde den Flash komplett inkl. Bootloadercode löschen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.