Hallo Leute! Ich bin mit meiner Schaltung am Verzweifeln und hoffe nun dass sich bei euch jemand damit auskennt: Ich habe eine Schaltung gebaut, welche der easyweb-Anwendung für den MSP430F149 ähnelt. Sinn der Schaltung: Interface zwischen Ethernet und einem Funkchip, mit dem ich Datenpakete per Funk übertragen kann. Alles funktioniert einwandfrei, ich musste nur leider den MSP430F149 wegen zu wenig RAM durch den MSP430F1611 ersetzen. Beide Chips sind pinkompatibel und bis auf einige zusätzliche Features, welche von mir aber nicht benutzt werden gleich. Das Problem ist, dass die Schaltung nun nicht mehr richtig funktionert. Die Ethernetseite arbeitet, denn auf einen Ping wird geantwortet, der Funkchip arbeitet aber nicht mehr. Dieser ist bis auf ein paar Steuerleitungen an die SPI 0-Schnittstelle angeschlossen. So wies aussieht können die beiden Bausteine nun nicht mehr darüber kommunizieren. Kann sich einer denken woran das liegt? Vielleicht an anderen timings, oder Interruptvektoren? Ich benutze denn gcc-compiler. Vielen Dank für Hilfe, Gruß, Florian
Hello All; I have to modify the following source code which was written for atmega128 ( using avr-gcc) to port it in msp430f1611 using IAR compiler, and I would be very grateful if you could help me. any help any advice will be appreciated Thanks ================================================= //void ReadEEPROM (BYTE *pData_buff, unsigned short address, unsigned short length) // DESCRIPTION: // Reads data from the 4kB MCU EEPROM // Paramaeters // BYTE *pData_buff : A pointer to the read buffer // unsigned short address : The address of the first read byte // unsigned short NUM_BYTES : The number of bytes to read //---------------------------------------------------------------------- --------------------------------- void ReadEEPROM(BYTE *pData_buff, unsigned short address, unsigned short NUM_BYTES) { // Wait for the last write operation to complete while (EECR & BM(EEWE)); // For each byte... do { // Setup the address register, issue the read command, and store the result EEAR = address++; EECR |= BM(EERE); *(pData_buff++) = EEDR; } while (--NUM_BYTES); } // ReadEEPROM
Was ist denn rausgekommen? Funktioniert es mit dem MSP430F1611? Ich habe ein ähnliches Problem: Der Code, mit dem der MSP430F149 mit Karten (MMC/SDC) kommuniziert, funktionert auf auf dem MSP430F1611 (Rev. A) nicht.
wie funktioniert nicht??? das ist echt doof... ich muß einige applikationen den msp430f149 gegen msp430f1612 eintauschen! dort wird auch exesiv vom spi gebrauch gemacht. wenn das dann nicht geht, ist das echt ein problem. habt ihr denn schon rausbekommen, woran es liegt??
In der Yahoo-Group MSP430 wurde dieses Problem behandelt. (z.B. Message 15136) Irgendwie muss beim 1611 ein 2,2k Widerstand in Serie geklemmt werden.
Ja, dachte ich auch, funktioniert aber nicht. Selbst mit 33 kOhm Pullup an jeder Ader und 100 Ohm Reihenwiderständen geht es nicht. Ich checke das mit der funktionierenden Software, die ich nur minimal angepasst auf dem 1611 laufen lasse und umgekehrt.
Da bisher noch niemand auf meine Frage vom 3.10. eingegangen ist und hier sich Spezies mit dem MPS430F1611 beschäftigen, versuch ich noch einmal meine Frage zum RAM: Wie kann man den gesamten RAM (oder ca 8kB ) eines MSP430F1611 als Feld verwenden? Ich möchte ca. 8kB des RAMs zur schnellen Zwischenabspeicherung von Werten, die der ADC12 liefert, verwenden. (eine Art kleiner Speicheroszi für einmalige Vorgänge). Dazu habe ich ein Feld angelegt. Solange das Feld kleiner ca. 2kB ist, lässt sich das Programm problemlos starten. Wird ein Feld in der gewünschten Größe angelegt, lässt sich das Programm nicht starten. Lt. Datenblatt teilt sich der RAM in 8kB Extended und 2kB Mirrored auf. Was ist darunter zu verstehen? Kann jemand einen Tipp geben, wie man das Problem lösen kann. MfG Wolfgang
Also der 1611 hat irgendwas abbekommen und wird vom Debgger nicht mehr gefunden; mit 149 funktioniert es und vermutlich auch mit neuen 1611, die ich demnächst bekomme. Es sieht nach einem Hardware-Defekt des einen ICs aus. @Wolfgag: Deklariere einfach ein 8 kB grosses Datenfeld. Alternativ geht auch malloc.
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.