Re: Tips eller Samköp? SPI-Flash SST25VF080B
Re: Tips eller Samköp? SPI-Flash SST25VF080B
och jag får false = LED släckt, med 0x01 t.ex...
Missade att skriva det, sorry!
0 AND 1 = 0
1 AND 0 = 0
1 AND 1 = 1
Jag ska koppla in 8 LED's, så är det lättare att se vad man får ut för bitar...
En enkel slags debug...
EDIT: Vart tog BEEP's inlägg som jag svarade på innan mig vägen?
Missade att skriva det, sorry!
0 AND 1 = 0
1 AND 0 = 0
1 AND 1 = 1
Jag ska koppla in 8 LED's, så är det lättare att se vad man får ut för bitar...
En enkel slags debug...
EDIT: Vart tog BEEP's inlägg som jag svarade på innan mig vägen?
Re: Tips eller Samköp? SPI-Flash SST25VF080B
Inlägget var inte bra så jag tänkte att det var bäst att göra ett nytt innan någon hann läsa det 
Här är inlägget.

Här är inlägget.
"Och för att bekräfta att det inte är 0xFF som kommer ut, så har jag provat med (status & 0x01) osv.."
Om status är 0xFF så kommer "if (status & 0x01)" att vara sant.
Alla jämförelser som inte ger resultatet noll kommer att vara sant.
Senast redigerad av BEEP 21 mars 2009, 11:32:48, redigerad totalt 2 gånger.
Re: Tips eller Samköp? SPI-Flash SST25VF080B
"if(status & 0x02)"
Alla jämförelser med "status" där bit 1 är satt till 1 kommer att vara sanna.
"och jag får false = LED släckt, med 0x01 t.ex..."
Om "status" är 0x01 så blir det falskt för att bit 1 är noll.
Alla jämförelser med "status" där bit 1 är satt till 1 kommer att vara sanna.
"och jag får false = LED släckt, med 0x01 t.ex..."
Om "status" är 0x01 så blir det falskt för att bit 1 är noll.
Re: Tips eller Samköp? SPI-Flash SST25VF080B
"Kör du systemklocka på 8MHz?"
Ja.
"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."
Jag hade glömt att ta bort programmeringskabeln så nu blir status 0x00 (stendöd). Får ta och koppla in oscilloscopet och se hur signalerna ser ut.
Ja.
"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."
Jag hade glömt att ta bort programmeringskabeln så nu blir status 0x00 (stendöd). Får ta och koppla in oscilloscopet och se hur signalerna ser ut.
Re: Tips eller Samköp? SPI-Flash SST25VF080B
Kan det verkligen vara så svårt? Jag trodde SPI var ganska enkelt (jämfört med I²C t.ex. som jag fasar för)... Är det så också att själva protokollet (instruktionerna till FLASH-minnet) är så komplicerat att det är svårt att veta om det är fel på själva SPI överföringen eller om man skickar felaktiga koder till minnet? En del minnen verkar ju vara jättejobbiga när det gäller att få dom att göra något överhuvudtaget.
Re: Tips eller Samköp? SPI-Flash SST25VF080B
Jag har nu fixat ihop ett videoklipp som visar att det fungerar!
FILM!
Något mer jag ska visa?
Kanske ska rita ett schema också...
FILM!
Kod: Markera allt
void WREN_Check(void)
{
unsigned char status = 0;
status = RDSR();
PORTD = status; //Lade till denna! För att visa vad jag får ut för data!
if (status & 0x02)
{
PORTB |= (1<<PORTB0);
}else{
PORTB &= ~(1<<PORTB0);
}
}
Kanske ska rita ett schema också...

Re: Tips eller Samköp? SPI-Flash SST25VF080B
Jag hänger inte alls med på vad du gör för att om man direkt kör WREN och WREN_Check utan något hokus pokus före så ska bara "status" bit.1 vara 1 (0x02).
Re: Tips eller Samköp? SPI-Flash SST25VF080B
Titta på sidan 6 i databladet....
Och på sidan 7 står det också: "Default at power-up for BP2, BP1, and BP0 is ‘111’. (All Blocks Protected)"
Jag får ju ut i filmen 00011110 där bit 1 är WEL biten 2,3,4 är BP 0,1 och 2. Allt precis så det ska vara!
Därför jag kör en AND för att kolla att just bit 1 är satt!
Jag såg att du hade == 0x02 i din SPIN kod, och det blir ju false eftersom bit 2,3,4 är satta från början vid uppstart.
Inget Hokus Pokus utan det är så enligt databladet.
Hänger du med nu?
Och på sidan 7 står det också: "Default at power-up for BP2, BP1, and BP0 is ‘111’. (All Blocks Protected)"
Jag får ju ut i filmen 00011110 där bit 1 är WEL biten 2,3,4 är BP 0,1 och 2. Allt precis så det ska vara!
Därför jag kör en AND för att kolla att just bit 1 är satt!
Jag såg att du hade == 0x02 i din SPIN kod, och det blir ju false eftersom bit 2,3,4 är satta från början vid uppstart.
Inget Hokus Pokus utan det är så enligt databladet.
Hänger du med nu?
Re: Tips eller Samköp? SPI-Flash SST25VF080B
Du har fått liv i minnet

