Atmega8 und KS0108

Weiß der Atmega denn, dass Reset "Low aktiv" ist?
kurz und bündig ... Bei beinahe allen ICs ist Reset Low-Aktiv.
Aus dem Grund haben Reset-Controller/Supervisory-Controller meißt auch nen
Open-Collector Ausgang (oder manche auch Gegentakt-Ausgang)

/RESET
Reset input. A low level on this pin for longer than the minimum pulse length will generate a reset, even if the clock is not running.

Gruß
Dino
 
Weiß der Atmega denn, dass Reset "Low aktiv" ist?

Hi!

Nö, der ATMega weiß das natürlich nicht.......:eek:
aber die zugehörige Lib-Datei. ;)

Tja, Sebo... was soll ich schreiben? Mir fällt langsam nichts mehr ein. :eek:
Haben wir denn etwas übersehen? :hmmmm:

Wenn so gar dein LED-Port im richtigen Takt getoggelt wird, sollte dein Controller und auch das Timing (Quarz incl. FUSES) stimmen.

Momentan habe ich keine weitere Idee.....
Hoffen wir also wieder mal auf einen Zufall. ;)

Ich melde mich, wenn mir noch eine Idee kommt.

Gruß,
Cassio
 
HI,
ja ratlos bin ich schon seit längerem;) kann es sein, dass der Atmega kaputt ist?
Oder ein einzelner Pin.
Oder einfach das Display?

Gruß
Sebastian
 
Hallo Sebastian!

Natürlich kann auch mal ein Stück Hardware defekt sein.
Sowohl der ATMega, als auch das Display sind relativ empfindliche Bauteile!

Da der Mega sich aber (fehlerfrei ?) programmieren lässt würde ich erst mal nicht davon ausgehen, dass er defekt ist.
Du kannst natürlich die Pins alle einmal überprüfen.... ob nun als Eingang, oder Ausgang.
Schreib einfach ein kleines Programm, mit dem du alle Pins kontrollieren kannst.

Beim Display ist das natürlich schwieriger, wenn du kein zweites funktionierendes System zum Testen hast.

Vielleicht solltest du mal zu Juro Kontakt aufnehmen.... ich meine, dass er auch in Berlin lebt. ;) Allerdings war er hier schon etwas länger nicht mehr online!

Gruß,
Cassio

EDIT:
Ach quatsch..... Das mit Berlin war ja ein anderer hier im Forum.
Da habe ich jetzt etwas durcheinander gebracht.
 
Hallo Sebastian!

Natürlich kann auch mal ein Stück Hardware defekt sein.
Sowohl der ATMega, als auch das Display sind relativ empfindliche Bauteile!

Da der Mega sich aber (fehlerfrei ?) programmieren lässt würde ich erst mal nicht davon ausgehen, dass er defekt ist.
Du kannst natürlich die Pins alle einmal überprüfen.... ob nun als Eingang, oder Ausgang.
Schreib einfach ein kleines Programm, mit dem du alle Pins kontrollieren kannst.

Beim Display ist das natürlich schwieriger, wenn du kein zweites funktionierendes System zum Testen hast.

Vielleicht solltest du mal zu Juro Kontakt aufnehmen.... ich meine, dass er auch in Berlin lebt. ;) Allerdings war er hier schon etwas länger nicht mehr online!

Gruß,
Cassio

EDIT:
Ach quatsch..... Das mit Berlin war ja ein anderer hier im Forum.
Da habe ich jetzt etwas durcheinander gebracht.

Hallo Cassio,

ich hab jetzt gerade mal ein kleines Testprogramm geschrieben,
also der Atmega scheint heile zu sein.
Naja wie du schon richtig sagst, das Display kann ich schlecht überprüfen,
ein Standart 16*2 Textlcd funktioniert aber ohne Probleme.

Programmieren lässt sich der Mega ohne Probleme.

Noch ein Display besorgen?
Andere Pinconfig ausprobieren?
Mal nen größeren Mega dran?
ich bin ratlos...

Aber vielen Dank für deine Hilfe soweit:)

Gurß
Sebastian
 
Hallo Sebastian!

Ach so... du hast noch ein Textdisplay zur Hand?
Wenn damit alles funktioniert, dann sollte BASCOM, dein Mega8 und das Programmieren doch OK sein.

