Probleme bei der Datenübertragung mit Cypress Transeiver

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 04 11 2024  22:59:05      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
Probleme bei der Datenübertragung mit Cypress Transeiver

    







BID = 706730

ledi

Gerade angekommen


Beiträge: 2
Wohnort: Graz
 

  


Da ich noch nie mit einem Transceiver gearbeitet habe, benötige ich hier bitte Eure Hilfe!

Für die Ansteuerung eines LED-Cubes per Funk möchte ich zwei 2,4GHz-Tranceiver von Cypress CYWUSB6934-48LTXC verwenden.
Auf der Sender- und Empfängerseite kommen zwei Mikrocontroller von Atmel (AT90PWM316) zum Einsatz.
Die Kommunikation wird über die SPI-Schnittstelle realisiert.

Ich möchte zum Test nur einen Datensatz (0b10000101) an den Empfänger übertragen.
Die Datenübertragung von 0b10000101 am MOSI-Pin funktioniert.
Leider kommt aber am Empfänger nichts an.
So wie ich das verstanden habe, müsste ich die übertragenen Daten am MISO-Pin des Empfänger-Transceivers mit dem Oszi zu messen sein.
Alle Register des Transceivers wurden in der Grundeinstellung belassen.


Hier der C-Code:


Code :



/**************************************** *
* Prozessor: AT90PWM316 *
* Clock: Osz. int.8MHz *
******************************************/

#include <avr/io.h>
#include <util/delay.h>

void SPI_MasterInit(void)
{
SPCR |= (1<<SPE); // SPI enable
SPCR |= (0<<DORD); // Send MSB first
SPCR |= (1<<MSTR); // UC = Master
SPCR |= (1<<CPOL); // CLK positiv phase
SPCR |= (0<<CPHA); // Sampling data to begin
SPCR |= (1<<SPR1); // CLK / 64 = 125kHz

DDRB = (1<<PB1)|(1<<PB7); // Set MOSI and SCK output
}

void SPI_MasterTransmit(char adress, char cData)
{
SPDR = adress | 0x80; // Start transmission adress - write mode
while (!(SPSR & (1<<SPIF))); // Wait for transmission complete
SPDR = cData; // Start transmission data - transmit
while (!(SPSR & (1<<SPIF))); // Wait for transmission complete
}

void Chip_Select()
{
PORTD |= !(1<<PD3); //SS = 0
}

void Chip_Select_off()
{
PORTD |= (1<<PD3); //SS = 1
}

int main(void)
{
DDRD |= (1<<PD3);
SPI_MasterInit(); // SPI Initialisierung

while (1)
{
Chip_Select(); // Chip Select
SPI_MasterTransmit(0x03, 0b10000101);
// Übergabe der Daten an die Funktion SPI_MasterTransmit
Chip_Select_off(); // Chip Select off
}
}





/**************************************** *
* Prozessor: AT90PWM316 *
* Clock: int.8MHz *
******************************************/

#include <avr/io.h>
#include <util/delay.h>

void SPI_MasterInit(void) // Init SPI
{
SPCR |= (1<<SPE); // SPI enable
SPCR |= (0<<DORD); // Send MSB first
SPCR |= (1<<MSTR); // UC = Master
SPCR |= (1<<CPOL); // CLK positiv phase
SPCR |= (0<<CPHA); // Sampling data to begin
SPCR |= (1<<SPR1); // CLK / 64 = 125kHz

DDRB = (1<<PB1)|(1<<PB7); // Set MOSI and SCK output
}

void SPI_MasterTransmit(char adress, char cData)
{
SPDR = adress | 0x80; // Start transmission adress - write mode
while (!(SPSR & (1<<SPIF))); // Wait for transmission complete
SPDR=cData; // Start transmission data - transmit
while (!(SPSR & (1<<SPIF))); // Wait for transmission complete
}

void Chip_Select()
{
PORTD |= !(1<<PD3); //SS = 0
}

void Chip_Select_off()
{
PORTD |= (1<<PD3); //SS = 1
}

int main(void)
{
DDRD |= (1<<PD3);
SPI_MasterInit(); // SPI Initialisierung

while (1)
{
Chip_Select(); // Chip Select
SPI_MasterTransmit(0x03, 0b10000101);
// Übergabe der Daten an die Funktion SPI_MasterTransmit
Chip_Select_off(); // Chip Select off
}
}


Code :



BID = 706737

Jornbyte

Moderator



Beiträge: 7170

 

  

Schalte den SS Pin (PD3) vom AVR auf Ausgang, dann sollte es gehen.

_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.

[ Diese Nachricht wurde geändert von: Jornbyte am  9 Aug 2010 18:39 ]

BID = 706741

ledi

Gerade angekommen


Beiträge: 2
Wohnort: Graz

hab ich bereits gemacht:

DDRD |= (1<<PD3);

BID = 706775

Jornbyte

Moderator



Beiträge: 7170

Ich betreibe eine SD-Card mit diesen Einstellungen an einem 1284P:
SPCR = (0 << SPIE) | // SPI Interrupt Enable
(1 << SPE) | // SPI Enable
(0 << DORD) | // Data Order: MSB first
(1 << MSTR) | // Master mode
(0 << CPOL) | // Clock Polarity: SCK low when idle
(0 << CPHA) | // Clock Phase: sample on rising SCK edge
(1 << SPR1) | // Clock Frequency: f_OSC / 128
(1 << SPR0);
SPSR &= ~(1 << SPI2X); // No doubled clock frequency

_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.

BID = 706776

clembra

Inventar



Beiträge: 5404
Wohnort: Weeze / Niederrhein
ICQ Status  


Zitat :

void Chip_Select()
{
PORTD |= !(1<<PD3); //SS = 0
}

Hierzu hat DonComi vor einigen Tagen einen netten Merkzettel verfasst. Das muss wohl "PORTD &= ~(1<<PD3)" heißen. So wie du es geschrieben hast werden höchstens die anderen 7 Pins aktiviert. Jedenfalls wird PD3 nicht auf Gnd geschaltet.

_________________
Reboot oder be root, das ist hier die Frage.


Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 23 Beiträge im Durchschnitt pro Tag       heute wurden bisher 19 Beiträge verfasst
© x sparkkelsputz        Besucher : 182284334   Heute : 4708    Gestern : 5145    Online : 647        4.11.2024    22:59
3 Besucher in den letzten 60 Sekunden        alle 20.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0483150482178