pic till I2C EEPROM

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
baltazar
Inlägg: 106
Blev medlem: 19 oktober 2003, 21:50:18

Inlägg av baltazar »

Ja, nu blev mer förvirrad än vanligt... jag trodde att I2C på något sätt "ingick" i usart.
Vi gör så här istället, jag beskriver vad jag vill göra.
Jag använder en 16f628 till att mäta hur lång tid det tar mellan två avbrott på RB0, svaret får jag som ett 16-bitars tal och sparar i två 8-bitars ord.
Dessa två ord vill jag direkt spara ner till ett eeprom, innan jag mäter nästa period. Det kommer att handla om minst 30k värden som ska sparas.
Sen när jag mätt färdigt vill jag kunna "tanka" in dessa värden till en PC.
Så vad väljer jag då för slags metod?
(ingen som provat att spara till ett usb-minne från en PIC, skulle vara idealisk i detta fall)
Användarvisningsbild
mrmike
Inlägg: 301
Blev medlem: 29 oktober 2003, 20:40:12

Inlägg av mrmike »

Vad är kortaste tiden mellan avbrotten? PIC:en ska ju ha tid på sig att lagra datan innan ett nytt avbrott inträffar. Jag skulle nog använda en PIC med MSSP och USART och koppla MSSP:n till ett seriellt minne och USART:en till PC:n. Kanske också skriva en liten buffer så att man behöver oroa sig ännu mindre för att PIC:en pysslar med annat när ett avbrott kommer (beror ju på hur stor precision du ska ha). För att lagra 30000 värden behöver du ett minne på minst 512 kbit t.ex. 24512 (i2c) 25512 (spi)

[edit] hmm...kanske inte svarade på frågan...vill du använda 16f628 så får du nog kommunicera med minnet bara med hjälp av mjukvara om du inte hittar nåt annat minne som kan användas med USRT:n
Användarvisningsbild
mrmike
Inlägg: 301
Blev medlem: 29 oktober 2003, 20:40:12

Inlägg av mrmike »

Med risk för att förvirra ännu mer, en liten idé om hur man kanske skulle kunna använda ett spiminne med USART:en. Tanken är iaf att D1,D2 och R1 bildar en OCH-grind som väljer om SI ska "se" det som finns på Data-linan. D3 ska förhindra att SO drar ner Data-linan.
Bild
Användarvisningsbild
baltazar
Inlägg: 106
Blev medlem: 19 oktober 2003, 21:50:18

Inlägg av baltazar »

Tiden mellan avbrotten är inte kritisk, pic:en måste hinna spara gott o väl.
Jag kör med 4MHz osc. och kortaste tiden mellan två avbrott är ca 5000us.
Alltså hinner jag med 5000 instruktioner innan kretsen behöver vara beredd på avbrott igen.
Vad är MSSP för något? När jag läser databladet får man ju känslan av det ska gå fint att spara till ett eeprom via usart, eller har jag missuppfattat det?

Och angående ett usb-minne, ingen som funderat på detta? För svårt kanske...
Användarvisningsbild
mrmike
Inlägg: 301
Blev medlem: 29 oktober 2003, 20:40:12

Inlägg av mrmike »

Då borde ju PIC:en hinna med men jag undrar hur lång tid man måste vänta innan man kan göra nästa skrivning till minnet.
Man får intrycket av att det finns minnen som passar perfekt till USRT:en. Du kan ju alltid skicka ett mejl och fråga.
MSSP:n ger hårdvarustöd för I2C och SPI. Finns några 18-pinnars 16F:ar som har det.
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Inlägg av mullemeck »

tror att på det minnet jag har så kan man skriva in typ 60 byte åt gången till det, sen måste man vänta i 5ms innan man får göra nått mer...

men är inte helt säker
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Inlägg av mullemeck »

håller nu på och försöker skriva in 50byte data i ett svep till minnet, men det vill inte fungera..

jag tycker att koden borde se ut som följande:

Kod: Markera allt

I2CWrite sda,scl,%10100000,0,[STR indata0\50]
men där kommer inte in något på minner..

någon som har nån smart lösning?
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Inlägg av mullemeck »

Ja då var problemet med minnet uppe på tapeten igen, har nu som jag skrivit i en annan tråd börjat få igång min ledsnurra.


Nu trilskas minnet ordentligt och inget går som jag tycker det borde.. så jag börjar misstänka att man kanske inte kan koppla det som jag har gjort.

Minnets datapin och clockpin är båda kopplade till varsin pinne på de två mikrokontrollerna som sitter på snurran och då är tanken att den ena ska skriva till minnet och den andra sedan läsa från det.

Går det att koppla som på schemat nedan? eller blir det problem att ha minnet kopplat till båda Pic processorerna samtidigt?
Bild
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

Det där ska gå fint, fast du behöver någon funktion för att synka så båda PICarna inte försöker använda minnet/bussen samtidigt...
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Inlägg av mullemeck »

Jo jag har lite ledare som går direkt mellan Pic:arna, har rensat schemat lite för att det skulle gå lättare att se det jag frågade om..


Okej, skönt att höra att hårdvaran ska funka.. då är det bara nått i programeringen som inte stämmer då...
Skriv svar