Scheint wohl wirklich am Display zu liegen......
Glauben kann ich das zwar auch immer nicht, aber ich habe hier inzwischen auch zwei Defekte liegen. :rolleyes: Allerdings keine nagelneuen.

Ich kenne deine finanziellen Möglichkeiten nicht und ob du dir einfach mal ein weiteres Display bestellen möchtest? Bei Conrad sind die ja meist etwas teurer, darum schau doch mal bei Reichelt oder Pollin rein. ;)
Das 128x64 GLCD das ich benutzt habe ist auch von Pollin.... musst mal dem Link folgen---> GLCD grau/weiß

Was einen größeren Mega betrifft....
Ich nehme ja in letzter Zeit immer den Mega16 zum testen.... aber nur, weil er mehr Möglichkeiten bietet.
Wenn ich am Wochenende irgendwie Zeit haben sollte, dann kann ich ja mal einen Test mit einem Mega8 und dem GLCD durchführen. Versprechen kann ich dir das aber nicht!

Gruß,
Cassio
 
Guten Morgen!

Ja, ich habe hier ein Textdisplay von "MyAvr" 16*2 und das tut es ohne Probleme!

Ganz neu ist das Display nicht aber unbenutzt!

Ich werde mir wohl ein neues besorgen, ich will das jetzt schaffen;)

Was hälst du von dem hier?
http://www.pollin.de/shop/dt/Mzk0OTc4OTk-/Bauelemente/Aktiv/Displays/LCD_Modul_WINTEK_WD_H3224V.html

Dein Vorschlag würde ich dann mit dabei bestellen.

Auf was ist generell bei einem GLCD zu achten also welcher Controller sollte es sein? usw.

Gruß
Sebastian
 
Hallo,

Finger weg !
im Datenblatt steht nichts über den Kontroller und die
Softwareansteuerung des Diplay, hast du mehr informationen?
...
..
.
..
...
Du wirst nichts über den Controller finden, weil dort keiner drauf ist.
Das Display stammt vermutlich aus einem PDA.

Zur Ansteuerung: du musst das Bild zeilenweise eintakten. Es gibt ein
Signal um die Daten zu übernehmen (schaltet gleichzeitig auch eine
Zeile weiter). Ein anderes sagt dem Display das es wieder oben anfangen
soll. Das Bild wird meistens so um die 30 Mal pro Sekunde aktualisiert.
Die dazu passenden Wellenformen findest du im Datenblatt.

Das ist eine Aufgabe mit der man einen uC oder CPLD gut auslasten kann.
mikrocontroller.net - Wintek WD-H3224V 320x240

Das ist ein GLCD OHNE Controller !
Du mußt also mit dem AVR die Daten Bildsynchron anliefern und das gesamte
Timing (die Takte für die Schieberegister, usw) selber erzeugen. Vergiss es.

Ist zwar günstig und schön groß und mit Touch aber für "eben mal schnell"
überhaupt nicht geeignet.

Sieh mal hier ...
LCD Controller für 640x480 LCD mit mega8515
Grafikfähiger LCD Controller für 320x240 LCD mit 4 Graustufen
dann weißt du was ich meine ... ein ATmega nur für das GLCD.

Wenn du überhaupt nichts falsch machen willst dann such dir ein Display mit
dem T6963C-Controller von Toshiba. Das ist ein "Allerwelts-Grafikcontroller"
der so ziemlich überall standardmäßig unterstützt wird. So wie bei den
Character-Displays der HD44780.

Gruß
Dino
 
Was hälst du von dem hier?

Hallo Sebastian!

Wie Dino schon ganz richtig geschrieben hat...
Lass da lieber die Finger von!

An deiner Stelle würde ich immer nur Displays mit Controllern nehmen, die auch sicher von BASCOM unterstützt werden.

Wenn du unbedingt ein sehr günstiges und "großes" Display kaufen möchtest (das auch unterstützt wird), dann nimmer DIES HIER !


Schöne Grüße,
Cassio
 
Wenn ich am Wochenende irgendwie Zeit haben sollte, dann kann ich ja mal einen Test mit einem Mega8 und dem GLCD durchführen. Versprechen kann ich dir das aber nicht!

Hallo Sebastian!

Ich hatte dir zwar nicht versprochen, dass ich am Wochenende mal einen Test durchführe...... aber ich habe es einfach mal gemacht. ;)