"Och på sidan 7 står det också: "Default at power-up for BP2, BP1, and BP0 is ‘111’. (All Blocks Protected)""
Okej, då är jag med
"Jag såg att du hade == 0x02 i din SPIN kod, och det blir ju false eftersom bit 2,3,4 är satta från början vid uppstart."
Jag har haft lysdioder inkopplade för att se bitarna men om minnet ska köras i minst 4 MHz så fungerar det inte med min SPIN kod.
Tyvärr så är minnet lika dött med din kod på AVR sidan så jag ska ta och prova med ett nytt minne, kanske var det min katt Lucas som släckte ljuset när han var framme och nosade på kopplingarna.
EDIT:
"Inget Hokus Pokus utan det är så enligt databladet."
Det var inte din kod som jag kallade för "hokus pokus" för vad jag menade med det var att om man inte skickade något annat ("hokus pokus") till minnet före WREN och WREN_Check så skulle "status" vara 0x02.



"Och på sidan 7 står det också: "Default at power-up for BP2, BP1, and BP0 is ‘111’. (All Blocks Protected)""
Okej, då är jag med

"Jag såg att du hade == 0x02 i din SPIN kod, och det blir ju false eftersom bit 2,3,4 är satta från början vid uppstart."
Jag har haft lysdioder inkopplade för att se bitarna men om minnet ska köras i minst 4 MHz så fungerar det inte med min SPIN kod.
Tyvärr så är minnet lika dött med din kod på AVR sidan så jag ska ta och prova med ett nytt minne, kanske var det min katt Lucas som släckte ljuset när han var framme och nosade på kopplingarna.
EDIT:
"Inget Hokus Pokus utan det är så enligt databladet."
Det var inte din kod som jag kallade för "hokus pokus" för vad jag menade med det var att om man inte skickade något annat ("hokus pokus") till minnet före WREN och WREN_Check så skulle "status" vara 0x02.
Senast redigerad av BEEP 22 mars 2009, 02:17:45, redigerad totalt 2 gånger.
Re: Tips eller Samköp? SPI-Flash SST25VF080B
> kanske var det min katt Lucas som släckte ljuset
Tja, det sägs ju att det var Lucas som uppfann mörkret...
Tja, det sägs ju att det var Lucas som uppfann mörkret...

Re: Tips eller Samköp? SPI-Flash SST25VF080B
Jag hade en bil med ett Lucas elsystem och nästan varje gång jag startade bilen så gick 3-4 säkringar sönder. En eller två av dom var till ljuset 

Re: Tips eller Samköp? SPI-Flash SST25VF080B
Success!
Vad var felet?
Nästa steg är väl att skriva något till minnet, och sedan försöka läsa av det igen...
Vad var felet?
Nästa steg är väl att skriva något till minnet, och sedan försöka läsa av det igen...
Re: Tips eller Samköp? SPI-Flash SST25VF080B
Båda minnena var trasiga.
Min lödkolv går på 230 V så det kanske är den som är boven så nu drar jag för säkerhets skull ur kontakten medans jag löder på minnena.
Min lödkolv går på 230 V så det kanske är den som är boven så nu drar jag för säkerhets skull ur kontakten medans jag löder på minnena.
Re: Tips eller Samköp? SPI-Flash SST25VF080B
Jag har lödat fast ett nytt minne på kontakten till Propellern och det fungerar.
Hastigheten verkar inte vara något problem för det går att köra minnet väldigt långsamt.

Hastigheten verkar inte vara något problem för det går att köra minnet väldigt långsamt.
Kod: Markera allt
CON
'--- 80 MHz ---
_clkmode = xtal1 + pll16x ' PLL
_xinfreq = 5_000_000 ' Crystal 5 MHz
SI = 0 ' Serial Data Input
SCK = 1 ' Serial Clock
SO = 2 ' Serial Data Output
CE = 3 ' Chip Enable
LED_DEBUG = 7 ' Led
PIN_MASK = 1<<SI | 1<<SCK | 1<<CE | 1<<LED_DEBUG
PUB Main
Init ' Set pin and initialize SCK
WREN ' Enable Write Enable Latch
WREN_Check ' WEL check
repeat
PUB Init
dira |= PIN_MASK ' Set output
outa[SCK] := 0 ' Set clock to low initial state
PUB WREN
'' This procedure enables the Write Enable Latch.
'' It can also be used to Enables Write Status Register.
outa[CE] := 0 ' Enable device, clear CE low
Send_Byte($06) ' Send WREN command
outa[CE] := 1 ' Disable device, set CE high
PUB WREN_Check | byte_
'' This procedure checks to see if WEL bit set before program/erase.
byte_ := Read_Status_Register ' Read the status register
'--- Status leds ---
dira |= $FF00
outa |= (byte_<<8)
if byte_ & $02 ' Verify that WEL bit is set
outa[LED_DEBUG]~~
else
outa[LED_DEBUG]~
PUB Read_Status_Register | byte_
outa[CE] := 0 ' Enable device, clear CE low
Send_Byte($05) ' Send RDSR command
byte_ := Get_Byte ' Receive byte
outa[CE] := 1 ' Disable device, set CE high
result := byte_
PRI Send_Byte(out) | i
repeat i from 0 to 7 ' for (i = 0 i < 8 i++)
if (out & $80) == $80 ' check if MSB is high
outa[SI] := 1
else
outa[SI] := 0 ' if not, set to low
outa[SCK] := 1 ' toggle clock high
out := (out << 1) ' shift 1 place for next bit
outa[SCK] := 0 ' toggle clock low
PRI Get_Byte | i,in,temp
in := 0
repeat i from 0 to 7 ' for (i = 0 i < 8 i++)
in := (in << 1) ' shift 1 place to the left or shift in 0
temp := ina[SO]
outa[SCK] := 1 ' toggle clock high
if temp == 1 ' check to see if bit is high
in := in | $01 ' if high, make bit high
outa[SCK] := 0 ' toggle clock low
result := in
Senast redigerad av BEEP 23 mars 2009, 18:54:36, redigerad totalt 1 gång.