mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMEGA8 SPI doppelt verwenden?


Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
bin neu hier und werde auch gleich mal einen account erstellen. Find das 
Forum echt super ;)

Ich bin dabei mit einem ATMEGA8 einen Wecker aufzubauen und habe einen 
leichten Mangel an I/O-Pins. Jetzt ist meine Frage, ob ich zur Laufzeit 
(Trotz SPIEN Fuse) die SPI-Pins zu normalen Inputs umschalten und 
spaeter wieder zurueckschalten kann?
Dann koennte ich diese alle 24Std als input fuer einen DCF77 empfaenger 
nutzen und sonst stuenden sie zum programmieren zur verfuegung...

Vielen Dank schonmal,
philipp

Autor: Avr Nix (avrnix) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Suche mal nach Porterweiterung und / oder 74*595 , 164., 165

Wieso brauchst du soviele PINs für was ?

LCD 4 Bit +2 = 6 Ltg paar tasten sagen wir mal 3-4 = 10 Ltg

2Pins für Quarz ein Pin für Summer 1Pin über 10k an Reset also da 
beleiben noch welche übrig ;)

SPI ist ein Bus - du kannst dort also mehrere Porterweitung anschliesen.

Autor: Philipp F. (nerdture)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja der Wecker ist eigtl. hardwaremaessig schon fertig. Bloss wollte ich 
noch DCF-Empfang hinzufuegen, weil er nicht so genau ist...
Ich brauche soviele Pins, weil ich 7-Segment LED Anzeigen (gepulst) ohne 
controller o.ae. ansteuere und weil ich noch einen Sprachspeicherchip 
ansteuere, der verschiedene Wecknachrichten abspielt :)

Aber meine Frage war, ob ich von der Software aus einfach die SPI pins 
umstellen kann (und anschliessend zurueck, sodass dann wieder ISP 
moeglich ist).

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Philipp (Gast)

>(Trotz SPIEN Fuse) die SPI-Pins zu normalen Inputs umschalten und
>spaeter wieder zurueckschalten kann?

Die Pins für ISP sind normal nutzbar.

>Dann koennte ich diese alle 24Std als input fuer einen DCF77 empfaenger
>nutzen und sonst stuenden sie zum programmieren zur verfuegung...

Man muss nur aufpassen, dass währen der Programmierung nicht Ausgänge 
gegeneinander treiben. Also dein Ausgang von DCF77 Empfänger muss 
während der Programmierung deaktiviert oder getrennt werden. Das kann 
man z.B. mit einem  74HC126 machen, wobei das Steuerpin mit am Reset 
hängt. Meist reicht es aber auch, durch Längswiderstände den Ausgang zu 
entkoppleln. Also vom DCF77 Empfänger über 1..10 kOHm an den AVR zu 
gehen.

MFG
Falk

Autor: Philipp F. (nerdture)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>(Trotz SPIEN Fuse) die SPI-Pins zu normalen Inputs umschalten und
>>spaeter wieder zurueckschalten kann?
>
> Die Pins für ISP sind normal nutzbar.

Das waere natuerlich genial, aber das hatte ich einfach ausgeschlossen, 
weil woher soll der Chip denn sonst wissen, dass er jetzt programmiert 
werden soll, wenn die PINs als normale universell einsetzbare Ein- und 
Ausgaenge verwendet werden? Das versteh ich nicht ganz...

Autor: TorstenS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Philipp,

lies mal im Datenblatt das Kapitel über ISP. Dort erfährst du auch, dass 
das RESET-Signal zum Aktivieren genutzt wird.

Tschüss
Torsten

Autor: Philipp F. (nerdture)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe jetzt nocheinmal im Datenblatt gesucht aber nichts gefunden. 
Aber vielen Dank fuer die Hilfe, dann kann ich die Pins ja ganz normal 
ueber das DDRB Register als Input setzen und mit PINB auslesen.. ;)