Zu Beginn hatte ich einige Probleme, aber die Fehler saßen ausschließlich VOR der Tastatur! ;)


Schöne Grüße,
Cassio
 
Hi !

Hier schon mal mein Anschlussplan !
Code kommt gleich !

Gruß,
Cassio
 

Anhänge

  • Cassio-Sebo_1.gif
    Cassio-Sebo_1.gif
    21,4 KB · Aufrufe: 70
Hi !

So, hier nun noch der lauffähige Code !

Gruß,
Cassio


Hier mal mein Testcode (unzensiert):
Code:
'Testprogramm für Sebo

$regfile = "m8def.dat"
$crystal = 1000000

'$hwstack = 128
'$swstack = 128
'$framesize = 128


Ddrc = &B11_1111                                            '1 ist Ausgang 0 ist Eingang
Portc = &B00_0000                                           'auf Hi oder Low setzen

'Ddrd = &B1111_1111                                          '1 ist Ausgang 0 ist Eingang
'Portd = &B0000_0000                                         'auf Hi oder Low setzen

'Ddrb = &B1111_1111                                          '1 ist Ausgang 0 ist Eingang
'Portb = &B0000_0000                                         'auf Hi oder Low setzen


' Configuriere das LCD
'some routines to control the display are in the glcdKS108.lib file
$lib "glcdKS108.lib"

Config Graphlcd = 128 * 64sed , Dataport = Portb , Controlport = Portd , Cd = 0 , Rd = 1 , Ce = 4 , Ce2 = 3 , Enable = 2 , Reset = 5



'Enable Interrupts


'---------------------------------------------------
'Dim variables
Dim Y As Byte


 Glcdcmd &H3E , 1 : Glcdcmd &H3E , 2                        ' both displays off
 Cls
 Waitms 50
 Glcdcmd &H3F , 1 : Glcdcmd &H3F , 2                        'both on
 Waitms 50

 Setfont Font8x8
 Cls

Portc.5 = 0
Wait 1

' Arbeitsschleife----------------------------------
Do
Portc.5 = 1

 Lcdat 1 , 1 , "Testprogramm"
 Lcdat 2 , 1 , "GLCD KS0108"
 Lcdat 3 , 1 , "AVR-ATMega8"
 Lcdat 4 , 1 , "Cassio"
 Lcdat 5 , 1 , "AVR-Praxis.de"
 Lcdat 6 , 1 , "fuer"
 Lcdat 7 , 1 , "Sebo"
 Lcdat 8 , 1 , "Bitte sehr !"

Wait 3
Portc.5 = 0

For Y = 0 To 63
 Line(0 , Y) -(127 , Y) , 1                                 'Vorhang runter
Waitms 5
Next X


Wait 1
Portc.5 = 1

For Y = 0 To 63
 Line(0 , Y) -(127 , Y) , 0                                 'Vorhang löschen
Waitms 5
Next X

Portc.5 = 0
Wait 1

Loop

' #############################################################################


End                                                         'end program

' ------------------------------------------------------------------------------
 $include "font8x8.font"
 
Hi Sebastian!

So, nun noch ein paar Bilder zum Beweis! ;)

Du siehst also, es ist doch möglich ein GLCD mit KS0108-Chipsatz am ATMega8 zu betreiben. :)


Gruß,
Cassio
 

Anhänge

  • PICT0927 [800x600].JPG
    PICT0927 [800x600].JPG
    67,2 KB · Aufrufe: 70
  • PICT0925 [800x600].JPG
    PICT0925 [800x600].JPG
    76,5 KB · Aufrufe: 51
  • PICT0926 [800x600].JPG
    PICT0926 [800x600].JPG
    75,9 KB · Aufrufe: 42
Hi Cassio!

Ich danke dir! Super nett, dass du dir die Arbeit gemacht hast!

Ich schließe das Display mal nach deinem Plan an und Programmiere es dann auch mit deinem Code!

Ausserdem hab ich mir mal dieses große Display bestellt, welches du empfohlen hast. Ich bin gespannt, denke es wird am Dienstag ankommen.

Gruß
Sebastian
 
Hi Sebastian !

Jetzt mal der Testcode in "aufgeräumter" Fassung.
So ist er übersichtlicher und du kannst dir die eigentlich wichtigen Zeilen heraus ziehen.

Schöne Grüße,
Cassio


