Hi Robert,
67 Aufrufe, und keiner ne Idee?
Dann will ich dich mal nicht haengen lassen, obwohl ich jetzt das Problem von dir auch nicht dirket sehe.
Daher haenge ich mal als Beispiel ein bisschen Code an, den ich benutze (laeuft auf MX460 und MX795):
Init des SPI:
// Set up SPI port pins
VS1053_RESET = 0;
VS1053_RESET_TRIS = OUTPUT_PIN;
VS1053_DREQ_TRIS = INPUT_PIN;
VS1053_XCS_TRIS = OUTPUT_PIN; // Make theCS pin an output
VS1053_SI_TRIS = OUTPUT_PIN; // SI to VS chip
VS1053_SO_TRIS = INPUT_PIN; // SO from VS Chip
VS1053_SCLK_TRIS = OUTPUT_PIN; // Make the SCK pin an output
VS1053_XCS = 1;
VS1053_XDCS_TRIS = OUTPUT_PIN; // Make the Data CS pin an output
VS1053_XDCS = 1;
VS1053_SPIBRG = (GetPeripheralClock()-1ul)/2ul/VS1053_SPI_FREQUENCY_SLOW;
VS1053_SPICON1bits.CKE = 1;
VS1053_SPICON1bits.MSTEN = 1;
VS1053_SPICON1bits.ON = 1;
Das Lesen und Schreiben laeuft mit der selben einfachen Routine:
BYTE VLSIWrite(BYTE output)
{
VS1053_putcSPI((BYTE)output);
return (BYTE)VS1053_getcSPI();
}
Dazu gibts dann zum Abstrahieren noch ne Ladung #defines:
//VLSI VS1053 Decoder
#define VS1053_XCS LATBbits.LATB2
#define VS1053_XCS_TRIS TRISBbits.TRISB2
#define VS1053_XDCS LATAbits.LATA9
#define VS1053_XDCS_TRIS TRISAbits.TRISA9
#define VS1053_RESET LATBbits.LATB8
#define VS1053_RESET_TRIS TRISBbits.TRISB8
#define VS1053_SCLK LATDbits.LATD10
#define VS1053_SCLK_TRIS TRISDbits.TRISD10
#define VS1053_SI LATCbits.LATC4
#define VS1053_SI_TRIS TRISCbits.TRISC4
#define VS1053_SO PORTDbits.RD0
#define VS1053_SO_TRIS TRISDbits.TRISD0
#define VS1053_DREQ PORTAbits.RA10
#define VS1053_DREQ_TRIS TRISAbits.TRISA10
#define VS1053_SPISTAT_RBF SPI1STATbits.SPIRBF
#define VS1053_SPIBUF SPI1BUF
#define VS1053_SPICON1 SPI1CON
#define VS1053_SPISTAT SPI1STAT
#define VS1053_SPICON1bits SPI1CONbits
#define VS1053_SPISTATbits SPI1STATbits
#define VS1053_SPIENABLE SPI1CONbits.ON
#define VS1053_SPIBRG SPI1BRG
#define VS1053_OpenSPI(config1, config2) OpenSPI1(config1, config2)
#define VS1053_putcSPI putcSPI1
#define VS1053_getcSPI getcSPI1
Ich nutze nicht die Libraries, da zu dem Zeitpunkt wo ich den Code geschrieben habe diese noch nicht da waren.
Gruesse
Stefan