mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme mit SPI und RFM12


Autor: Sebastian (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein Assemblerprogramm geschrieben um Daten an das RFM12-Modul 
zu senden. Das Senden der Daten über die SPI-Schnittstelle funktioniert 
aber nur wenn kein Funkmodul angeschlossen ist. Ich habe schon mehrere 
Module und Controller ausprobiert, aber Das Problem tritt immer auf. 
Ohne RFM12 läuft das Programm auch nur an wenn ich längere Zeit den 
Resettaster gedrückt halte. Die Module sind folgendermaßen verbunden:

MOSI --> SDI
MISO --> SDO
SCK  --> SCK
SS   --> nSel
PB3 --> nIRQ (zur Erkennung dass das Modul bereit ist zu senden, habe 
ich auch
              schon mal direkt auf Masse gelegt, ohne Erfolg)


Zum Flashen benutze ich das Evaluationboard von Pollin und PonyProg.
Prozessor: ATMega32.

Das Komische daran ist, dass einfache Programme wie die Ausgabe eines 
Rechtecksignals einwandfrei funktionieren ohne dass ich den Resetbutton 
drücken muss.

Kann es vielleicht sein, dass das Eva-Board mir die uC schießt ? Im 
Datenblatt des Controllers steht, die max. negative Eingangsspannung an 
den PortPins dürfe nur -0,5V betragen. Durch den RS232 / TTL 
Pegelwandler liegen jedoch bis zu -0,7V an (Dieser besteht nämlich nur 
aus Widerstand un d einer Diode gegen Masse)

Das Problem klingt vielleicht ein bisschen komisch, aber ich zerbreche 
mir schon Stundenlang den Kopf darüber..

P.S: Das Programm habe ich beigefügt

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Sebastian (Gast)

>zu senden. Das Senden der Daten über die SPI-Schnittstelle funktioniert
>aber nur wenn kein Funkmodul angeschlossen ist. Ich habe schon mehrere

Also funktioniert es nicht!

>Module und Controller ausprobiert, aber Das Problem tritt immer auf.
>Ohne RFM12 läuft das Programm auch nur an wenn ich längere Zeit den
>Resettaster gedrückt halte. Die Module sind folgendermaßen verbunden:

???

>Kann es vielleicht sein, dass das Eva-Board mir die uC schießt ? Im

Unwahrscheinlich, wenn du keinen Verdrahtungsfehler drauf hast.

>Datenblatt des Controllers steht, die max. negative Eingangsspannung an
>den PortPins dürfe nur -0,5V betragen. Durch den RS232 / TTL
>Pegelwandler liegen jedoch bis zu -0,7V an (Dieser besteht nämlich nur
>aus Widerstand un d einer Diode gegen Masse)

???
Dadurch entstehen keine negativen Spannungen.
Hast du Masse verbunden?

MfG
Falk

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falk Brunner wrote:
>>Datenblatt des Controllers steht, die max. negative Eingangsspannung an
>>den PortPins dürfe nur -0,5V betragen. Durch den RS232 / TTL
>>Pegelwandler liegen jedoch bis zu -0,7V an (Dieser besteht nämlich nur
>>aus Widerstand un d einer Diode gegen Masse)
>
> ???
> Dadurch entstehen keine negativen Spannungen.
> Hast du Masse verbunden?

Doch, wenn die RS232 TxD Leitung vom Computer auf -12V liegt.

Oh mann, wieso macht man denn sowas? Sowas ist natürlich völlig tabu. 
Benutze was anständiges ala MAX232.

Autor: Gerd G. (elektrikser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für RS232 ist auf dem Funk-Evaluationsboard von Pollin schon ein Max232 
verbaut. Als ISP wird eine Transistorschaltung verbaut, die von RS232 
wandelt.

Was mich an dem Board stört, ist die Versorgung des RFM12. Warum glaubt 
man, dass ein Optokoppler den Strom für den RFM12 liefern kann?

Gruß Gerd

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antworten,

ich werde mal versuchen die neg. Spannung am Eingang des uC mit einer 
Diode zu blocken. Müsste doch eigentlich funktionieren. Der High-Pegel 
wird halt dann um 0,7V gesenkt..

Aber warum läuft das Programm nur wenn der uC einen Reset bekommt ? Habt 
ihr euch mal das Programm angesehen ? Gibt es vielleicht einen 
Grundlegenden Fehler ?

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich habe die SPI jetzt zum Laufen gebracht. Es gab wohl einen Fehler in 
der Initialisierung des Controlregisters.

Zum Testen versuche ich nun das Statusregister des RFM12-Moduls 
auszulesen. Leider  kann man aus dem Timingdiagramm im Programmers-Guide 
nicht erfahren mit welcher Frequenz der SCK-Eingang getaktet werden 
muss. Derzeit nutze ich den internen RC-Oszillator mit 1MHz und einen 
Taktteiler von 128, also ca 8kHz am SCK-Ausgang. Aber eigentlich dürfte 
es doch nach unten keine Grenzen geben, oder ?

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe den Fehler gefunden: Der nSEL-Pin muss nach der Übertragung des 
Datenwortes kurz auf High gelegt werden damit die Informationen 
übernommen werden. Ich hätte mir das Datenblatt wohl genauer ansehen 
müssen. Apropos Datenblatt: Ich habe mich bisher immer mit dem 
Datenblatt fürs RFM12-Modul abgegeben, dabei ist das RF12-Datenblatt 
viel detaillierter, welches ich leider viel zu spät entdeckt habe.

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.