Re: Tips eller Samköp? SPI-Flash SST25VF080B

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
BEEP
EF Sponsor
Inlägg: 1593
Blev medlem: 21 januari 2006, 16:57:56
Ort: Mölndal

Re: Tips eller Samköp? SPI-Flash SST25VF080B

Inlägg av BEEP »

Jag hade nog inte kopplat rätt för nu får jag ut nollor på SO men tyvärr ingen $02. Får läsa databladet och se om jag blir något klokare :)

Ska inte CE sättas hög i Init?

Kod: Markera allt

PUB Init
  dira |= PIN_MASK              ' Set output
  outa[CE]  := 1                ' Disable device, set CE high
  outa[SCK] := 0                ' Set clock to low initial state
Användarvisningsbild
BEEP
EF Sponsor
Inlägg: 1593
Blev medlem: 21 januari 2006, 16:57:56
Ort: Mölndal

SPI-Flash SST25VF080B från samköpet (alla µC).

Inlägg av BEEP »

Fortsättning på diskussionen från Tips eller Samköp? SPI-Flash SST25VF080B
Användarvisningsbild
gurgalof
EF Sponsor
Inlägg: 1311
Blev medlem: 18 februari 2004, 22:15:06
Ort: Göteborg
Kontakt:

Re: Tips eller Samköp? SPI-Flash SST25VF080B

Inlägg av gurgalof »

Jag har satt CE hög i min Init iaf...

Kod: Markera allt

void SPI_MasterInit(void)
{
   // Set MOSI and SCK output, all others input
   DDR_SPI = (1<<DD_MOSI)|(1<<DD_SCK)|(1<<DD_CE);
   // Enable SPI, Master, set clock rate fck/16
   SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0);
   // Make sure that CE is high(device disabled)
   PORT_SPI |= (1<<DD_CE);
}
Ska leta upp en 3,3V zener nu...
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: SPI-Flash SST25VF080B från samköpet (alla µC).

Inlägg av sodjan »

> Jag måste skaffa mig en 3,3V spänningskälla,...

Jag har 3.3V 250mA stabbar i TO92. Helt OK att köra från 5V. Säg 40:- inkl frakt för 10st.
Maila vid intresse...
Användarvisningsbild
BEEP
EF Sponsor
Inlägg: 1593
Blev medlem: 21 januari 2006, 16:57:56
Ort: Mölndal

Re: SPI-Flash SST25VF080B från samköpet (alla µC).

Inlägg av BEEP »

"Jag har satt CE hög i min Init iaf..."

Jag har bara lite snabbt skummat genom din kod så jag såg inte att du har satt CE hög i MasterInit. Just nu så har jag kopplat in mitt debugkort med lysdioder och lagt in några delayer för att se om µC skickar ut signalerna riktigt och det verkar den göra.

Börjar bli lite för gammal för att hålla på med saker som kräver tankeverksamhet, tror att jag ska skaffa mig någon annan enklare hobby som frimärkessamling, fågelskådning eller blomsterodling :)
Användarvisningsbild
gurgalof
EF Sponsor
Inlägg: 1311
Blev medlem: 18 februari 2004, 22:15:06
Ort: Göteborg
Kontakt:

Re: Tips eller Samköp? SPI-Flash SST25VF080B

Inlägg av gurgalof »

Jag har testat min kod nu, och den ville inte fungera...
Får vänta tills imorgon innan jag orkar felsöka.

Skam den som ger sig!
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Re: SPI-Flash SST25VF080B från samköpet (alla µC).

Inlägg av squiz3r »

BEEP skrev:Börjar bli lite för gammal för att hålla på med saker som kräver tankeverksamhet, tror att jag ska skaffa mig någon annan enklare hobby som frimärkessamling, fågelskådning eller blomsterodling :)
Hur kan du påstå att det är enkelt att odla blommor!? Jag har försökt mig på det flera gånger, utan resultat.. Elektronik är en baggis jämfört med blommor! :shock:
När man får elektronikproblem löses dem enkelt genom att tänka logiskt, men blommor vet inte vad logiskt betyder!!!

Mina minnen ligger fortfarande ouppackade i kuvärtet, är inte det ett allvarligt tecken på stress?? :cry:
Användarvisningsbild
gurgalof
EF Sponsor
Inlägg: 1311
Blev medlem: 18 februari 2004, 22:15:06
Ort: Göteborg
Kontakt:

Re: Tips eller Samköp? SPI-Flash SST25VF080B

Inlägg av gurgalof »

När jag ökade SPI-klockan från 500kHz till 4MHz, så verkar det fungera nu...
Och bitkollen hade jag ett litet fel på. Kopierade från exemplet, men den blev alltid true då.

Sedan verkade det som man skulle skicka en dummy-byte för att läsa av RDSR.

Kod: Markera allt

#include <avr/io.h>

#define DDR_SPI   DDRB
#define PORT_SPI  PORTB
#define DD_CE     PORTB2
#define DD_MOSI   PORTB3
#define DD_SCK    PORTB5

void SPI_MasterInit(void);
char SPI_MasterTransmit(char);
void CE_High(void);
void CE_Low(void);
void WREN(void);
unsigned char RDSR();
void WREN_Check(void);

int main()
{
	DDRC = 0xFF; // Set unused ports as outputs
	DDRD = 0xFF; // to not have them as "antennas"
	SPI_MasterInit(); //Initiate SPI Master
	WREN(); //Write Enable
	WREN_Check(); //Lights a LED if Write is enabled
}

