Hallo zusammen, hat schon mal jemand einen Attiny85 mit einem RFM69 erfolgreich in Betrieb genommen und konnte hierüber Daten senden und empfangen? Funktioniert das überhaupt? Der Attiny bringt ja keine SPI-Schnittstelle mit, allerdings dürften sich doch die GPIO-Pins so steuern lassen, dass es funktionieren könnte? Ich habe Beispiele gefunden, wo das z.B. mit I²C so gemacht worden ist. Vielen Dank für euren Input!
Hallo, aus einer uralten Source mit dem RFM02 von mir:
1 | uint8_t rfm02_send_8bit(uint8_t byte) |
2 | { |
3 | uint8_t i; |
4 | for (i=0; i<8; i++) |
5 | { |
6 | if (byte & 0x80) |
7 | { |
8 | RFM02_PORT |= (1<<RFM02_SDI); // DATA auf H als Ausgang |
9 | } |
10 | else |
11 | { |
12 | RFM02_PORT &= ~(1<<RFM02_SDI); // DATA auf L |
13 | } |
14 | asm("nop"); |
15 | RFM02_PORT |= (1<<RFM02_SCK); // CLK auf H |
16 | asm("nop"); |
17 | asm("nop"); |
18 | |
19 | byte = (byte << 1); // nächstes Bit nach oben |
20 | |
21 | if (RFM02_PIN & (1<<RFM02_IRQ)) // unteres Bit Status einlesen, H? |
22 | { |
23 | byte |= 0x01; // DATA war H |
24 | } |
25 | else |
26 | { |
27 | byte &= ~(0x01); // DATA war L |
28 | } |
29 | asm("nop"); |
30 | RFM02_PORT &= ~(1<<RFM02_SCK); // CLK auf L |
31 | } |
32 | return byte; |
33 | } |
war eigentlich mal in ASM, habe ich damals nur 1:1 nach C getrageb... Gruß aus Berlin Michael
Okay, also generell würdest du auch behaupten, dass das technisch möglich ist? Könntest du evtl. noch etwas zur Pin-Belegung bzw. Verdrahtung sagen? Ich würde gerne mit so einer Lösung einen Außentemperatursender realisieren mit dem DS1820. Somit würde noch ein weiterer Pin (1Wire) zum DS1820 benötigt. Machbar oder nicht? DANKE!
Hallo, Sven Scholz schrieb: > Okay, also generell würdest du auch behaupten, dass das technisch > möglich ist? > Könntest du evtl. noch etwas zur Pin-Belegung bzw. Verdrahtung sagen? Du mußt doch sowieso selber an den Pins wackeln, definiere sie dahin, wo es Dir gefällt:
1 | #define RFM02_CS PB1 // AVR MOSI |
2 | #define RFM02_SDI PB0 // AVR MISO |
3 | #define RFM02_SCK PB2 // AVR SCK |
4 | #define RFM02_IRQ PB3 |
5 | |
6 | #define RFM02_DDR DDRB |
7 | #define RFM02_PORT PORTB |
8 | #define RFM02_PIN PINB |
Ob es machbar ist? Hier laufen seit 10 Jahren 5 Sensoren jeweils mit Tiny45 und FOST02 (Temperatur/Feuchte mit sehr eigenwilligem Protikoll und Timing). Alles mit jeweils einer CR123A, seneden alle 2 Minuten, Battereilaufzeit ca. 2 Jahre. > Ich würde gerne mit so einer Lösung einen Außentemperatursender > realisieren mit dem DS1820. > Somit würde noch ein weiterer Pin (1Wire) zum DS1820 benötigt. Kann man sicher auch nehmen, einen Pin findest Du da sicher nochn ei mir hängt ja an PB4 auch noch das Clock-Signal für den FOS02 dran. Meines Wissens nach braucht der RFM69 auch nur die 4 SPI-Leitungen. Gruß aus Berlin Michael
Hallo, das RFM69 kannst Du über vier Pins komplett steuern und damit Senden wie auch Empfangen über das Fifo. Einen fünften Pin brauchst Du für den DS18S20. Dann brauchst du noch eine Beschaltung am Reset-Pin des RFM69. Beitrag "Schaltplan von RFM69HW mit ATTiny84 und Add-Ons" Am Schwierigsten dürfte die richtige Einstellung der 64 Register zu bewerkstelligen sein. mfG
Sven Scholz schrieb: > Machbar oder nicht? Wenn da das jetzt noch fragst, solltest du dich entweder ein bisschen mehr mit dem Datenblatt deines ATtiny und den Grundlagen der Bitprökelei auf demselben beschäftigen, oder zu einem größeren Prozessor mit HW-SPI oder gar komplettem HAL mit entsprechenden Bibliotheken greifen.
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.