Hallo,
ich habe mir den MP3-Player hier aus dem Shop gekauft.
http://shop.embedded-projects.net/product_info.php?info=p33_MP3-Player-Projekt--MOD-MP3-.html
Der Plan ist, diesen Player als Slave von einem ATMEGA8 zu steuern.
Grundlagen von Elektrotechnik, Mikrocontroller und C programmierung sind
vorhanden. Jedoch habe ich keinerlei Erfahrung mit der SPI
Schnittstelle.
Es scheitert daran, dass sich das Gerät nichtmal einschaltet.
Mit Batterie und Jumper auf BAT funktioniert zumindest das Gerät, also
kein defekt.
Im Anhang ist die Pinbelegung meiner SPI Schnittstelle.
Hier ist der C Code der nur das Gerät Initialisieren soll.
1 | #include <avr/io.h>
|
2 | #include <avr/wdt.h>
|
3 | #include <util/delay.h>
|
4 |
|
5 | #define led_on PORTD |= ((1 << 1))
|
6 | #define led_off PORTD &= ~((1 << 1))
|
7 | #define MP3RES_high PORTD |= ((1 << 7))
|
8 | #define MP3RES_low PORTD &= ~((1 << 7))
|
9 |
|
10 |
|
11 | int main (void)
|
12 | {
|
13 | //INIT
|
14 | DDRB = 0b11101110; //MISO & DREQ Eingang
|
15 | SPCR = 0b01010001; //BIT7=0:IntAus
|
16 | //BIT6=1:SPI an
|
17 | //BIT5=0:IntAus
|
18 | //BIT4=1:Master
|
19 | //BIT3=0:SCK
|
20 | //BIT2=0:L/HFlanke
|
21 | //BIT1&2=01:AVRClock16
|
22 | DDRC = 0x00; // Port C Eingang
|
23 | PORTC = 0xFF; // Port C PullUp
|
24 | DDRD = 0xFF; // Port D = Ausgang
|
25 | PORTD = 0x00;
|
26 | ////////////////////////////////////////////////
|
27 | //LED Test
|
28 | led_on;
|
29 | _delay_ms(100);
|
30 | led_off;
|
31 |
|
32 | //INIT VS1002 gem Kap 8.1 Seite 22 Datasheet
|
33 | _delay_ms(10);
|
34 | MP3RES_high;
|
35 | while (!(PINB & (1 << 0))){
|
36 | }
|
37 | led_on;
|
38 |
|
39 | do
|
40 | {
|
41 |
|
42 |
|
43 |
|
44 |
|
45 | }
|
46 | while (1);
|
47 | return 0;
|
48 | }
|
Es wäre schön, wenn sich jemand meldet der Erfahrung mit der SPI
Schnitstelle hat.
Gruß
Norman