Vor einigen Wochen gelang es mir das Funkmodul RFM12 am ATMega 8 zum funktionieren zu bringen. Nun hatte ich vor, das Modul direkt am Druckerport anzuschliessen. Hierzu verwende ich dasselbe Kabel mit dem ich in der Regel auch den ATMega 8 programmiere sowie diverse andere Hardware steuere die mit entsprechender Schnittstelle daherkommt. Ein Empfänger ist funktionsfähig aufgebaut. Ein Sender ebenfalls. Es gelingt mir nicht, den Sender, der am Druckerport angeschlossen ist, dazu zu bringen, am Empfänger eine Aktion auszulösen. Ich habe den C++ Quellcode, mit dem das Funkmodul am ATMega funktioniert 1:1 in VBScript übernommen. Also ... schon klar was ich da jetzt meine ... Ich möchte wissen: - Reicht der Pegel am Druckerport oder RFM12 nicht? - Hab ich einen Fehler im Quellcode den ich übersehe? - Ist der Druckerport zu schnell? Ich benutze SCK, SDO, SDI und nSEL. nRES liegt an GND, FSK/DATA/nFFS an VDD Der ATMega 8 inklusive RFM12 werden mit 3,6 Volt Lithium Batterie betrieben und funktionieren wie bereits erwähnt. RFM12 am Druckerport mit 3,6 Volt funktioniert nicht.
Hi, ohne deinen Code zu kennen. Also nRES auf GND ist schon mal Müll. Lass den einfach offen. Der LPT liefert 5Volt Signale, das ist bei 3,6Volt Versorgung auch schon mal sehr ungünstig, heisst durch Widerstände runterteilen oder Spannungswandler nehmen. Gruß
Ich muss mich korrigieren, ich verschrieb mich. nRES lag nicht an GND sondern VDD. Nun ist nRES mit der Luft verbunden. Ich habe 1K, 10K und 470 Ohm Widerstände benutzt. Ich habe die Widerstände zwischen die Anschlüsse gelegt (Zwischen LPT und RFM12) und die Anschlüsse mit Widerstand abwechselnd an GND und VDD angeschlossen. RFM12 ist am ATMega8 OHNE zusätliche Bauteile angeschlossen. Abgesehen von der Status-LED. Ich habe RFM12 auch mit 5 Volt betrieben ohne einen Unterschied feststellen zu können. Starte ich das Script ist SDO während der Initialisierung ständig auf 0. Ab dem Zeitpunkt des Schreibens ständig auf 1. Ich kann "ALLE" Bauteile mit 3,6 Volt am Druckerport betreiben. Nur RFM12 nicht. Nebenbei sei angemerkt, dass dem Druckerport hier bereits 1 Volt reicht um sich angesprochen zu fühlen.
Ach Leute, bitte, was soll denn das? Ist das so abwegig was ich hier mache? Bin ich in der falschen Gruppe? Kann mir mal bitte jemand erklären was ich hier falsch mache? Habe ich die Frage falsch gestellt? Habe ich die falschen Worte benutzt? Ich weiss nicht wo ich den Fehler suchen soll und ihr lasst mich hier stehen? Ist das hier so üblich?
daran gedacht das es eine Adresse gibt, die negiert arbeitet ?? Ist ne berühmte Falle. Schau mal hier, villeicht hift es Dir. http://www.activevb.de/tutorials/tut_parallel/parallel.html Wenn es geht, hätte ich gern ne PN. Danke
Nun, dass einige Anschlüsse am LPT negativ sind ist mir bekannt, dem genannten Tutorial jedoch nicht. Ausserdem scheint dieses Tutorial keinen Pin 10 also nACK zu kennen. Ich wundere mich etwas. Wie bereits erwähnt funktionieren andere Bauteile einwandfrei. Beispielsweise MCP4261, DS75, 74HC(T)4021, 24LC1025, ATMEGA8, 16 und andere ... Dann mache ich es mir einfach, werde mich selber beschummeln und verwende nicht mein 5 poliges Programmierkabel. Stattdessen verwende ich einen anderen Anschluss am Druckerport. Mal gucken ob das etwas bringt. Zieht SDO nicht auf masse? Was mache ich hier eigentlich seit Tagen??? Strippen rausrupf So, ab damit ...
Was ich weiss ist, dass ich nACK mit GND oder 5 Volt füttern kann und nACK entsprechend schaltet. Hängt nACK in der Luft hat nACK denselben Wert als würde nACK mit 5 Volt verbunden sein. Zum ATMega 8 und anderen: Der Reset-Pin eines ATMega8 ist ein ActiveLow-Pin. Verbinde ich diesen mit Masse wird Reset gefahren. Verbinde ich diesen mit 5 Volt wird der/die/das FlashROM abgefahren. Lasse ich den Draht in der Luft wird ebenfalls der FlashROM abgefahren. Das der Pin bei mir in der Luft hängt ist Normalzustand. Ansonsten ist dieser mit D ... verbunden, ich hab's jetzt nicht im Kopf und will nicht nachblättern. Zum RFM12: Hänge ich eine LED an SDO von RFM12 und an Masse, so blinkt diese bei Aktivität. Ich nehme an, annähernd VDD-Stärke. Mein Problem ist jetzt folgendes: Ich sehe die LED blinken. Der Pegel sollte also High und Low sein. Warum registriert nACK am Druckerport aber keine Veränderung? nACK liefert die ganze Zeit einen High Pegel. Also ist es so, dass SDO, wenn es nicht aktiv ist, nicht mit Masse gleichwertig ist. High ist 5 Volt aber low ist nichts. Das verhält sich so wie der Reset-Pin des Atmega 8. Allerdings in die andere Richtung gedacht. Was muss ich denn da verdrahten, dass nACK das als GND erkennt? Wie ziehe ich den Pegel denn nun so, das nACK sich dafür interessiert?
>> In Visual-Basic ist es leider nicht vorgesehen, direkt wie in Q-Basic mit >> den Inp/Out Befehlen auf die Schnittstellen zuzugreifen. Schau mal da steht was dazu.. http://www.progshop.com/versand/know-how/parallelport-programmierung.html Hier auch noch was gefunden: http://techref.massmind.org/techref/io/parallel/signals.htm
Hat da jetzt jemand eine Nachricht gelöscht auf die du (Stephan) geantwortet hast oder gilt das mir? Falls das mir galt, auf was genau willst du mich aufmerksam machen? Ich nehme mir jetzt die Zeit einen anderen Pin, wie gestern erwähnt, zu benutzen. Mir will nicht bewusst werden, warum der nACK Pin seinen wert nicht ändert.
@Else, jo war für Dich. Der 2. Link sagt noc einiges zum nACK. sieht irgendwie nach ner offenen Leitung aus. Leiterzüge mal gemssen ??
Mit ausmessen is hier nix. Ich habe kein Messgerät und kann es mir auch nicht leisten. Ich krich hier gleich Schaum ...
@Else, bleib ruhig !! nACK Register: PtrClk Richtung: In Wird low wenn Nibbel gültig ist, wird high als Antwort wenn HostBusy high wird Offene Eingänge werden bis auf wenige Ausnahmen als High interpretiert. Das heist, wenn Du nAck auf Low legst, einliest und kein Low liest, dann ist irgendwo eine Unterbrechung. Hier nochmal eine Deutsche Abhandlung dazu. http://www.fbi.h-da.de/fileadmin/personal/j.wietzke/mein_ordner/GINF/Uebungen/Ginf_II/parallelport.pdf
die ersten Tests sollten doch sein die Ausgänge (langsam) zu setzen und zu kontrollieren ob die richtigen Pegel ankommen. Dazu reicht ein billiges 5€ Messgerät oder eine LED mit Vorwiderstand. Und die Eingänge lassen sich genauso mit statischen Pegeln versorgen und über eine Testroutine einlesen. Wenn das ok ist dann bliebe die Frage ob die Pulse zu kurz sind, da wäre ein (Speicher) Oszi natürlich eine gute Hilfe, es geht aber auch mit der LowCost Lösung die Soundkarte zu nutzen (dazu gibts hier im Forum eine Menge Hinweise).
Wenn ich nACK händisch auf Masse lege ist da ja null. Dass SDO etwas von sich gibt erkenne ich ja auch mit einer LED, die dann jede Sekunde blinkt, in der ich etwas senden will. SDO zieht nACK scheinbar jedoch nicht genügend herunter. Ich habe da schon mit den verschiedensten Widerständen gegen Masse gearbeitet um genug zug zu erzeugen. Aber irgenwie will das nicht. Hat nicht mal jemand lust das nachzubauen um das bestätigt zu sehen? Ich verwende das billigste ISP Kabel das es gibt: SUBD25 an 5 polig Strippe. Ich habe da sogar schon mit Transistoren gearbeitet. Ich stellte heute morgen die Funktion RF12_Trans in mein Script etwas um. Ich weis nicht was mich da geritten hat die Clock auf high zu setzen nachdem ich den Eingang abfrage. Mir ist bekannt, dass ich den Ausgang einstellen muss, Clock aktiviere, Eingang lese und Clock wieder deaktiviere (Do, CLK 1, DI, CLK 0). CPOL und CPHA kenne ich, sollte beides 0 sein wenn ich das richtig sehe. Somit wäre das was ich ATMega 8 gemacht habe auch nicht in der richtigen Reihenfolge, funktionierte aber. (DO, DI, CLK 0/1) Zwischendurch schien sich da am Pegel auch etwas zu verändern, Aber das war dann eher rein zufällig wie sich herausstellt, nichts sich wiederholendes. Ich kann mir nicht vorstellen, dass das Script zu schnell ist. Mich überkommt langsam das Gefühl, dass ich ganz bestimmt nen richtig dummen Fehler mache den ich nicht sehen kann/will.
Ich habe mir die ganze Nacht über auch noch die Mühe gemacht, mit einem ATTiny2313 eine Brücke zu bauen (siehe Anhang), in der Hoffnung, das Verhalten erzeugen zu können wie beim ATMega8, der mit den Modulen funktioniert. Ich hoffte also damit das Problem überwinden zu können. Dem war nicht so. Ich glaub, ich sollte das Programm des ATMega8 auf den ATTIny bringen und dem eine SPI Schnittstelle verpassen das erst alles so sammel wie ich es dem RFM12 geben will. Also erst volle 16 Bit rein, und dann volle 16 Bit raus. Also 32 Bit SPI. Ach ist diese Bastelei manchmal kompliziert.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.