Autor: Dell (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hol den uralten Beitrag mal wieder hervor, um nichts neues 
aufzumachen.

Der TE wollte die SPI Pins ja wohl n´zum ISP-Programmieren nutzen, als 
auch als GPIOs.

Meine Frage wäre ähnlich:

Wenn ich meinen Atmega32 über SPI (USBTinyISP Programmer) programmiere, 
kann ich dann diese Pins auch als SPI Interface für Peripherie nutzen?

Beispiel:

Ich programmiere den uC auf einem seperaten Board. Anschließend setze 
ich meinen uC in einen neuen Schaltkreis. Kann das SPI Interface nun 
ohne einschränkungen genutz werden?
Muss ich die entsprechende Fuse ändern?

Einige Geräte bieten leider nur SPI an. Habe ich nun also die 
möglichkeit diese geräte zu betrieben, ohne größeren hardwareaufwand, 
timing-probleme beim proggen oder sonst was?

Wie gesagt: wenn ich dne uC auf einem seperaten Board programmiere habe 
ich ja auch kein Problem mit möglichen treibenden Ausgängen der 
angeschlossenen peripherie.

LG

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dell schrieb:
> Ich hol den uralten Beitrag mal wieder hervor, um nichts neues
> aufzumachen.

Wäre aber angebrachter gewesen, denn es ist eben doch ein anderes
Problem.

Wenn du weitere Fragen hast, dann tu dies also bitte.

> Kann das SPI Interface nun ohne einschränkungen genutz werden?

Die Einschränkungen geben deine Peripheriegeräte ggf. vor: während
des ISP floaten alle Pins des Controllers, damit auch alle die, die
als /CS für die Peripherie genutzt werden.  Die Peripherie könnte
sich daher vom ISP „angesprochen“ fühlen, sofern man nicht deren
/CS-Leitungen mit einem externen Pullup versieht.

> Muss ich die entsprechende Fuse ändern?

Welche?  SPIEN?  Keinesfalls!  Danach würde ja kein ISP mehr
funktionieren.  (Die lässt sich übrigens über ISP nicht ändern.)

: Bearbeitet durch Moderator
Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dell schrieb:
> Wenn ich meinen Atmega32 über SPI (USBTinyISP Programmer) programmiere,
> kann ich dann diese Pins auch als SPI Interface für Peripherie nutzen?
Ja.

> Ich programmiere den uC auf einem seperaten Board. Anschließend setze
> ich meinen uC in einen neuen Schaltkreis. Kann das SPI Interface nun
> ohne einschränkungen genutz werden?
Ja.

> Muss ich die entsprechende Fuse ändern?
Nein.
Lies mal den Abschnitt "In System Programming" des Datenblatts. Dort 
steht, dass wenn der Reset aktiv ist, diese SPI-Pins zum Programmieren 
des uCs verwendet werden. Bei manchen Controllern sind es auch andere 
Pins...

> Habe ich nun also die möglichkeit diese geräte zu betrieben, ohne
> größeren hardwareaufwand, timing-probleme beim proggen oder sonst was?
Wenn dein uC im Zielsystem ist, dann darf im Reset keine Komponente an 
den SPI-Pins herumzerren. Dann kannst du diese Pins für die 
IS-Programmierung verwenden. Aber wie schon gesagt: das steht alles in 
aller Ausführlichkeit im Datenblatt...

Autor: Alexander F. (alexf91)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dell schrieb:
> Wenn ich meinen Atmega32 über SPI (USBTinyISP Programmer) programmiere,
> kann ich dann diese Pins auch als SPI Interface für Peripherie nutzen?

Ja, das ist möglich.
Fuses müssen dazu keine umprogrammiert werden, d.h. du kannst den 
Controller extern programmieren und dann einfach in die Schaltung 
einsetzen.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dell schrieb:

> Wenn ich meinen Atmega32 über SPI (USBTinyISP Programmer) programmiere,
> kann ich dann diese Pins auch als SPI Interface für Peripherie nutzen?

Selbstverständlich.
Solange sich die Peripherie weder vom ISP aus dem Tritt bringen lässt 
noch selbst aktiv an den Pins rumpfriemelt.

Was dem TO gefehlt hat ...
> ... weil woher soll der Chip denn sonst wissen, dass
> er jetzt programmiert werden soll ...
... ist, dass der Programmer den µC mittels der RESET Leitung in einen 
Reset zwingt und nur dann ist das ISP aktiv.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.