Datum: 16.04.2007 10:27
Dieses Programm steuert ein RFM12 Funkmodul an, und sendet/empängt einen Datenblock einstellbarer Länge. Es ist keine Fehlerkorrektur oder ähnliches vorhanden. Die gesamte Hardwareansteuerung wird von der Software in der RF12.c erledigt, ebenso das Ein/Ausschalten von Sender und Empfänger. Man muss also nur das Modul initialisieren, die ganzen Parameter einstellen und kann direkt senden oder empfangen. Der Takt am CLK Pin ist auf 10MHz eingestellt, damit man damit z.B. den AVR damit versorgen kann. Um den Schaltungsaufwand klein zu halten, benutze ich nicht den Interrupt Pin sondern Polle das Interrupt Bit im Status Register. Dadurch kommt man mit nur 4 Pins aus (SPI + Chipselect). Da alles ohne speziellen Hardwarefunktionen läuft, sollte die Software auf jedem AVR (mit SRAM) lauffähig sein. Der FSK/DATA/nFFS Pin muss über einen Pullup (z.B. 1-10k) an VDD gelegt werden, damit alles richtig funktioniert. Alle anderen, in der Software nicht aufgelisteten IO Pins des Moduls, werden auf Ausgang geschaltet und brauchen daher nicht angeschlossen zu werden. Die meisten der Einstellungen habe ich irgendwo in die Mitte gesetzt. Für eine optimale Datenrate und Reichweite muss man mit Sicherheit noch ein paar Details anpassen.
Datum: 16.04.2007 11:46
Heul, schade nicht in Bascom. Könnte es ein C-Versteher den Code in Bascom übersetzen, oder wenigstens ein Flußdiagramm schreiben. Hätte vielleicht auch ein ASM-Freak was davon. Bitte bitte
Datum: 16.04.2007 12:39
Hallo, meine Module sind leider noch nicht da :-/ Ich habe mir gerade mal Dein Programm angesehen und frage mich gerade warum Du bei "void rf12_init(void)" :
for (unsigned char i=0; i<10; i++) _delay_ms(10); |
statt z.B.:
_delay_ms(100);
|
genommen hast ? Denke mal Du hast einfach solange probiert, bis die passende Delay-Zeit erreicht war ? Ich habe einige hahnebüchene Fehler in den Code-Beispielen bei Pollin und Hope entdeckt :-? Woher hast Du Deine Infos ? Aus den Hope-Datenblättern, die sind ja auch ziemlich neben der Reihe :-? Ich wollte mit einem RFM01 und RFM02 eine kleine Funkfernsteuerung bauen. Jetzt Frage ich mich, ob Dein Code auch auf einem Tiny13 läuft oder zu groß wird ? In Assembler bin ich nämlich nicht so fit :-P Danke für Deinen Code ;-)
Datum: 16.04.2007 13:01
Der Grund wiso delay(100ms) nicht funktioniert: Delay ist eine Schleife mit 16bit Zähler. Diese kann je nach CPU Takt nicht länger als einige 10ms werden. Bei 20MHz sind daher nur 13,1ms möglich. Falls die Software nicht richtig laufen sollte: Eventuell muss die Delay Zeit vergrößert werden, denn 100ms braucht das Modul nach dem Einschalten bis es Befehle ausführen kann. Die Datenblätter von den Modulen und die Beispielcodes sind nahezu kompletter Mist. Programmiert habe ich das ganze nach den Datenblättern der einzelnen ICs, die weitaus besser und vor allem fehlerfreier sind: http://www.hoperf.com/pdf/RF01.pdf http://www.hoperf.com/pdf/RF02.pdf http://www.hoperf.com/pdf/RF12.pdf Das RFM12 Programm hat nicht ganz 800Bytes (RFM12 Routinen + main mit Initialisierung auf einem tiny2313). Der Code ist nicht auf Codegröße optimiert, sondern so dass es erstmal funktioniert. Da kann man mit Sicherheit noch einiges verbessern. Die RFM01 und RFM02 Routinen sind etwas kleiner, da bei diesen ja nur Senden oder Empfangen benötigt wird.
Datum: 16.04.2007 14:00
Danke für die Erklärung und die Datenblätter ;-) Soweit ich das jetzt verstanden habe, müßte ich den RF02-Sender mit zwei Steuerleitungen SCK und MISO betreiben können, da es nur einen Sender gibt kann ich doch nSel direkt auf GND legen, sowie FSK mit Pullup gegen Vcc. Oder übersehe ich da was ? Meine Idee ist im Tiny13 den aktuellen Zustand des zu steuernden Geräts zu speichern und kontinuierlich abzusenden. Ich denke diese Lösung ist am sichersten ;-) Oder gibt's da bessere Varianten ?
Datum: 16.04.2007 14:27
Bei dem RF02 Sender ist das etwas komplizierter: Im Gegensatz zum RF12 besitzt dieser kein Sende FIFO. Man muss die Bits also im Takt der Baudrate entweder an den FSK oder an den SDI Pin legen (ist per Befehl umschaltbar). Den FSK Pin braucht man also nicht unbedingt, aber der SDO/IRQ Pin ist notwendig, denn an diesem gibt der RF02 den Takt der Baudrate an. Bei jeder fallenden Flanke von diesem wird das Bit an FSK oder SDI eingelesen und gesendet. Momementan polle ich die Leitung noch, später möchte ich das aber per Interrupt oder per USI/SPI im Slave mode machen, denn der IRQ Pin ist nur für 1,6us high. Wenn da ein Interrupt dazwischen kommt, gehen Bits verloren. nSEL kann man nicht auf GND legen, denn damit wird u.a. die Übertragung beendet. Ich habe gerade eine Testplatine mit einem RF02 aufgebaut, im Laufe des Tages werde ich also die Software dafür fertig testen können und diese dann hier rein stellen.
Datum: 16.04.2007 15:28
Hier nun dasselbe für den RF02 Sender. Funktioniert ähnlich, ist aber etwas einfacher (da nur Senden), und kleiner (rund 650Bytes inkl main). Ein Nachteil hat das ganze aber: Während die Senderoutine läuft, darf kein Interrupt auftreten, also Interrupts während dem Senden abschalten. Eine bessere Lösung wäre, die Senderoutine selbst teilweise in einen Interrupt zu packen (USI, SPI, INT), aber das würde dann nicht mit allen AVRs funktionieren, daher erst mal die einfache Lösung.
Datum: 16.04.2007 19:58
Und hier die Software für den Empfänger RF01.
Datum: 16.04.2007 21:01
Na, da tut sich auch bei Pollin was. Die C-Programme com Sender/Empfänger sind jetzt vom 16.4.07 8:45.
Datum: 16.04.2007 21:15
Oder auch nicht: Den einzigen Unterschied den ich sehe ist, dass das Wort "Pinbelegung" hinzukam.
Datum: 16.04.2007 21:23
verkauf ihnen doch deine Verion xD
Datum: 16.04.2007 22:32
Hallo Benedikt, sag mal wo kommt bei dir die utils/delay.h her? Ist das aus einer avr clib? Gruss Sven
Datum: 17.04.2007 21:04
Sorry für die dumme Frage aber was genau hat jetzt rfm01 und rfm02 mit dem rfm12 Modul von Pollin zu tun?
Datum: 17.04.2007 22:29
@ Thomas Kropf: Alle drei Module gibt es bei Pollin ;-) RFM01 & RFM02 für 4,95 Teuronen RFM12 für 7,95 Teuronen Auf dem RFM01 und RFM12 sind Chips mit FIFO verbaut und (Danke Benedikt) der Sender RFM02 hat leider keinen :-/ Aber alle Chips haben identische Kontrollparameter ;-) Hoffe das meine Bestellung bald mal ankommt, zum Basteln und Testen ;-) Bin schon ganz kribbelig mal zu probieren ob meine Ideen auf 100m Sicht funzen :-P
Datum: 17.04.2007 22:44
Aaah, danke! Ich bin noch stark am Überlegen. Vor allem wieviele Stück (wenn dann nur rfm12) ich mir zulegen soll. Ich kann leider schwer einschätzen wie "gut" die Dinger wirklich sind. Pollin wird wohl auch nicht ewig diese Module verkaufen. Deswegen würde ich mir gleich einen kleinen Vorrat zulegen wollen. Wenn ich irgendwann mal eine von diesem MCA-25 Kameras wo billig ergattern würde dann wär die Kombination von Funkübertragung und Kamera ein Traum (ich weiß es würde lange dauern aber das wäre egal) :)
Datum: 18.04.2007 18:46
@ Benedikt das mit der Library hat sich grade aufgeklärt, meine war etwas veraltet. Gruss Sven
Datum: 20.04.2007 13:54
Hi, da ich die Teile auch bestellt habe, habe ich mir schon mal den Code von Benedikt auf BASCOM angepasst. Ich weiss allerdings nicht ob er so funktioniert, jedenfalls kompiliert er ohne Fehler. Damit der/die BASCOM-Jünger auch was mit den Funkmodulen machen können poste ich ihn mal. Aber ohne Gewähr, nur als Anregung zu verstehen Viel Spass damit Fossie
Datum: 20.04.2007 18:38
Hi, vielen Dank an Benedikt für die Bibliotheken! Hier noch ein kleiner Optimierungsvorschlag für die Funktion rf12_trans(): Während das auszugebende Wort am "High-Ende" rausgeschoben wird, kann vom "Low-Ende" her der Rückgabewert in die gleiche Variable geschoben werden. Dadurch wird die Variable werti eingespart, es sind nur halb so viele Schiebeoperationen nötig und der Code wird ein bißchen kleiner. cu Reinhard
Datum: 20.04.2007 18:40
@Bastelbär Sauber programmiert Respekt werde es nächste Woche testen @alle Muss der AVR zwingend mit 10MHZ takten ?
Datum: 20.04.2007 19:39
Datum: 20.04.2007 20:41
@Bastelbär Respekt auch von mir, wie kommt der AVR denn zum 10 Mhz-Takt? Hat er hier einen eigenen Quarz? Bzw. wie wird das verdrahtet? Vielen herzlichen Dank für den Code !!!
Datum: 20.04.2007 21:54
Das Modul gibt die 10MHz an CLK aus. Am AVr speist man sie dann an XTAL1 ein, lässt XTAL2 unbelegt und setzt die Fusebits auf externen Takt.
Datum: 21.04.2007 16:54
Hallo Benedikt, hier nochmal in einem anderen Thread die passende Frage. Bin gerade dabei mal einen Schaltplan zu machen. Ich lese von dem Pull-Up an dem FSK/DATA/nFFS Pin. Der Atmel-Port lässt sich doch so programmieren, das ein interner Pull-Up eingeschaltet wird. Das weisst Du aber sicherlich. Warum hast Du dennoch einen externen Pull-Up empfohlen? Gruss Michael
Datum: 21.04.2007 17:05
Wiso einen Pin verschwenden, wenn ein Pullup reicht ?
Datum: 21.04.2007 17:36
Hallo Benedikt, uups, habe ich da was falsch verstanden? Benutzt Du ausschliesslich SDI/SDO/SCLK? Und der FSK/DATA/nFFS Pin ist garnicht mit Deinem Controller verbunden? Gruss Michael
Datum: 21.04.2007 17:50
Ja, so in etwa. nSEL braucht man aber noch, also das komplette SPI Interface: Daten, Takt, Chipselect. Alle anderen Leitungen wie Interrupt oder nFFS sind optional, wenn man alles auf maximale Geschwindigkeit auslegt, oder es eben mit einem Interrupt betreiben möchte.
Datum: 21.04.2007 17:59
Hallo Benedikt, ah, mein Fehler. Ja, das mit der Geschwindigkeit war so mein Hintergedanke. Danke für die Infos. Gruss Michael
Datum: 22.04.2007 10:43
@Bastelbär @Alle
Die Bascom Datei von Bastelbär enthält meiner Meinung nach einen Fehler?
Sub Rf12_setfreq(byval Freq As Single)
Freq = Freq - 430.00
Temp = Freq / 0.0025
If Temp < 96 Then
Temp = 96
Elseif Temp > 3903 Then
Temp = 3903
End If
Temp = Temp + &HA000 !!!! Diese Zeile fehlt oder irre ich mich ???
Temp = Rf12_trans(temp)
End Sub
Kann es leider noch nicht Testen
Datum: 23.04.2007 11:35
@Humix
Hast natürlich recht. Die Zeile fehlt. Wird Zeit das meine Module
endlich kommen damit ich das testen kann.
Korrigierte Verison anbei.
mfg.
Joachim
Datum: 24.04.2007 14:20
Hi Ich hab mir irgendwan bei einer früher AVR GCC version mal einen hass auf das programm anprogrammiert und meide es seitdem. Hat irgendwer eine Idee wieviel Aufwand es sein wird das auf Codevision zu portieren? Tobi
Datum: 24.04.2007 15:17
Eigentlich kaum Aufwand, da es kaum hardwarenahe Funktionen gibt, die irgendwas spezielles vom Compiler erwarten. Es müssen eigentlich nur die #defines passen, dann sollte das Programm laufen.
Datum: 24.04.2007 16:38
Hat jemand schon Erfahrungen mit dem Antennenanschluß gemacht. Wie sollte diese Antenne optimal beschaffen sein? gute Zeit wünscht Juppi
Datum: 24.04.2007 16:53
Welche Entfernung willst du schaffen? Mit 15cm Draht ist schon einges machbar...
Datum: 25.04.2007 01:04
@ Juppi "Wie sollte diese Antenne optimal beschaffen sein?" Das hängt von der Anwendung ab. Sag uns was Du vorhast und wir können Dir eine Antenne empfehlen.
Datum: 26.04.2007 14:44
Hallo, Ich habe das Bascom Programm einmal mit einem Mega8 probiert, aber es will nicht so recht. Ich habe nach der RX-Routine in der for-Schleife ein "Print rfdata(count)" eingebaut, um zu sehen, ob der Text auch übertragen wird, aber es kommt immer der Text "96" (ASCII 39 und 36) heraus. Kann es sein, das im Code noch Fehler sind? Ist da was bekannt? Vielen Dank!! Andy
Datum: 30.04.2007 16:46
Hi, habe nachdem meine RFM12 endlich gekommen sind, den Code ausprobiert. Keinerlei Datenverlust. Aber eine Frage mal so nebenbei. Warum Software SPI und nicht Hardware SPI? Gruß Sascha
Datum: 30.04.2007 18:21
Datum: 02.05.2007 17:56
Habe versucht den Code von Benedikt zum laufen zu bringen, leider ohne
Erfolg. Nutze zwei ATMEGA16 und zwei Module RFM12 gemeinsam auf großem
Steckboard. Habe den Pull Up an FSK mit 10kOhm gesteckt, rückmeldung
bekomme ich über RS 232. Antenne ist 17cm lang. Dabei fiel auf, daß das
Senden scheinbar funktioniert (an SDO kommt mit steigender Flanke
rückmeldung). Allerdings scheint der Empfang nicht zu funktionieren. Das
Empfangsprogramm bleibt in der Funktion:
void rf12_rxdata.....
....
for (i=0; i<number; i++)
{ rf12_ready();
*data++=rf12_trans(0xB000);
}
rf12_trans(0x8208);
...
bei dem rf12_ready hängen, da der RFM12 an SDO das Signal nicht wieder
auf HIGH zieht...
Hatte das jmd von Euch schon mal???
Datum: 02.05.2007 18:06
@bastelbär: Hast du schon dein BASCOM Programm mit den RFM12 Modul ausprobiert?
Datum: 02.05.2007 18:18
@ Stefan Entweder wurde das Modul nicht richtig initialisiert, oder der Sender sendet nichts. Versuch mal die Pause vor der Initialisierung größer zu machen.
Datum: 02.05.2007 19:38
@ Benedikt Danke,also, die Pause in der Initialisierung habe ich schon auf 150ms erhöht...muß mir mal nen Funkscanner leihen, um zu sehen, ob er sendet...oder wie macht Ihr das?
Datum: 02.05.2007 19:52
Ich nutze einen TV PLL-Tuner um zu sehen ob das Ding sendet. Ergibt einen wunderbaren Spectrumanalyer im Bereich 45-880MHz mit etwa 100kHz Auflösung.
Datum: 02.05.2007 20:47
Benedikt K. wrote: > Ich nutze einen TV PLL-Tuner um zu sehen ob das Ding sendet. Ergibt > einen wunderbaren Spectrumanalyer im Bereich 45-880MHz mit etwa 100kHz > Auflösung. ist zwar etwas OT aber: Wie nutz du den TV-Tuner als Spectrumanalyer?
Datum: 02.05.2007 21:25
Ich habe am Ausgang des Tuners (ca 34-40MHz) einen SA615 hängen, der als Bandpass + logarithmischer Gleichrichter dient (nebenbei kann man an dem auch noch das FM demodulierte Signal abgreifen, aber das nutze ich nicht). Das RSSI Signal messe ich mit einem AVR, der dem Tuner die Frequenz per I2C vorgibt. So durchlaufe ich den ganzen Frequenzbereich. Leider hat der Tuner nur ein 62,5kHz Abstimmraster, aber das reicht für die meisten Sachen. Die Bandbreite meiner ZF Filter ist sowiso größer.
Datum: 02.05.2007 21:50
Hast du dazu eine Bauanletung oder sowas?
Datum: 02.05.2007 22:39
@ Stafan ich habe hier genau das gleich Problem mit zwei ATmega16s. Das senden scheint zu klappen nur beim empfangen hängt der zweite Atmel. Der Code ist nicht angepasst, Original aus dem Zip. Beide können Senden. Sehr Komisch. Hat jemand einen Mega16 als Empfänger am laufen? Gruss Sven
Datum: 02.05.2007 22:53
Beim mir das gleiche Problem, ich hab Mega32 dran hängen. Senden geht auf jeden Fall, hab ich mit einem Spektrumanalysator überprüft.
Datum: 02.05.2007 23:09
@ Stefan sorry habe mich vertippt.
Datum: 03.05.2007 07:44
Ich habe es bei mir gerade nochmal ausprobiert: Die Module an je einen tiny2313 @ 10MHz, und es funktioniert. Probiert mal folgendes: Erst den Empfänger einschalten, dann denn Sender.
Datum: 03.05.2007 10:12
@ Benedikt Also der Sender sendet eindeutig, das habe ich jetzt mit nem Funkscanner überprüft! Man hört dann beim Senden ein kurzzeitiges Rauschen!... Aber der Empfänger scheint nicht zu funtionieren, auch wenn ich den Empfänger zuvor mit Spannung versorgt habe und anschließend den Sender einschalte! Aber woran soll es dann noch liegen?
Datum: 03.05.2007 10:31
Leider kann ich da auch nicht viel machen, da man ja nicht in die Module reinschauen kann. Falls du ein Oszilloskop oder einen Frequenzzähler hast: Schau mal ob am CLK Ausgang (vom Empfänger) 10MHz rauskommen. Falls ja, dann ist das Modul zumindest halbwegs richtig initialisiert. Dann sollte es eigentlich funktionieren. Der Sender sollte etwa im 1s Takt Daten senden. Das müsste man deutlich an kurzen Rauschimpulsen hören können.
Datum: 03.05.2007 10:41
Ich glaube ich habe das Problem: Es liegt am Sender ! Aus irgendeinem Grund funktioniert die Initialisierung nicht immer, sondern erst nach ein paar Versuchen. Zu Beginn höre ich auch nur ein Dauerrauschen, schalte ich den Sender aber mehrmals ein und aus, dann kommen plötzlich die 1s Rauschimpulse. Danach funktioniert es aus irgendeinem Grund jedesmal beim Einschalten.
Datum: 03.05.2007 11:32
@Benedikt Also: Die Rauschimpulse kommen bei mir immer, das macht mein Scanner hörbar! Die 10MHz kommen sowohl am Sender als auch beim Empfänger an.(Oszi) Habe die Empfängerschaltung jetzt mit einem MEGA8 versucht, aber auch das funktioniert nicht! Der Empfänger bekommt scheinbar kein Signal! Die Signale an SDI und SCK kommen am Modul an, allerdings nichts an SDO!...kann es sein, daß die Initialisierung beim Empfänger nicht stimmt??
Datum: 03.05.2007 11:46
Die Module gegeben nach dem Einschalten 1MHz aus. Ich schalte den Takt auf 10MHz um. Wenn also die 10MHz rauskommen, versteht also das Modul die Befehle. Ich habe es jetzt noch ein paarmal ausprobiert: Sobald der Sender läuft, empfange ich jedesmal die Daten problemlos.
Datum: 03.05.2007 13:35
DANKE, Benedikt, aber ich bin noch nicht weiter...:( Ich hoffe wir sprechen von dem gleichen Programm!?...ich habe das rfm12.zip, des ersten Eintrags genommen...und das send auskommentiert und receive rein! oder hab ich da noch was vergessen??? vlt. kannste das aktuelle noch mal posten???
Datum: 03.05.2007 14:06
Ja, genau dasselbe nutze ich auch. Wenn der Sender läuft, sollte der Empfänger eigentlich auch funktionieren. Hast du auch die Pause in der Schleife beim Empfänger auskommentiert ? Funktionieren müsste es aber trotzdem.
Datum: 03.05.2007 15:58
ja, habe ich alles gemacht...mir fiel jetzt folgendes auf, wenn ich den Tastkopf an de SDO anschließe, dann scheint es zu funktionieren, aber warum???? Hat da jmd ne Ahnung?
Datum: 03.05.2007 16:21
Timingproblem ? Oder ist der Pin nicht richtig angeschlossen ? Wie schnell läuft der AVR ? Muss der Tastkopf schon beim Einschalten vorhanden sein, oder reicht es erst später während dem Empfangen ? Probier mal ob es mit einem Pullup oder Pulldown funktioniert.
Datum: 03.05.2007 18:35
Also um nochmal auf die Antenne zurückzukommen: Zum Einsatz kommen nur RFM12 Module: macht es in der Beschaffenheit der Antenne einen Unterschied, ob ich 10, 20 oder 50m überbrücken möchte? - wahrscheinlich nicht - die Länge und Beschaffenheit hängt doch von der Frequenz ab, oder? Zum Einsatz kommen sowohl RFM01 alsauch RFM02 Module: Verwendet man unterschiedliche Antennen bei Sender und Empfänger ? Um eventuelle Auschweifungen vorzubeugen: nein - keine Richtantenne - ich will nur ein Stück Draht dranhängen.
Datum: 03.05.2007 19:00
Im einfachsten Fall: etwa 16cm Draht reicht. Die Antennenanpassung macht den Rest. Falls die Entfernung klein ist, kann man die Sendeleistung per Software reduzieren.
Datum: 04.05.2007 10:29
@Benedikt Also, der SCK Takt liegt bei 3,7kHz und die Daten an den RFM12 Sender scheinen anzukommen. Allerdings kommt am SDO nicht heraus! Hast Du da noch einen Tipp für mich????
Datum: 04.05.2007 10:35
Es gibt da eigentlich nur 2 Möglichkeiten (vorausgesetzt die Hardware ist OK): a) Die Intialisierung des Empfängers ist nicht korrekt angekommen. Versuch einfach mal die Init Routine mehrmals hintereinander aufzurufen. b) Der Sender sendet nicht die korrekten Daten.
Datum: 04.05.2007 11:17
Also die initialisierung des Empfängers scheint zu laufen! Danach gibt es, da der SDO auf Low-Bleibt keine weiteren SCK-Impulse mehr....
Datum: 05.05.2007 13:10
In Dateianhang ist meine code fuer: ATmega8 + RFM02 (TX modul) + hardware SPI PB2 (SS) -> nSEL=CS PB3 (MOSI) -> SDI PB5 (SCK) -> SCK PB0 <- nIRQ PB1 -> FSK
Datum: 07.05.2007 15:44
Hi Leute, nachdem nun endlich meine Module gekommen sind habe ich mir mal meinen Code wieder vorgenommen und wollte ihn probieren. Dabei habe ich, abgesehen von einem Programmierfehler von mir, einige Ungereimtheiten im Compiler festgestellt. Duch diese Ungereimtheiten war es nicht möglich dass das Programm richtig lief obwohl beim Compilieren kein Fehler auftrat. Als kleine Info: Ohne die Angaben von $hwstack, $swstack und framesize werden beim Aufruf der Funktionen bzw. Subs die Parameter anscheinend nicht richtig übergeben bzw. verarbeitet. Und beim Berechnen der Baudrate wird beim casten der Wert von Temp null anstatt 16 da die 344828 für Word zu gross sind. Also man lernt nie aus was Compiler so alles machen. Ich habe den Code entsprechend geändert und mal duch den Simulator laufen lassen und jetzt klappt es zumindest mit den Aufrufen. Leider kann ich erst morgen das ganze an der Hardware testen. Aber ich schick das File mal mit, die Tage gibts dann einen Erfahrungsbericht von mir. Also bis denne dann....
Datum: 07.05.2007 18:19
@bastelbär In die Config SPI muß NOSS = 1 eingefügt werden und dann den SS Pin im Programm schalten. ansonsten geht SS (Chip Select) schon nach 8 Bit wieder auf High.
Datum: 07.05.2007 19:49
@HUMix - geht es bei in bascom und würdest das zur verfügung stellen?
Datum: 08.05.2007 10:27
ES LEBT, ES LEBT!! Die Routinen für den BASCOM laufen. Ein kleiner Fehler, abgesehen von dem den HUMIX gemeldet hat, war noch drin (Highbyte zuerst senden) aber jetzt laufen sie. Ich habe sie gerade an der Hardware mit einem Evalboard getestet. Allerdings hab ich den MEGA32 mit 8Mhz vom Evalboard getaktet, also nicht mit den 10MHz vom Modul. Also aufpassen im Quelltext falls einer die 10Mhz nutzt. Angeschlossen hab ich das Modul folgendermassen: VDD -> VCC GND -> GND SDI -> MOSI (PB5, Pin 6) SDO -> MISO (PB6, Pin 7) SCK -> SCK (PB7, Pin 8) nSel -> SS (PB4, Pin 5) FSK -> R 10k Pullup Jetzt gehts weiter im Programm mit den Feinheiten und IRQ-Steuerung. Auch werde ich mal mit dem SPI-Clock spielen um schneller zu werden. Datei anbei, und nicht die Fuses vergessen. Joachim
Datum: 08.05.2007 12:37
@bastelbär kann ich dein Bascom Programm auf http://www.comwebnet.de veröffentlichen? Dort sammele ich von Usern Projekte und die werden veröffentlicht. Gucke mal rein und schreib mir bitte.
Datum: 08.05.2007 15:22
@Benedikt Kannst Du mir bitte mal die AVR Studio Version nennen, mit der du das Programm compiliert hast..bei mir ist Version 4.13 , Bulid 528.... Bei der Version habe ich bereits rausgefunden, daß man das "#define F_CPU 1000000UL" weder in der Header noch in der c-Datei definieren darf, sondern nur im Makefile von AVR...sonst bekommt man falsche Zeiten bei DELAY.h routinen... Wie gesagt, es funktioniert immer noch nicht und ich sehe im Moment keinen Fehler..!?
Datum: 09.05.2007 16:51
Hallo liebe gemeinde! ich habe vor, mir auch eine Datenstrecke basierend auf den Modulen RF12 aufzubauen, meine Frage richtitet sich an die Antenne. und zwar nicht für wieweit sie lang sein muss, sondern eher ob ihr erfahrungen mit der max. Länge habt? Der einsatz ort einer Gegenstellt ist dirket neben einem leeren