-         

Ergebnis 1 bis 10 von 10

Thema: Wie viel Sachen kann ein Atmega 2560 "gleichzeitig" machen

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    26.07.2010
    Beiträge
    24

    Wie viel Sachen kann ein Atmega 2560 "gleichzeitig" machen

    Anzeige

    Hallo,

    ich habe bereits eine Maschine, die durch Interrupts zeitgesteuert einen Motor antreibt. Daneben besitzt das Board ein LCD Display und ein paar Taster zur "Programmierung" wann der Motor sich bewegt, wie weit und so weiter.

    Nun möchte ich sie über RS232 mit einer Waage verbinden, die ständig die aktuellen Werte sendet und auf eine SD-Karte aufzeichnen. Daneben möchte ich die Steuerung über das Display und die Tasten durch ein XBee Modul ersetzt um die Einstellungen für den Motor per Funk vornehmen zu können.

    Ist es möglich, dass ein Atmega "gleichzeitig" (ich weiß multitasking kann er nicht) zwei UARTS (eins für das XBee und eins für die Daten von der Wage) abhört, aller x Minuten einen Schrittmotor Befehle gibt und auf SD aufzeichnet was die Wage an Daten sendet?

    Ich habe gelesen, dass das schreiben in den EEPROM durch Interrupts gestört werden kann. Ist das beim Schreiben auf die SD genauso? Ich könnte die Interrupt gesteuerte Motorbewegung auch durch eine Echtzeituhr ersetzten und diese konstant auslesen um den Interrupt zu umgehen.

    Sollte ich das SD-Modul und die Auslesung der RS232 Schnittstelle einem separaten Controler übergeben?

    Danke für Euche Hilfe.

    Robert

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    28
    Beiträge
    3.517
    Blog-Einträge
    9
    Wenn du FAT32 oder so auf der SD-Karte haben möchtest kannst du das mit einem Mega32 schon knicken. Für ne SD-Karte die man ohne Probleme am PC Auslesen kann brauchst du mindestens einen Mega128, da der die mind. Anforderungen an die RAM-Größe erfüllt.
    Generell kann alles durch Interrupts gestört werden, da ein Interrupt das laufende Programm unterbricht. Und wenn du nicht nur 1 Zeichen auf die Karte schreiben willst dauert das schreiben etwas länger. Du musst bedenken der Controller schreibt jedes zeigen einzelnt und wenn zwischendurch ein Interrupt kommt ist der ganze Schreibvorgang gestört.
    Die Frage ob du für die UART und die SD-Karte nen einzelnen Controller nimmst kann man nicht so direkt beantworten, da man nicht weiß wie oft der UART benutzt werden soll. Für die SD-Karte brauchst du definitiv mind. nen Mega128 und wenn die UART Kommunikation nur etwa 1x alle paar Sekunden ist, ebenso wie das beschreiben der Karte(die man eh nur alle paar Minuten oder Stunden beschreiben sollte oder auf Abruf, da so eine Karte nur max. 10000x beschrieben werden kann) sollte das für einen Mega128 kein Problem darstellen. Das übergeben der Daten vom UART und für die SD-Karte zwischen den Controllern würde ich dann in I2C machen.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.556
    Zitat Zitat von Kampi Beitrag anzeigen
    Wenn du FAT32 oder so auf der SD-Karte haben möchtest kannst du das mit einem Mega32 schon knicken. Für ne SD-Karte die man ohne Probleme am PC Auslesen kann brauchst du mindestens einen Mega128, da der die mind. Anforderungen an die RAM-Größe erfüllt.
    Generell kann alles durch Interrupts gestört werden, da ein Interrupt das laufende Programm unterbricht. Und wenn du nicht nur 1 Zeichen auf die Karte schreiben willst dauert das schreiben etwas länger. Du musst bedenken der Controller schreibt jedes zeigen einzelnt und wenn zwischendurch ein Interrupt kommt ist der ganze Schreibvorgang gestört.
    Die Frage ob du für die UART und die SD-Karte nen einzelnen Controller nimmst kann man nicht so direkt beantworten, da man nicht weiß wie oft der UART benutzt werden soll. Für die SD-Karte brauchst du definitiv mind. nen Mega128 und wenn die UART Kommunikation nur etwa 1x alle paar Sekunden ist, ebenso wie das beschreiben der Karte(die man eh nur alle paar Minuten oder Stunden beschreiben sollte oder auf Abruf, da so eine Karte nur max. 10000x beschrieben werden kann) sollte das für einen Mega128 kein Problem darstellen. Das übergeben der Daten vom UART und für die SD-Karte zwischen den Controllern würde ich dann in I2C machen.
    Ich habe einen RS232 > USB Stick Adapter (Vilcum)der hat eine FAT intern, klappt ganz gut. Ach und kein µC kann etwas "gleichzeitig" die Arbeiten alle sequenziell, wenn einige Aufgaben nicht gestört werden dürfen muss der Programmierer mit geschickten Code dafür sorgen. Einige Daten Abrufen, Speichern u.s.w. ist aber nicht wirklich ein Problem, zur Not kann man im Simulator sehen was wie fiel Zeit braucht und die Programm Abschnitte entsprechend "sortieren".

    Gruß Richard

  4. #4
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Das klingt alles nicht so als würde es viel Rechenzeit brauchen. Damit sollte es eigentlich so funktionieren, erfordert aber wohl eine gute Planung des Programms. Eigentlich wird das EEPROM nicht durch einen Interrupt gestört - es ist so das man in einer ISR nicht gut auf das EEPROM zugreifen kann, weil der Zugriff relativ langsam ist. Das ist aber ein lösbares Problem, erfordert aber ggf. eine zusätzliche ISR für das EEPROM.

    Es könnte mit dem RAM knapp werden, weil die SD Karte oft viel RAM für Puffer (z.B. FAT) braucht.

  5. #5
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    28
    Beiträge
    3.517
    Blog-Einträge
    9
    Ich meine ich hätte bei Watterrot auch nen SD Adapter gesehen wo bereits ein Controller drauf sitzt der die Sachen auf Karte schreibt. Sicher bin ich aber nicht, müsste ich nochmal suchen. Und Richard den Adapter den du meinst kenn ich, ich benutz ihn selber
    Der wäre natürlich eine alternative wenn man statt Karte lieber nen USB-Stick benutzen will da der Adapter nur eine UART-Schnittstelle braucht und man den mit einfachen Textbefehlen bedienen kann.

    Edit:
    Hab's gefunden. Hier das meint ich:
    http://www.watterott.com/de/uALFAT-MicroSD-Board
    Geändert von Kampi (04.09.2011 um 17:23 Uhr)

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    Kein Computer kann irgendwas gleichzeitig ... es läuft immer auf Multitasking hinaus. Bei den kleinen µC spricht man da von einer State-Machine.
    Davon abgesehen sind die Interrupts schon sehr mächtig, also ne RS232 abhören macht der AVR nebenher in Hardware, das Verarbeiten dann in Software
    und das Senden ggf. auch wieder in Hardware ... ich halte die Geschichte für machbar.

    Beispiel: In meinem "größten" Projekt macht n Mega128 das Multiplexing von 5 16-Segemnent-Anzeigen, RS485-Protokoll, externen AD-Wander, Externe RTC, 2 PWM-16Bit 400Hz, Tastenabfrage 2x3-Matrix, diverse Regelungen usw. usw. ... Die Dinger können schon was wuppen.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    26.07.2010
    Beiträge
    24
    Danke für die Antworten! Es scheint also schon machbar zu sein (abhängig von meinen Fähigkeiten ). Da kommt mir noch eine Idee in den Sinn, die neuen Atxmega Chips habe doch einen DMA support. Würde das Schreiben auf SD-Karten dadurch weniger "kompliziert" werden?

    Für jetzt (da ich den ATMEGA 2560 schon habe) finde ich das uALFAT-MicroSD-Board das Kampi vorgeschlagen hat eine sehr gute Idee.

    Dank Euch.

    Viele Grüße

    Robert

  8. #8
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    28
    Beiträge
    3.517
    Blog-Einträge
    9
    Nein soweit ich weiß ist dieser DMA Support nur für RAMs da. Die SD-Karte wird per SPI beschrieben. Wichtig ist auch das du daran denkst das die Karte mit 3,3V arbeitet. Nicht vergessen!

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    33
    Beiträge
    2.383
    moment ist der DMA Mode nicht für einen Beipass von Daten gedacht um sie nicht lästig über die CPU laufen zu lassen sondern direkt aus dem Speicher an einen Port zu geben oder an das SPI ??? Interessanter Gedanke zumindest aber macht die Übertragung nur minderschneller, weil man nur Blockweise schreiben kann und danach immer wieder die Befehlssequenz fürs Schreiben neu senden muss
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  10. #10
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    28
    Beiträge
    3.517
    Blog-Einträge
    9
    Stimmt hast recht.....habs mir gerade nochmal im Datenblatt durchgelesen. Sorry mein Fehler hatte es falsch in Erinnerung.
    Das hier steht im Datenblatt:

    The XMEGA A1 has a Direct Memory Access (DMA) Controller to move data between memories
    and peripherals in the data space. The DMA controller uses the same data bus as the CPU to
    transfer data.

    Aber der Gedanke ist gut....mal morgen einen Arbeitskollegen fragen ob das möglich ist.....

Ähnliche Themen

  1. "PIR D203S" was ist das, was kann man damit machen
    Von bnitram im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 18.04.2011, 16:38
  2. RN-Mega 2560 mit AVR MKII "flashen"
    Von Lurchi im Forum AVR Hardwarethemen
    Antworten: 0
    Letzter Beitrag: 13.02.2010, 16:48
  3. zwei Sharp IR Sensoren "gleichzeitig"
    Von KayH im Forum Sensoren / Sensorik
    Antworten: 10
    Letzter Beitrag: 28.12.2007, 14:21
  4. Portpin "gleichzeitig" als Ein-und Ausgang nutzen?
    Von dl1akp im Forum AVR Hardwarethemen
    Antworten: 6
    Letzter Beitrag: 28.09.2007, 22:09
  5. ASM: was machen "swap" und "cbr" genau?
    Von RHS im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 18.08.2004, 18:16

Berechtigungen

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