-         

Ergebnis 1 bis 4 von 4

Thema: (Mal wieder) der SRF02 und ordentliches Messen...

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    30.11.2004
    Beiträge
    15

    (Mal wieder) der SRF02 und ordentliches Messen...

    Anzeige

    Moin zusammen,

    ich möchte mit einem ATmega324PA via I²C einen SRF02 auslesen. Dazu habe ich den Beispielcode benutzt. Ich habe nun schon fast das komplette Internet durchgelesen, komme aber nicht auf gute Ideen. Daher hoffe ich, dass ihr mir in meiner Verzweiflung weiterhelfen könnt ^^

    Hier mal die Daten und das Problem:

    F_CPU ist 3686400 Hz
    F_TWI ist 230400 Hz
    Pullups sind dran (4k7)

    Ich habe das Problem, dass der Sensor manchmal funktioniert, "sogar" bei 75ms Wartezeit auf getRange(). Der µC hat sonst nichts zu tun, um die Tests nicht zu verfälschen. Wenn ich ihn nun aber resete passiert es, dass sich das Programm nach einem Blinken des SRF02 aufhängt. Gelegentlich passiert es, dass das Programm läuft, der SRF02 aber nicht blinkt und somit auch nicht ausgewertet wird. Meine bisherigen Ideen waren, dass es an der Software liegt.

    Wenn ich die Platine allerdings eine Weile liegen lasse, KANN es sein, dass es wieder alles einwandfrei funktioniert. Nach einem Reset geht dann aber wieder nichts. Ich habe schon mit den Startupzeiten des Atmel experimentiert, dem SRF02 eine ganze zusätzliche Sekunde zum "hochfahren" gegeben, aber immer wieder den selben Fehler erhalten.

    Ich würde mich sehr freuen, wenn ihr mir da irgendwie helfen oder Tipps zur Fehlersuche geben könntet, ich geh hier echt gerade kaputt daran :\

    Schon mal vielen Dank!

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.06.2007
    Ort
    München
    Alter
    54
    Beiträge
    198
    Vorschlag: Setz mal die Frequenz für die I2C Konmmunikation auf 100kHz oder sogar 50 kHz herunter.
    Mir scheint ausserdem der CPU Takt mit 3,6 MHz zu langsam für eine solch schnelle TWI Frequenz. Hast Du beachtet, dass:

    SCL frequency = CPU Clock frequency / (16 + 2(TWBR) ⋅ 4^TWPS)

    gilt? (siehe Datenbuch)

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    30.11.2004
    Beiträge
    15
    Hi,

    das Problem hat sich mittlerweile erledigt ^^

    Das Problem war, dass ich vor der eigentlichen Hauptschleife eine Schleife hatte, die 500ms dauert. Diese hat wohl irgendwas im SRF02 verzögert, dass er nur manchmal ging. Keine Ahnung, was da genau los war. Auf jeden Fall gehts ohne die Schleife jetzt

    Trotzdem Danke für deine Antwort!

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    30.11.2004
    Beiträge
    15
    Da bin ich noch mal Was mittlerweile neu ist, ist folgendes: Wenn ich Messungen im Bereich < 15cm (die ja ungültig wären) oder > 5m (die gültig wären) mache, dann kommt nichts mehr vom I²C zurück. Er hängt sich quasi hier auf:

    while (!(TWCR & (1<<TWINT)))

    Habt ihr so etwas schon mal erlebt bei dem SRF02?

Berechtigungen

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