Hej. Skulle behöva nåt relativt lättinterfaceat seriellt EEPROM som skall användas till en PIC. Tänkte mig runt 512Kbit i storlek. Bara hos MicroChip finns ju allafall tre gränssnitt att välja på: I2C, SPI och Microwire.
Det är ganska viktigt att det finns färdiga programmeringsrutiner (C) att få tag på någonstans.
Vilket gränssnitt är att föredra? För- och nackdelar?
Tacksam för svar.
//jack
Val av EEPROM
Det beror egentligen på vilka krav du ställer. Hur snabbt vill du skriva? Hur många ben har du tillgängt osv.
Micwire kanske är lite strulig att arbeta med men du sparar pinnar. Likaså med i2c (behövs 2 pinnar för att det ska funka). Men när du väl har implementerat ett i2c system så kan du ansluta ganska 2^7 eller 2^10 enheter som delar samma i2c buss, dvs. endast 2 pinnar!
SPI behöver 3 pinnar, sen 1 extra ben för varje enhet som anluts. Fördelen med SPI jämfört med i2c är hastigheten. SPI är även någorlunda mer tillgänglig än i2c.
Färdiga rutiner finns för alla ovanstående buss-system. SPI och i2c har oftast hårdvarustöd hos de nya PICen.
Mitt förslag: Pinnar har man gott om nu för tiden. Ta det som är mest tillgängligt!
Micwire kanske är lite strulig att arbeta med men du sparar pinnar. Likaså med i2c (behövs 2 pinnar för att det ska funka). Men när du väl har implementerat ett i2c system så kan du ansluta ganska 2^7 eller 2^10 enheter som delar samma i2c buss, dvs. endast 2 pinnar!
SPI behöver 3 pinnar, sen 1 extra ben för varje enhet som anluts. Fördelen med SPI jämfört med i2c är hastigheten. SPI är även någorlunda mer tillgänglig än i2c.
Färdiga rutiner finns för alla ovanstående buss-system. SPI och i2c har oftast hårdvarustöd hos de nya PICen.
Mitt förslag: Pinnar har man gott om nu för tiden. Ta det som är mest tillgängligt!
fatpo83: vad menar du med att man kan ha 2^10 enheter på en I²C bus? Enligt standart kan det vara max. 127....om man kan hålla belastningen på bussen långt nog nere.
Jag skulle rekommendera SPI till detta, man har inte timingskrav (förutom att man inte får köra för fort vilket i bit-bang är svårt), enklare kommandon osv.
Jag har kört I²C och SPI till EEPROM (och lite annat) och mjukvaramässigt är det en hel del mer struligt med I²C.
Edit: Storleken har betydelse? Kretsarna brukar vara i samma kapslingstyp, det är interfacet som skiljar sig så fysisk storlek är identisk.
Jag skulle rekommendera SPI till detta, man har inte timingskrav (förutom att man inte får köra för fort vilket i bit-bang är svårt), enklare kommandon osv.
Jag har kört I²C och SPI till EEPROM (och lite annat) och mjukvaramässigt är det en hel del mer struligt med I²C.
Edit: Storleken har betydelse? Kretsarna brukar vara i samma kapslingstyp, det är interfacet som skiljar sig så fysisk storlek är identisk.
Jag hade utgått från den nya extended addressing (10bitar) men dubbel kollade nyss, 127 är max.Icecap skrev:fatpo83: vad menar du med att man kan ha 2^10 enheter på en I²C bus? Enligt standart kan det vara max. 127....om man kan hålla belastningen på bussen långt nog nere.
Jag skulle rekommendera SPI till detta, man har inte timingskrav (förutom att man inte får köra för fort vilket i bit-bang är svårt), enklare kommandon osv.
Jag har kört I²C och SPI till EEPROM (och lite annat) och mjukvaramässigt är det en hel del mer struligt med I²C.
Edit: Storleken har betydelse? Kretsarna brukar vara i samma kapslingstyp, det är interfacet som skiljar sig så fysisk storlek är identisk.
