Forum: Mikrocontroller und Digitale Elektronik Microchip Wifi Demo APP portieren


von Bastian Otto (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,
ich versuche gerade meine Software, die zuvor auf dem Microchip Demo 
Board lief auf meine eigene Hardware zu portieren. Vorab erst einmal die 
Eckdaten zu dem bisher verwendeten "Entwicklungsumgebung":

-PicKit3
-Explorer 16 mit Pic24FJ128GA010
-MRF24WB0MA / SPI1
-SW: Microchip DEMO APP für MRF24WB0 Module
-MpLab(C30 Compiler)

Für die neue HW soll die modifizierte SW sowie folgende Komponenten 
verwendet werden.

-PicKit 3
-PIC24FJ256GA110
-MRF24WB0MA / SPI2
-MpLab(C30 Compiler)


Bisher habe ich bereits einige Änderungen in der HWP EX16_MRF24WB C30.h 
vorgenommen und die PINS an die aktuelle HW angepasst. Microchip hat 
bereits diverse Defines für sämtliche Controller vorgesehen, sodass ein 
Wechsel auf den von mir gewählten µC eigentlich auch kein Problem 
darstellen sollte - eigentlich. Mit meinem Debugger komme ich wie 
erwartet auf mein Board, jedoch bleibt mein Programm unerwartet an 
folgender Stelle hängen:
1
// Check to ensure that the vNeedToSaveDefaults flag is zero, 
2
// indicating that this is the first iteration through the do 
3
// loop.  If we have already saved the defaults once and the 
4
// EEPROM/Flash still doesn't pass the validity check, then it 
5
// means we aren't successfully reading or writing to the 
6
// EEPROM/Flash.  This means you have a hardware error and/or 
7
// SPI configuration error. 
8
if(vNeedToSaveDefaults) 
9
{ 
10
                while(1); 
11
} 
12
  
13
// Set flag and restart loop to load ROM defaults and save them 
14
vNeedToSaveDefaults = 1; 
15
continue; 
16
}

Es wird sich wohl um ein SPI Problem handeln, was ich mir jedoch nicht 
erklären kann ist, dass sich die SPI-PINS alle einzeln setzen lassen 
aber SPI nicht funktioniert. Mit der alten HW gab es hier nie Probleme 
auch nicht nach dem Tausch des mitgelieferten EEPROMS.
Ich komme nun aber irgendwie nicht auf den EEPROM. Die HW habe ich 
durchgemessen und bin der Meinung, dass alles i.O. ist. Die Treiber 
wurden von mir nicht geändert lediglich, wie erwähnt, die Pinbelegeung! 
Ich hoffe, dass es hier jemanden gibt, der mit der Demo App von 
Microchip bereits Erfahrungen hat aber auch sonst bin ich über jeden 
Beitrag dankbar. Zur Sicherheit habe ich noch einmal die HWP HW 
EX16_MRF2WB C30.h -Datei angehängt (leider ist diese etwas 
"überkommentiert" da vieles nicht mehr gebraucht wird (ENC-Modul etc))

Hoffe jemand hat eine zündende Idee für mich
Danke und Gruß

B.Otto

von Bastian Otto (Gast)


Lesenswert?

Moin nochmal,
sind meine Ausführungen so schwammig oder was ist das Problem, wäre echt 
nett wenn sich jemand dazu äußern würde, danke vielmals.

Beste Grüße
Bastian

von Frank K. (fchk)


Lesenswert?

Hänge einen Logic Analyzer an die SPI-Pins von EEPROM und schau, was da 
passiert.

Hast Du überhaupt die SCK, MISO und MOSI Pins von SPI1 auf RD9-RD11 bzw 
RP4, RP3 und RP12 gemappt? Das macht der Stack nicht automatisch.

fchk

von Bastian Otto (Gast)


Lesenswert?

Moin nochmal,
tatsächlich hatte ich vergessen etwas zu mappen, danke für den Tipp 
Frank. Bin nun auch aus dem loop raus. Jetzt hänge ich allerdings in 
folgendem:
1
 
2
while (1)
3
{
4
   /* if received an external interrupt that signalled the RAW Move */
5
   /* completed then break out of this loop                         */
6
   if(RawMoveState.rawInterrupt & rawIntMask) //<-- da hängt er
7
   {
8
      break;
9
   }
10
      
11
   #if defined(WF_DEBUG)
12
   /* If timed out waiting for RAW Move complete than lock up */
13
   if (TickGet() - startTickCount >= maxAllowedTicks)
14
   {
15
      WF_ASSERT(FALSE);
16
   }
17
  #endif
18
        
19
} /* end while */

Also mein Interrupt vom WiFi Modul kommt ganz artig und die ISR wird 
auch abgearbeitet (INT3) dennoch geht´s nicht weiter!
hab auch grad nochmal den LogicAnalyzer an mein SPI2 angedongelt - sieht 
soweit gut aus, CLK sowie MISO/MOSI arbeiten.
Im Internet habe ich schon einige wilde Sachen gelesen wie 'Compiler 
downgraden' etc. aber das kann nicht des Pudels Kern sein, oder?!

Gruß
Bastian

von Frank K. (fchk)


Lesenswert?

Bastian Otto schrieb:

> Im Internet habe ich schon einige wilde Sachen gelesen wie 'Compiler
> downgraden' etc. aber das kann nicht des Pudels Kern sein, oder?!

Doch, das ist mir mal bei PIC18 passiert, dass eine Sache mit C18 3.36 
ging, mit C18 3.37 aber nicht mehr. Das konnte ich im Assemblercode 
nachweisen.

Ansonsten habe ich da jetzt auch keine konkrete Lösung so eben mal 
parat.

fchk

von Bastian Otto (Gast)


Lesenswert?

Frank K. schrieb:
> Doch, das ist mir mal bei PIC18 passiert, dass eine Sache mit C18 3.36
> ging, mit C18 3.37 aber nicht mehr. Das konnte ich im Assemblercode
> nachweisen.

Das mag sein, mich wundert nur, dass ich das Projekt ja auch bereits 
genau so compiliert habe nur mit anderer Harware bzw. Pinning.

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
Noch kein Account? Hier anmelden.