-

+ Antworten
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 24 von 24

Thema: AVR-Datenübertragung

  1. #21
    Neuer Benutzer Öfters hier
    Registriert seit
    15.12.2011
    Beiträge
    10
    Danke für die Hinweise, aber leider finde ich keine Schaltpläne oder ähnliches dazu

    mfg
    Dominik

  2. #22
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    657
    Moin Dominik!

    Also, mit einer "wesentlich geringeren" Spannung wirst Du den Mikrocontroller nicht programmieren können. Ein High-Pegel muss schon einen bestimmten, definierten Wert haben.
    Aber einen grundsätzlichen Lösungsansatz hätte ich schon, für den ich allerdings noch zwei Dinge wissen müsste:

    1. Hast Du bedacht, dass beim Deaktivieren der Versorgungsspannung auch der Motor abgehängt wird? Denn den wird auch der dickste Gold Cap ja nicht wirklich mit Leistung versorgen können...

    2. Welche Mengen an Daten möchtest Du übertragen, und wie oft (pro Stunde, Minute oder Tag)?

  3. #23
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    26
    Beiträge
    3.808
    @Sauerbruch
    Die Steuerung soll nicht programmiert werden (im herkömmlichen Sinn mit z.B. ISP) sondern es sollen nur Parameter übertragen werden.

    @blacksnake
    Ich habe einen Link gepostet (mikrocontroller.net) hast du den schon angeschaut? Dort hat auch jemand soetwas Ähnliches gesucht.

    MfG Hannes

  4. #24
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    657
    Im Prinzip kann man 1wire ja auch nachmachen: Wird die Versorgungsspannung kurz unterbrochen entspricht das einer "1", und eine längere Unterbrechung einer "0". Zum Beispiel 1 ms und 2 ms.

    Die Versorgungsspannung wird wie schon beschrieben mit ´nem Kondensator gepuffert, der für so kurze Zeitintervalle aber keine gigantische Kapazität braucht. Wichtig ist natürlich die Diode davor, damit die gemeinsame Spannungs- und Datenleitung auch wirklich auf Low gehen kann, und nicht vom Kondensator auf High gehalten wird.

    Mit diesen kurzen oder längeren Pausen auf der Leitung machst Du folgendes:

    Beide Flanken triggern einen Interrupt. Bei der fallenden (d.h. der Pin ist Low) wird ein Timer gestartet. Bei der steigenden (Pin = High) wird der Timer gestoppt und abgefragt. Ist er weiter gelaufen als in 1 ms, wird ein entsprechendes Bit auf 1 gesetzt, ansonsten auf 0. Anschließend wird der Timer natürlich wieder resettet für die nächste Runde.

    Gleichzeitig kannst Du noch eine Zählvariable bei jeder steigenden Flanke von hochzählen lassen und aus den einzelnen Bits ein Byte bauen. Ist die Zählvaraible 7, ist das Byte fertig, was dem Hauptprogramm mit einem entsprechenden Flag angezeigt werden kann .

    Das ganze mal als Code (Taktfrequenz z.B. 1 MHz, Interrupt = INT0 = PIND.2, 8-bit Timer0):

    Code:
    Config timer0 = timer, prescale = 64  ' Zählt in 1 ms bis ca. 15, in 2 ms bis ca. 30
    
    Dim My_bit as bit  ' Variable für jedes empfangene Bit
    Dim My_byte as byte  ' Variable für das empfangene Byte
    Dim Byte_ready as bit  ' Flag für fertig empfangenes byte
    Dim I as Byte  '  Zählvariable
    
    
    Config INT0 = Change ' Interrupt 0 bei steigender und fallender Flanke
    On INT0 Flanke
    Enable INT0
    Enable Interrupts
    
    Do
    
    If Byte_ready = 1 then
     Byte_ready = 0
     ...   ' Neues Byte empfangen: Was auch immer damit geschehen soll...
     ...
     ...
    End if
    
    
    Loop
    
    
    Flanke:
    If PIND.2 = 0 then ' fallende Flanke
     Start timer0
    Else  ' steigende Flanke
     Stop timer0
     If timer0 < 20 then My_bit = 1 else My_bit = 0
     timer0 = 0 
     My_byte(I) = My_bit
      If I < 7 then ' Noch keine 8 Bits empfangen
       I = I +1
      Else  ' 8 Bits empfangen: Byte fertig!
       I = 0
       Byte_ready = 1
      End if
    End if
    
    Return

    Edit: Und natürlich ein "Return" am Schluss der ISR...
    Geändert von Sauerbruch (29.04.2012 um 19:26 Uhr)

+ Antworten
Seite 3 von 3 ErsteErste 123

Ähnliche Themen

  1. Led Datenübertragung
    Von ng_uhg im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 1
    Letzter Beitrag: 06.01.2009, 16:43
  2. Datenübertragung
    Von Mr.T im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 17
    Letzter Beitrag: 05.12.2006, 23:00
  3. TI-83 Plus Datenübertragung
    Von hacker im Forum Elektronik
    Antworten: 10
    Letzter Beitrag: 27.12.2005, 08:54
  4. IR Datenübertragung
    Von blizzard im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 17.06.2005, 18:59
  5. [ERLEDIGT] IR-Datenübertragung
    Von im Forum Sensoren / Sensorik
    Antworten: 0
    Letzter Beitrag: 12.02.2005, 22:00

Berechtigungen

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