Code:
'Testprogramm für Sebo

$regfile = "m8def.dat"
$crystal = 1000000

Ddrc = &B11_1111                                            '1 ist Ausgang 0 ist Eingang
Portc = &B00_0000                                           'auf Hi oder Low setzen

' Configuriere das LCD
$lib "glcdKS108.lib"
Config Graphlcd = 128 * 64sed , Dataport = Portb , Controlport = Portd , Cd = 0 , Rd = 1 , Ce = 4 , Ce2 = 3 , Enable = 2 , Reset = 5


'---------------------------------------------------
'Dim variables
Dim Y As Byte


Glcdcmd &H3E , 1 : Glcdcmd &H3E , 2                        ' both displays off
Cls
Waitms 50
Glcdcmd &H3F , 1 : Glcdcmd &H3F , 2                        'both on
Waitms 50

Setfont Font8x8
Cls

Portc.5 = 0
Wait 1

' Arbeitsschleife----------------------------------
Do
Portc.5 = 1

Lcdat 1 , 1 , "Testprogramm"
Lcdat 2 , 1 , "GLCD KS0108"
Lcdat 3 , 1 , "AVR-ATMega8"
Lcdat 4 , 1 , "Cassio"
Lcdat 5 , 1 , "AVR-Praxis.de"
Lcdat 6 , 1 , "fuer"
Lcdat 7 , 1 , "Sebo"
Lcdat 8 , 1 , "Bitte sehr !"

Wait 3
Portc.5 = 0

For Y = 0 To 63
Line(0 , Y) -(127 , Y) , 1                                 'Vorhang runter
Waitms 5
Next X


Wait 1
Portc.5 = 1

For Y = 0 To 63
Line(0 , Y) -(127 , Y) , 0                                 'Vorhang löschen
Waitms 5
Next X

Portc.5 = 0
Wait 1

Loop

' ####################################################


End                                                         'end program

' ------------------------------------------------------------------------------
$include "font8x8.font"
 
Hi Cassio,

ich hab deinen Code genauso übernommen, nur den Quarz geändert, und alles auch genauso angeschlossen.

Und was soll ich sagen... es tut sich einfach nichts!

Ich denke mitlerweile, das Display ist einfach nur defekt?!

Ich bin gespannt auf das neue!

Gruß
Sebastian
 
nur den Quarz geändert


Hi Sebastian!

Du musst die FUSE-BITS so umstellen, dass er mit dem internen 1MHz Takt arbeitet!
Anderenfalls sind die Pins PB6 und PB7 nicht verfügbar, sondern nur für den externen Quarz vorgesehen!

Hast du daran gedacht?
Du musst die Quarzfrequenz also gar nicht ändern! ;)

Schöne Grüße,
Cassio


EDIT:
Habe noch mal ein Snapshot von den FUSES unter BASCOM gemacht und den Bereich rot makiert! :)
 

Anhänge

  • BASCOM-FUSE-BITS-Mega8.jpg
    BASCOM-FUSE-BITS-Mega8.jpg
    121,8 KB · Aufrufe: 33
Hallo,

Anderenfalls sind die Pins PB6 und PB7 nicht verfügbar, sondern nur für den externen Quarz vorgesehen!
Wie wärs denn damit, wenn man den Datenbus des GLCDs auf PortD legt und
die Steuersignale dann auf die anderen Ports verteilt (zB PB0..5)?
Damit werden ddie beiden Quarz-Anschlüsse frei und man kann eine höhere
Taktrate fahren ..

Gruß
Dino
 
Hi Dino!

Wenn du die ersten Beiträge von Sebastian durchschaust wirst du feststellen, dass er genau dies schon gemacht hat. ;)

Ich habe absichtlich diese Variante mit dem PortB und dem internen Quarz gewählt, um keine weitere Hardware (Fehlerquellen) nutzen zu müssen.

Der zweite Schritt wäre dann die anderen Ports zu nutzen und im dritten Schritt kommt noch der externe Quarz hinzu. :)

Den Plan für Schritt Zwei und Drei habe ich sogar schon fertig.....
und der Umbau des Testboards folgt dann morgen! :D

Gruß,
Cassio
 

Anhänge

  • Cassio-Sebo_2.gif
    Cassio-Sebo_2.gif
    21,1 KB · Aufrufe: 29

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)