- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Serielles EEPROM ST24C16 an Mega8 anschließen

  1. #1
    Erfahrener Benutzer Roboter Experte Avatar von Thomas E.
    Registriert seit
    29.12.2011
    Beiträge
    638

    Serielles EEPROM ST24C16 an Mega8 anschließen

    Anzeige

    Powerstation Test
    Hallo!


    Ich möchte ein serielles EEPROM vom Typ St24C16 an einen AtMega8 anschließen und unter Bascom ansprechen. Bis jetzte wurde ich allerdings aus dem Datenblatt noch nicht ganz schlau, wie ich richtig vorgehe. Das IC besitzt neben den typischen I2C Pins SCL und SDA auch noch PRE, PB0, PB1 und MODE/WC*.

    Hier der Link zum Datenblatt:
    http://www.datasheetcatalog.org/data...2/129921_1.pdf

    Vielen Dank für eure Hilfe!
    Grüße
    Thomas

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Hallo,
    will ich mal anfangen, wie ich das Datenblatt hinsichtlich der IC-Anschlüsse verstehe.

    Du hast ein ST24C16, der es ermöglicht einen bestimmten Speicherbereich gegen Überschreiben zu schützen. HW mäßig sind die PINs PB0, PB1 und PRE dafür wichtig. Wenn der Schreibschutz nicht genutzt wird, einfach den PRE auf low (GND) legen, damit ist das Feature inaktiv und der gesamte Speicher kann ohne Einschränkung genutzt werden.

    Zitat Zitat von "Datenblatt Seite 11
    Remark: The Write Protection is active if and only if the PRE input pin is driven High and the bit 2 of location 7FFh is set to ’0’. In all the other cases, the memory Block will not be protected. While the PRE input pin is read at ’0’ by the memory, the location 7FFh can be used as a normal EEPROM byte.
    PB0 und PB1 haben dann keine Funktion und ich würd sie auch auf definiertes Potential verdrahten zB GND.

    Dann gibt es noch den MODE/WC Pin. WC gibt es nur am ST24Wxx. Für Deinen ST24C16 ist also nur die Beschreibung für "Mode" wichtig.

    Zitat Zitat von "Datenblatt Seite 4
    Write Control (WC). An hardware Write Control feature is offered only for ST24W16 and ST25W16 versions on pin 7.

    Mit Mode stellt man den Schreibmodus ein. Nicht angeschlossen ist der Chip im "Multibyte Write mode".


    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  3. #3
    Erfahrener Benutzer Roboter Experte Avatar von Thomas E.
    Registriert seit
    29.12.2011
    Beiträge
    638
    Zitat Zitat von Searcher Beitrag anzeigen
    Du hast ein ST24C16, der es ermöglicht einen bestimmten Speicherbereich gegen Überschreiben zu schützen. HW mäßig sind die PINs PB0, PB1 und PRE dafür wichtig. Wenn der Schreibschutz nicht genutzt wird, einfach den PRE auf low (GND) legen, damit ist das Feature inaktiv und der gesamte Speicher kann ohne Einschränkung genutzt werden.
    Ich denke nicht, dass ich einen Schreibschutz benötigen werde.

    Zitat Zitat von Searcher Beitrag anzeigen
    Dann gibt es noch den MODE/WC Pin. WC gibt es nur am ST24Wxx. Für Deinen ST24C16 ist also nur die Beschreibung für "Mode" wichtig. Mit Mode stellt man den Schreibmodus ein. Nicht angeschlossen ist der Chip im "Multibyte Write mode".
    Ja, da habe ich bereits das erste Problem. Ich versuche mich gerade mit dieser Thematik zu befassen. So richtig klar ist mir allerdings noch nicht, was ich benötige.

    Grundsätzlich möchte ich auf dem EEPROM Daten mit Zeitstempel speichern. Ansprechen kann ich es, so habe ich das Datenblatt jedenfalls verstanden, per I2C.

    So richtig klar ist mir die Sache noch nicht....
    Grüße
    Thomas

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Ich würde vorschlagen, PB0, PB1, PRE auf GND zu legen, also Schreibschutz Feature nicht benutzen. MODE offen lassen. SCL und SDA mit Mega8 verbinden. (VCC (+) und VSS (GND) nicht vergessen, Pullups für SCL & SDA)

    MODE offen bedeutet, daß er intern vom EEPROM als high gelesen wird und sich damit nicht nur im Multibyte Write mode befindet, sondern auch im Byte Write mode.

    Im Multibyte Write mode kannst Du bis zu acht Byte hintereinander, beginnend an jeder beliebigen Speicheradresse, schreiben, bevor ein Stop Signal vom Master gesendet werden sollte. In manchen Fällen 20ms Wartezeit statt 10ms vor nächstem I2C Aktivität notwendig.

    Byte Write mode ist immer aktiv, egal ob Mode high oder low ist. Da schickt man ein Datenbyte an jede beliebige Speicheradresse gefolgt von einem Stop.

    Das sollte für Dein Vorhaben sicher ausreichen.

    Für die SW zB: http://www.rn-wissen.de/index.php/Bascom_und_I2C_EEprom

    Gruß
    Searcher

    EDIT: mit Pullups für SCL und SDA sind die externen Widerstände nach VCC gemeint. In der Bascom Hilfe unter Using the I2C protocol ist der Wert von 1kOhm genannt. Die hab ich auch bei meinen Versuchen benutzt. Wenn SDA mit Portd.5 und SCL mit Portd.7 verbunden werden, könnte man das RN-Wissen Beispiel weitgehend übernehmen.
    Geändert von Searcher (07.03.2012 um 09:23 Uhr) Grund: weitere Eräuterungen
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  5. #5
    Erfahrener Benutzer Roboter Experte Avatar von Thomas E.
    Registriert seit
    29.12.2011
    Beiträge
    638
    Hallo!


    Vielen Dank für deine Antwort.
    Jetzt ist mir einiges klarer.


    Grüße
    Grüße
    Thomas

  6. #6
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Vielleicht eine blöde Frage aber die kam mir gerade in den Kopf.....was spricht dagegen die internen Pull-ups zu verwenden?
    Sind die vom Wert her zu groß (hab den Wert gerade nicht im Kopf)?
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Hallo,

    Zitat Zitat von Kampi Beitrag anzeigen
    .....was spricht dagegen die internen Pull-ups zu verwenden? Sind die vom Wert her zu groß (hab den Wert gerade nicht im Kopf)?
    hab ich nicht probiert, könnte mir aber Verwicklungen mit den Bascom Routinen vorstellen. Um den internen Pullup einzuschalten, müßte SDA bzw SCL vom Master (µC) als Input konfiguriert werden und dann in dem PORT Register das entsprechende Bit auf "1" geschrieben werden. Da die gleichen Leitungen aber auch als Ausgang genutzt werden und dann das Portregister für die Ausgabe wieder überschrieben wird, wäre der Endzustand für mich ungewiß.

    Habe deshalb die in der Bascom Hilfe vorgeschlagene HW Konfiguration genommen.

    Der Wert der Pullups mit 1kOhm ist relativ niedrig. Wenn man googelt, findet man, daß die meisten Anwender Werte zwischen 1kOhm und 10kOhm benutzen. Die internen Pullups des Mega8 liegen wohl zwischen 20kOhm und 50kOhm.

    Im Datenblatt zum ST24C16 gibt es auf Seite 4 ein Diagramm, das den maximalen Wert des Pullups in Abhängigkeit zur Kapazität der Busleitungen zeigt. Weil der Speicher vermutlich nah am µC liegt, kann man danach ziemlich sicher 10kOhm oder sogar noch höhere Pullups nehmen.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  8. #8
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Dank dir für die Antwort.
    Stimmt....das hatte ich gar nicht bedacht, das die Pull-ups nur bei Input-Pins geschaltet werden können, aber I²C selber ja Output-Pins braucht.
    Vermutlich wird es dann nicht nur im Bascom zu ungereimtheiten kommen sondern auch im AVR Studio.
    Ich hab das gestern mal mit PSoCs von Cypress getestet (da kann man im Pinout Editor die "Eigenschaften" jedes Controllerpins verändern). Nur die IDE setzt die Pins für I²C automatisch auf "Strong" ganz egal ob man da vorher High-Z, Pull-down oder Pull-up eingestellt hat.
    So einen "Luxus", das sie die Pins passend der eigentlichen Funktion einstellen, haben die IDEs für die Atmel Controller wahrscheinlich nicht
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Hallo Kampi,
    bisher kenne ich nur Bascom für den µC Bild hier   und da ist mir ein Pinout Editor noch nicht aufgefallen Da übernehmen dann bestimmte Bascom Anweisungen die Konfiguration der Pins. Aufgefallen ist mir das, wenn ich mich recht erinnere, zum erstenmal bei der Konfiguration zum SW-UART mit der OPEN Anweisung. Ist im Nachhinein betrachtet eigentlich klar - aber man erlebt ja jedes mal wenn man was Neues anfängt, immer wieder Überraschungen

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  10. #10
    Erfahrener Benutzer Roboter Experte Avatar von ePyx
    Registriert seit
    14.05.2008
    Ort
    Falkensee
    Beiträge
    700
    Zitat Zitat von Kampi Beitrag anzeigen
    Vielleicht eine blöde Frage aber die kam mir gerade in den Kopf.....was spricht dagegen die internen Pull-ups zu verwenden?
    Sind die vom Wert her zu groß (hab den Wert gerade nicht im Kopf)?
    Die anderen BUS-Teilnehmer müssen in der Lage sein, die Leitungen auf GND zu ziehen. Die internen Pullups sind dafür zu hochohmig und die meisten IO-Stufen versagen dann. Daher findet man in allen TWI-Schaltungen auch Pullups von 1 bis 10k.

    EDIT:
    Gab shcon eine Antwort.
    Grüße,
    Daniel

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Serielles Anschlussproblem ???
    Von Looser im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 11.08.2008, 21:13
  2. Serielles (IIC) EEPROM richtig auslesen??
    Von Kandy im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 01.06.2008, 15:52
  3. Serielles Programmierkabel
    Von ch4 im Forum AVR Hardwarethemen
    Antworten: 24
    Letzter Beitrag: 07.03.2006, 22:52
  4. Serielles LCD mit AVR selberbauen
    Von artools im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 23.10.2005, 21:15
  5. Serielles Eeprom
    Von R.H.D.B. im Forum PIC Controller
    Antworten: 3
    Letzter Beitrag: 03.03.2005, 09:44

Berechtigungen

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

12V Akku bauen