pic till I2C EEPROM
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)
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)
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
[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
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...
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...
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.
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.
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:
men där kommer inte in något på minner..
någon som har nån smart lösning?
jag tycker att koden borde se ut som följande:
Kod: Markera allt
I2CWrite sda,scl,%10100000,0,[STR indata0\50]
någon som har nån smart lösning?
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?

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?
