Einfaches u. schnelles Protokol evtl. mit Schieberegister?

Gast #111926
Hallo,

ich beschreibe erstmal mein Projekt: Ich will einen ATtiny zur
Analogwandlung verwenden da dieser ja 11 Kanäle für den ADC hat, naja
einer fällt durch den Resetpin wieder weg also hätte ich 10 ADC Kanäle
und 4 normale IO Pins zur Verfügung. Der ATtiny soll fortlaufend die
Kanäle umwandeln dabei werden je nach Priorität manche Kanäle z.b. nur
bei jedem 10ten druchlauf gewandelt damit die wichtigen Kanäle
schneller aktualisiert werden, die Werte sollen dann in einzelne
Register abgelegt werden und bei einer Anfrage eines ATmega8535
ausgegeben werden. Für diese Anfrage und Ausgabe habe ich nur 4 Pins zu
Verfügung. Es soll eine möglichst schnelle und einfache Möglichkeit
gefunden werden die Daten zu übertragen. Ich habe mir gedacht  so
vorzugehen. Der Atmega sendet seine Abfrage 4bit für die Kanalauswahl
an 2 Pins des ATTinys also 1001 wird in 2 Schritten übertragen z.b. 10
und dann nochmal 01, damit der ATTiny weiß welche Werte gewünscht sind.
Dieser hat jetzt noch 2 Pins übrig. Die einfachste Lösung für mich wäre
eine Schieberegister zu verwenden in welches die 8Bit Daten
reingeschoben werden und bei einen High Befehl an 8 Pins des ATMega's
ausgegeben. Habe ich die Funktion des Schieberegisters richtig
verstanden oder braucht dieser mehr als nur einen Startbefehl, den ich
durch den letzten Pin auslösen könnte.

Ich favorisiere diese Lösung weil sie mit sehr wenig Programmieraufwand
zu verwirklichen wäre. Und die Übertragung auch sehr schnell geht, wenn
man das Schieberegister mit z.b. 125nS pro Bit betreiben kann dann
wären das ca 12x125nSek von der seriellen Eingabe bis zur paralellen
Ausgabe des Schieberegisters und der ATmega kann den Port dann auch
sehr schnell und sehr einfach zur Weiterverarbeitung einlesen.
Gast
Hallo,

weil der programmieraufwand zu hoch ist für ein Schieberegister müsste
ich nur die Impulslangen durch schleifen einstelen und gut.
Ist meine Vorstellugn eines Schieberegisters richtig oder funktionieren
die doch etwas aufwändiger?
Gast
Lies mal die Datenblätter/SPI-Interface. Da gibt es nicht viel zu
programmieren. Du brauchst dich weder um die Serialisierung des Byte
noch um die Takterzeugung kümmern. Byte reinschreiben und husch - weg
ist es. Weiterer Riesenvorteil: der MC bleibt frei für andere Aufgaben,
während er bei der Software-Serialisierung/Sendung für die Dauer der
Übertragung blockiert ist.
Gast
Hallo,

es soll halt die Analog/Wandlung auf einen 2ten AVR ausgelagert werden,
damit der immer die Werte vorrätig hat und man weder drauf warten muss
noch durch einen Interrupt gestört wird. Außerdem wäre das ganze für
mich einfacher zu programmieren und ich hätte statt 8 Analogeingänge 10
Stück.
Gast
Hallo,

leider hat der ATtiny keine USART-Einheit sonst wärs ja kein Problem.
Aber mir gefällt eine parallele Lösung im allgemeinen ganz gut leider
braucht man einen ganzen 8bit BUS
Gast
Kann mir nur vorstellen, das Du den ATTiny26 meinst da dieser der
einzige mit 11 ADC-Channels ist.
Der hat einen USART im 2- oder 3-Wire Mode an PB0, PB1 und PB2 (DI, DO
und SCK).
PB0 - PB2 sind auch ohne ADC-Funktion also verlierst Du keinen
ADC-Channel.
Alles weitere zwecks USART steht ab Seite 63 im PDF.
Des weiteren dauert eine AD-Konvertierung sowieso ca. 0,2mSek da der
ADC-Clock nicht höher als 200KHz sein sollte und eine Konvertierung 25
ADC-Clocks dauert.
Und wenn zwischen zwei Messungen eine serielle Übertragung statt findet
ist das nicht der Rede wert.

Gruß
Andi

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.