PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Atmega128 gegen 2561 getauscht. Nun Fehler beim SPI



Felix H.
05.11.2010, 18:37
Hi,

ich habe in einer Steuerung ein Atmega128 mit ENC28J60 Webserver laufen. Da mir der Speicherplatz ein bisschen zu klein war, bin ich auf einen Atmega2561 umgestiegen. Leider funktioniert nun die Kommunikation mit dem ENC28J60 über den SPI nicht mehr richtig.

Die initialisierung von dem ENC28J60 funktioniert noch einwandfrei. Sprich IP Adresse rüberschicken, ect. Frage ich allerdings im Programmablauf den Status vom ENC28J60 ab, hängt sich das Programm auf. Totalabsturz vom gesamten µC!

Ich habe am Programm nichts geändert zwischen Atmega128 und Atmega2561.


$regfile = "m2561def.dat"
$crystal = 8000000
$baud = 19200
$hwstack = 200
$swstack = 200
$framesize = 200

$lib "glcd.lbx"
$include "enc28j60.inc"
$lib "tcpip.lbx"

Config Graphlcd = 240 * 128 , Dataport = Porta , Controlport = Portc , Ce = 3 , Cd = 0 , Rd = 1 , Wr = 5 , Reset = 2 , Fs = 6 , Mode = 8

Config Adc = Single , Prescaler = Auto , Reference = Avcc

Config 1wire = Portc.7
Enc28j60_cs Alias Portb.0

Config Enc28j60_cs = Output

$include "variablenenc.inc"
$include "ipconfig.inc"

Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 4 , Noss = 0



Spiinit

Waitms 500

Gruß
Felix

Felix H.
06.11.2010, 13:46
Hi,

hab jetz an jeden SPI Pin direkt am ENC28J60 einen 22p Kondensator sowie einen 1K Widerstand nach GND gelötet. Die 3,3V sowie 5V Versorgung zusätzlich nochmal mit je 2200µF gepuffert. Nun funktioniert das ganze wieder wie gewohnt =).

Hätte nicht gedacht, dass der SPI bei einer Leiterbahnlänge von 3,5 cm so Störanfällig ist.

MfG

Vitis
07.11.2010, 10:41
vorallem die 2200µF und ggf. noch n paar hundert nF an der Versorgung des ENC
bringen was, der Baustein schluckt mächtig Saft und knallt richtig Störungen auf die
Versorgungsspannung.
Die Störanfälligkeit des SPI hängt auch stark vom Bustakt ab.
Hast Du Dir schonmal die Flanken des SPI-Signals nach Deiner Kur angeschaut?