void SPI_MasterInit(void)
{
	// Set MOSI and SCK output, all others input
	DDR_SPI = (1<<DD_MOSI)|(1<<DD_SCK)|(1<<DD_CE)|(1<<PORTB0);
	// Enable SPI, Master, set clock rate fck/2
	SPCR = (1<<SPE)|(1<<MSTR);
	SPSR = (1<<SPI2X);
	// Make sure that CE is high(device disabled)
	PORT_SPI |= (1<<DD_CE);
}

char SPI_MasterTransmit(char data)
{
	// Start transmission
	SPDR = data;
	// Wait for transmission complete
	while(!(SPSR & (1<<SPIF)));
	// Return the received byte
	return (SPDR);
}

void CE_High(void)
{
	PORT_SPI |= (1<<DD_CE);
}

void CE_Low(void)
{
	PORT_SPI &= ~(1<<DD_CE);
}

void WREN(void)
{
	CE_Low();
	SPI_MasterTransmit(0x06);
	CE_High();
}


unsigned char RDSR()
{
	unsigned char byte = 0;
	CE_Low();
	SPI_MasterTransmit(0x05);
	byte = SPI_MasterTransmit(0xFF);
	CE_High();
	return (byte);
}


void WREN_Check(void)
{
	unsigned char status = 0;
	status = RDSR();
	if (status & 0x02)
	{
		PORTB |= (1<<PORTB0);
	}else{
		PORTB &= ~(1<<PORTB0);
	}
}
Denna kod fungerar att sätta write enable och sedan kolla att den är enablead.

Minnena verkar inte vilja ha allt för låg SPI-klocka!

EDIT: Bild!
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: Tips eller Samköp? SPI-Flash SST25VF080B

Inlägg av vfr »

Minnena verkar inte vilja ha allt för låg SPI-klocka!

Det låter ju lite skumt. Inte så att jag misstror dig, men enligt SPI-standard så ska det väl inte finnas någon minimi-klockhastighet???

Jag har inte börjat pilla med mina ännu. Det är för mycket annat just nu...
Användarvisningsbild
gurgalof
EF Sponsor
Inlägg: 1311
Blev medlem: 18 februari 2004, 22:15:06
Ort: Göteborg
Kontakt:

Re: Tips eller Samköp? SPI-Flash SST25VF080B

Inlägg av gurgalof »

Det är vad jag har upplevt iallafall.
Fungerar inte på låg SPI-klocka men fungerar på hög.
Det kan ju vara något skumt med labbplatte kopplingen, vad vet jag.
Eller något med min kod, trots allt första gången jag använder SPI.
Användarvisningsbild
BEEP
EF Sponsor
Inlägg: 1593
Blev medlem: 21 januari 2006, 16:57:56
Ort: Mölndal

Re: Tips eller Samköp? SPI-Flash SST25VF080B

Inlägg av BEEP »

Jag har plockat fram STK500 och gjort ett litet snabb test med din kod. Det som händer är att status blir 0xFF både med eller utan minnet inkopplat, vilket gör att "if (status & 0x02)" tänder lysdioden.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Tips eller Samköp? SPI-Flash SST25VF080B

Inlägg av jesse »

>När jag ökade SPI-klockan från 500kHz till 4MHz, så verkar det fungera nu...
Låter ju jobbigt. Kan det verkligen vara så?

>Mina minnen ligger fortfarande ouppackade i kuvärtet, är inte det ett allvarligt tecken på stress??

Haha... jag har inte packat upp mina heller... har tusentals komponenter liggande orörda som jag köpt in på elfa, farnell och på auktion som jag bara hunnit titta på som hastigast... De (och flashminnena) kommer så småningom till nytta i kommande projekt. Och under tiden har ni andra kommit på precis hur man använder dem :D
Användarvisningsbild
BEEP
EF Sponsor
Inlägg: 1593
Blev medlem: 21 januari 2006, 16:57:56
Ort: Mölndal

Re: Tips eller Samköp? SPI-Flash SST25VF080B

Inlägg av BEEP »

Jag tror att jag ska dödsförklara minnena och lägga dom i cryo-tanken där dom får ligga ända tills någon kommer på hur man väcker liv i döda och botar sjukdomen ;)
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: Tips eller Samköp? SPI-Flash SST25VF080B

Inlägg av v-g »

Det är lätt att avancera i projekt utan att göra själva projektet, det är så att säga bara ett tankeprojekt och sen köper man prylar för att ptjaa eventuellt göra det senare :D

Har själv avancerat förbi många projekt, mångdubbelt fler än de "riktiga". :mrgreen:
Användarvisningsbild
gurgalof
EF Sponsor
Inlägg: 1311
Blev medlem: 18 februari 2004, 22:15:06
Ort: Göteborg
Kontakt:

Re: Tips eller Samköp? SPI-Flash SST25VF080B

Inlägg av gurgalof »

BEEP skrev:Jag har plockat fram STK500 och gjort ett litet snabb test med din kod. Det som händer är att status blir 0xFF både med eller utan minnet inkopplat, vilket gör att "if (status & 0x02)" tänder lysdioden.
Kör du systemklocka på 8MHz?

Du måste ha gjort något fel...
När jag drar ut minnet så är lysdioden släckt när jag har resetat, och med minnet i så lyser den.
Och för att bekräfta att det inte är 0xFF som kommer ut, så har jag provat med (status & 0x01) osv...

Det skulle vara såå mycket enklare med debug möjligheter, t.ex JTAG eller liknande.
Jag har ju bara en ISP programmerare.

Skulle ju iofs kunna använda RS232 till datorn så att jag kan se vad jag får tillbaka, problemet är att jag har ingen MAX3232.

Eller en LCD...
Skriv svar