Hallo, bin ein absoluter Neuling auf dem Gebiet der Mikrocontroller und möchte einen ISM Transceiver mittels einem ATmega 48 über SPI konfigurieren. Leider werde ich die Hardwaremäßige SPI Schnittstelle des Controllers nicht benutzen, da dort der ISP angeschlossen ist. Kann mir jemand weiterhelfen, bei der Programmierung der SPI Schnittstellen (Vielleicht mit einem Beispiel Code)? Woltte PortC nehmen. PC5 = MOSI PC4 = MISO PC3 = SCK PC4 = CS Bin über jede Hilfe dankbar. Der Transceiver wird mit 2 1-byte Befehlen konfiguriet. z.B. A7D0
Wohl auch ein Neuling hier im Forum ;-) Wie wäre es mit einem Schaltplan, einem Datenblatt der ISM Transceivers, etc.. ? Das mit dem ISP und der SPI ist normalerweise kein Problem, wenn man weiß was man tut. Dafür gibt es z.B. einen Hinweis von Atmel mit Widerständen in den Datenleitungen.
Hi, warum sollte die HW-SPI nicht gehen? Dein ISM Transceiver hat einen Chip select. Dieser bleibt ruhig während der AVR Programierung z.B über externen Pullup. Also bekommt er davon nichts mit. Während des normalen Betriebes ist entweder der ISP Stecker abgezogen oder der Programmer (je nach dem welcher das ist) sollte "unsichtbar" (Tristate) sein. Somit bekommt der Programmer davon nichts mit. Also kollidieren Program-Mode und Run-Mode nicht miteinander. Gruß RoK
Als Transceiver wird der IA4421 baugleich im HopeRF 12 verwendet. Datenblatt im Anhang. Schaltplan sind nur die 4 obengenannten Leitungen die zum Chip gehen.
Nimm die Hardware SPI. Die ISP Schnittstelle und die SPI passen zusammen. Das Einzige, das man beachten muss, ist dass das SPI Geraet beim Programmiern keinen Scheiss macht. Der Programmiermodus hat uebrigend Reset=low.
geht es wirklich nicht softwaremäßig? wäre echt klasse wenn es gehen würde...
Das einzige was du machen musst: Dem nSEL Anschluss zusätzlich einen Pullup-Widerstand (z.B. 47K) spendieren, damit sich dieser Funkchip nicht versehentlich angesprochen fühlt. Dann lässt sich die SPI/ISP-Schnittstelle sowohl für ISP als auch für SPI verwenden, ohne das irgendwas umgesteckt werden muss.
gibt es denn bei hardwaremäßigem SPI irgendetwas zu beachten? kann man da 1:1 die Quelltexte aus dem Datenblatt übernehmen?? Falls doch noch jemand etwas über den software SPI hat, bitte melden!!
Beispiel für Software SPI (auch wenn ich das Warum nicht verstehe...): http://www.roboternetz.de/wissen/index.php/Portexpander_am_AVR#Ohne_SPI-Hardware
so der SPI Bus sofwaremäßig läuft soweit. Ich habe jetzt nur noch ein Problem mit der _delay_ms Funktion. Nachdem ich zwei Pakete gesendet habe will ich eine Pause machen. und wiederum zwischen den beiden Paketen auch eine kleine Pause. Leider funktioniert das mit der obigen Funktion nicht. ich hänge mal ein Bild an, wie es ungefähr aussehen soll.
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.