pic till I2C EEPROM

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

pic till I2C EEPROM

Inlägg av mullemeck »

Hej!


Har kopplat in ett I2C EEPROM 24FC256 till en pic.

Men om jag skriver till det och försöker läsa sen så får den bara in noll.
jag är inte säker på om det är läsningen eller skrivningen som inte funkar..

Kod: Markera allt

cont CON %10100000


I2CWrite PORTC.4,PORTC.5,cont,17,[52]
Pause 800

I2CRead PORTC.4,PORTC,5,cont,17,[ret]
Pause 600
Debug DEC ret,10,13
Jag tycker att koden borde funkat..
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Inlägg av mullemeck »

Har nu försökt få igång det i några timmar men det vill verkligen inte fungera..

det enda jag får ut när jag läser är 0.

finns det nått sätt man kan kolla om det är läsningen eller skrivningen som är fel?


eller kolla så att minnet fungerar?
Användarvisningsbild
mrmike
Inlägg: 301
Blev medlem: 29 oktober 2003, 20:40:12

Inlägg av mrmike »

Om du nån gång byggt en JDM så går det att läsa å skriva I2C-minnen med den. Sen borde det väl finnas mängder med kod på internet? För säkerhets skull kan du ju koppla WP till jord.
Senast redigerad av mrmike 13 mars 2004, 20:01:44, redigerad totalt 1 gång.
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Inlägg av mullemeck »

testade nu att läsa och skriva lite till det med min pic programerare.. och det funkade utmärkt.. då är det alltså koden i pic:en som inte funkar då..
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Inlägg av mullemeck »

wee.. nu funkade det..

fick tydligen bara skriva dit hexadecimala värden.. lite skummt
Användarvisningsbild
mrmike
Inlägg: 301
Blev medlem: 29 oktober 2003, 20:40:12

Inlägg av mrmike »

Grattis. Menar du skriva hexadecimalt i kompilatorn/assemblern? Minnet vill ha det binärt hoppas jag :)
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Inlägg av mullemeck »

jo i kompilatorn... ganska skummt..

för i kompilatorns manual så fanns där flera exempel där de hade vanliga decimala tal.. helt skumt..
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

är du säker på att du skrev rätt? Kompilatorn ska göra om det till binära. Det var ingen definiering du missa för att visa att det är decimalt?
Användarvisningsbild
mrmike
Inlägg: 301
Blev medlem: 29 oktober 2003, 20:40:12

Inlägg av mrmike »

Råkade ut för samma sak när jag bytte version av MPLAB. Där kan man använda RADIX för att sätta vilken form som ska vara standard. Det kanske finns nåt liknande i din kompilator.
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Inlägg av mullemeck »

nej i picbasic så är decimalt standard förutom när man skickar decimalt få då måste man skriva lite argument så det inte bli ascii

i manualen står det att man får skiva såhär:
I2CWrite sda,scl,%10100000,addr,[6]
men det funkar inte..

om man därimot skriver som
I2CWrite sda,scl,%10100000,addr,[$6]
så funkar det..$ tecknet säjer att det är hexadecimal..

men det spelar inte så stor roll.. man får bara konvertera allt till hex först..
Användarvisningsbild
baltazar
Inlägg: 106
Blev medlem: 19 oktober 2003, 21:50:18

Inlägg av baltazar »

>>Mr Mike
"borde finnas mängder med kod på internet", jag skulle gärna vilja komma över lite sån kod, fast i assembler. Har letat länge o väl men inte hittat det jag söker. Tänkte använda usart half duplex, verkar som det skulle funka mellan en 16f628 och ett eeprom. Vet du om någon sådan länk så skulle jag vara tacksam.
Användarvisningsbild
mrmike
Inlägg: 301
Blev medlem: 29 oktober 2003, 20:40:12

Inlägg av mrmike »

Jag menade inte riktigt så specifikt som att använda USART:en. Bitbangande borde det däremot finnas gott om. t.ex. http://www.piclist.com/techref/microchip/24LC65-tu.htm.
Tyvärr har jag ingen länk för hur man använder USART:en med minnen men databladet för 16f628 innehåller Synchronuos USART transmit/recieve steg-för-steg-setup. Sen borde det bara vara att skicka och ta emot. Jag har inte använt i2c men all information på bussen skickas väl i bytes, alltså heltalsmultiplar av 8 bitar (eller vad man ska kalla det. 8 bitar, 16 bitar, 24 bitar, 32 bitar, ..., 8*n bitar)?
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

Tror inte man kan få ihop I2C med USARTen, men det finns hårdvaru-I2C på de större picarna.

Bit-bang ska nog funka bra, behöver själv strax fixa ihop I2C mellan en pic16f648a och en seriell DAC, så om det inte redan finns tillräckligt med I2C-kod på nätet så kan jag slänga upp min :)
Användarvisningsbild
zus
Inlägg: 198
Blev medlem: 14 december 2003, 11:34:08
Ort: Göteborg

Inlägg av zus »

USART:en kanske inte är rätt. Har 16f628 MSSP?
Användarvisningsbild
mrmike
Inlägg: 301
Blev medlem: 29 oktober 2003, 20:40:12

Inlägg av mrmike »

nix, det har den inte.
Skriv svar