- Akku Tests und Balkonkraftwerk Speicher         
Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 35

Thema: Mega 8 - RAM-Erweiterung

  1. #21
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Anzeige

    Praxistest und DIY Projekte
    Wenig Pins wäre klasse, ich würde allerdings gerne ohne FAT und Sektoren darauf zugreifen können:
    http://www.ulrichradig.de/home/index.php/avr/mmc-sd
    Ob nicht ein größerer AVR mit mehr Speicher einfacher wäre? (Nur so ein paar Gedanken, ich habe mich noch nicht eingelesen)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  2. #22
    Benutzer Stammmitglied
    Registriert seit
    25.12.2006
    Alter
    36
    Beiträge
    51
    Ja, ein AVR mit mehr Speicher wäre schon prktisch, jedoch hat der größte, den ich bisher gefunde habe "nur" 4kb, ich benötige jedoch etwas mehr als 16 kb pro Bild, und mindestens 2 muss ich speichern können. Das mit den vielen Daten- und Steuerleitungen stört mich auch ein bisschen, aber ich denke daran lässt sich nicht so viel ändern (außer über andere Bausteine vllt!? Wie wäre es denn mit einem Schieberegister, oder ist das dann zu langsam?). Eine weitere Idee wäre ein µC nur für den Speicher per I2C anzusprechen. Das würde dann die Ports an dem µC der Camera sparen und ebenfalls dessen Rechenleistung freigeben. Ist der I2C Bus eigentlich schnell genug dafür (also um die ca. 16 kb innerhalb weniger ms zu speichern?

  3. #23
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.01.2005
    Alter
    52
    Beiträge
    294
    Hi,

    wenn Du keinen Bock auf SMD hast und Statischen Speicher verwenden willst, dann kann ich Dir helfen. Im DIL 28 Gehäuse habe ich welche rumliegen (nagelneu) 70ns schnell, 32Kb pro Chip. Organisiert in 32kx8. Falls es Platzprobleme gibt, habe ich die auch in SMD. Kann man mit 1,27mm Pinraster auch noch sehr gut löten ohne der SMD-Profi zu sein.

    Gegen Portokosten + 20ct pro Chip. Wer interesse hat -> PN mit Adresse an mich.

    Gruß Dnerb
    Das Gegenteil von "gut" ist "gut gemeint"!

  4. #24
    Benutzer Stammmitglied
    Registriert seit
    25.12.2006
    Alter
    36
    Beiträge
    51
    Hi Dnerb,
    Habe die Bestellung schon gestern abend abgeschickt....
    Aber trozdem vielen Dank für das Angebot

    Gruß Monday

  5. #25
    Benutzer Stammmitglied
    Registriert seit
    25.12.2006
    Alter
    36
    Beiträge
    51
    So, die Sachen sind heute angekommen.
    Ich werde jetzt mal die datenblätter studieren und anschließend eine schaltung aufbauen. Melde mich dann wieder

    Gruß
    Monday

  6. #26
    Benutzer Stammmitglied
    Registriert seit
    25.12.2006
    Alter
    36
    Beiträge
    51
    ...
    Ich melde mich nach etwas längerer Zeit wieder.
    Mitlerweile habe ich so einiges ausprobiert, was das Thema RAM angeht.
    Als erstes habe ich mich dazu entschlossen einen alten RAM-Riegel (1M x1) zu zerlegen. Nachdem ich einen Adapter für den smd-Speicher gebaut habe und ich an den Mega8 ageschlossen habe, ging es auch schon mit dem Programmieren los (Ports konfigurieren und zuordnen).
    Nach nicht all zu langer zeit war das Programm fertig und der Ram wurde eingesteckt. Eine LED zeigte mir an, ob ein bit gelesen wurde oder nicht. Das hat auch soweit funktioniert, bis ich mehr als ein Bit schreiben wollte. Da ich ab hier nur noch seltsammes blinken der LED bemerkte, habe ich das alte Programm etwas verändert:
    1 Bit schreiben und einige male auslesen (über RS232). Hier habe ich festgestellt, dass das Bit nie gleich war (also mal 1, mal 0).

    Also habe ich das ganze Programm erneut geschrieben, wieder ohne Erfolg....
    Aber aufgeben wollte ich noch nicht: Einen anderen Ram genommen und wieder einige Male neu Programmiert. Irgendwie haut das mit den ganzen timings nicht hin.

    Deshalb möchte ich mal nachfragen, ob jemand einen Beispielcode dafür hat und wie man das am besten programmiert? (Mit Timer oder ohne?)

    Hier ist noch der letzte Code, den ich geschrieben habe (da ich mit dem Timings wie gesagt so meine Probleme habe ist es auch recht simle...)
    Code:
    '***** ############################################# *****
    '***** ############################################# *****
    '***** Grundcode zum beschreiben und Lesen von       *****
    '***** DRAM-Modul TMS4164-12NL                       *****
    '***** ############################################# *****
    '***** ############################################# *****
    
    $regfile = "m8def.dat"
    $crystal = 16000000
    $hwstack = 32
    $swstack = 10
    $framesize = 40
    
    
    '***** ############################################# *****
    '***** Adress- und Datenleitungen konfigurieren      *****
    '***** ############################################# *****
       Config Portd = Output
       Config Portc = Output
    
       W Alias Portc.2
       Ras Alias Portc.3
       Cas Alias Portc.4
       D_i Alias Portc.1
       D_o Alias Portc.5
       Adr Alias Portd
    
       Dim Adresse As Byte                                      'adressse die gesetzt werden soll
       Dim Ras_adr As Byte                                      'raw adress
       Dim Cas_adr As Byte                                      'Column adress
       Dim Set_bit As Byte                                      'Bit setzen (1/0)
       Dim Get_bit As Byte                                      'gelesenes Bit
    '***** ############################################# *****
    
    
    
    '***** ############################################# *****
    '***** Sonstiges                                     *****
    '***** ############################################# *****
       Dim I As Byte
    '***** ############################################# *****
    
    
    
    '***** ############################################# *****
    '***** Gruene LED konfigurieren                      *****
    '***** ############################################# *****
       Config Portb.0 = Output                                  ' gruene LED
       Led_gruen Alias Portb.0
    '***** ############################################# *****
    
    
    
    '***** ############################################# *****
    '***** Programmstart durch blinken signalisieren     *****
    '***** ############################################# *****
       For I = 0 To 5
          Led_gruen = 1
          Waitms 50
          Led_gruen = 0
          Waitms 10
       Next
       Led_gruen = 0
       Waitms 500
    '***** ############################################# *****
    
    
    
    '***** ############################################# *****
    '***** Hauptprogramm                                 *****
    '***** ############################################# *****
       Wait 1
       Led_gruen = 1
       Waitms 5
       Led_gruen = 0
       Set_bit = 1
       Gosub Write_bit
       Do
       Waitms 50
          Gosub Read_byte
          Led_gruen = Get_bit
          Waitms 5
          Led_gruen = 0
       Loop
    End
    '***** ############################################# *****
    
    
    
    '***** ############################################# *****
    '***** GOSUBs                                        *****
    '***** ############################################# *****
    
    
    
    '***** ############################################# *****
    '***** Bit in RAM schreiben (write_bit)
    '***** ############################################# *****
       Write_bit:
          Ras = 1
          Cas = 1
          '---------------------------------------------------
          'ROW-Adresse setzen
          Adr = 255
          Ras = 0
          nop
          '---------------------------------------------------
          'COLUMN-Adresse setzen
          Adr = 255
          Cas = 0
          '---------------------------------------------------
             D_i = Set_bit
          W = 0
          D_i = 0
          W = 1
          '---------------------------------------------------
          Cas = 1
          Ras = 1
          Ras = 0
          Cas = 0
       Return
    '***** ############################################# *****
    
    
    
    '***** ############################################# *****
    '***** Bit aus RAM lesen                             *****
    '***** ############################################# *****
       Read_byte:
          Ras = 1
          Cas = 1
          '---------------------------------------------------
          'ROW-Adresse setzen
          Adr = 255
          Ras = 0
          nop
          '---------------------------------------------------
          'COLUMN-Adresse setzen
          W = 1
          Adr = 255
          Cas = 0
          nop
          '---------------------------------------------------
          Cas = 1
             Get_bit = D_o
          Ras = 1
          W = 0
          Ras = 0
          Cas = 0
       Return
    '***** ############################################# *****
    Achso... theoretisch gesehen sollte die LED kurz aufleuchten, wenn das gelesene Bit = 1 ist

  7. #27
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    hmmm ... was ich nicht verstehe, du schreibst ein Bit über C.1 und Du liest ein Bit über C.5 ? Ich glaub das passt so nicht.
    In meiner Anwendung war Data in = Data out vom RAM und so stehts auch im Datenblatt von dem Baustein.
    Dann hast Du nochmal n Problem, Du hast die Datenrichtung der Pins nicht festgelegt.

    also
    config w=output
    config ras=output
    config cas= output etc.

    Dann kommt noch, das man Portzustände von anliegenden Spannungen
    nicht über xy=portz.0 einlesen kann, sondern dafür das Pin abfragen
    muss, also:
    input = pinc.1

    Da Ein und Ausgänge ja auf dem gleichen Pin liegen musst Du vor dem
    Ein bzw. Auslesen die Datenrichtung ändern von input zu output und umgekehrt.
    also
    Datenrichtung = output
    Adresse setzen
    Daten schreiben
    Datenrichtung = input
    Adresse setzen
    Daten lesen.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  8. #28
    Benutzer Stammmitglied
    Registriert seit
    25.12.2006
    Alter
    36
    Beiträge
    51
    Hi Vitis,

    Stimmt, jetzt wo du es sagst fällt mir das mit der Konfiguration der Pin auch auf... (war zum glück bei den anderen Programmen nicht )
    Soweit ich mich erinnere habe ich das mit dem Einlesen der Pins immer so gemacht und es hat auch funktioniert (Beispiel):
    Code:
    config portc.1 as input
    taster alias portc.1
    if taster = 1 then print "Taster gedrückt!"
    Habe die Pin jetzt richtig konfiguriert, es tut sich jedoch immer noch nichts.
    Laut Datenblatt gibt es an dem RAM die Anschlüsse "D" und "Q" wobei D für Dateneingang und Q für Datenausgeang steht.
    Bei dem alten Arbeitspeicher war es genau so.

    mfg
    Monday

  9. #29
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    nochmal, du kannst das port-register zwar auslesen,
    da steht aber nur das drin, was du aktiv dort reinschreibst.
    willst du den zustand des pins einlesen musst du das
    pin (!) - Register auslesen.

    in deinem beispiel:
    taster alias pinc.1
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  10. #30
    Benutzer Stammmitglied
    Registriert seit
    25.12.2006
    Alter
    36
    Beiträge
    51
    oh, sry... war gestern abend schon müde
    meinte es natürlich so wie du es berichtigt hast.

    Du hast das mit dem RAM doch schon erfolgreich gemacht, oder?
    kannst du mir eventuell die routine fürs lesen und schreiben mal schicken/posten?

    mfg
    Monday

Seite 3 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress