hallo

ik ben een beetje aan het zoeken geweest naar comunicatie tussen pic's eprom's enzo voort.
en zo ver ik weet gebeurt dat met I2C.
klopt dat?

en een HD44780 display werkt toch met de zelfde techniek?
ik heb in pic basic gezocht en vond dit:
RSIN
RSOUT

en met die termen kan ik toch met bijvoorbeeld een karakter eeprom comuniceren?
en ik kan van het pic toch iedere willikeurige ingang/ uitgang gebruiken?

Robbert

De HD44780 displays zijn paralel gestuurde display`s dus geen I2C.

Rsin/RSout geen idee.

Nee je kan niet zomaar elke pin gebruiken.

Er zijn Piccies die inwendig een I2C module hebben en die is gekoppeld aan 2 pinnetjes en deze zijn niet vrij definieerbaar.
Als je I2C gaat bitbangen omdat je piccie geen I2c module heeft dan kan je zo goed als elke pin gebruiken.

hallo

ik ben een beetje aan het lezen geweest en ik ben op zoek naar een geheugen waar van ik geen idee heb of het bestaat.
ik had dit in gedachte.
als de R/W ingang 1 is kan ik op een adres pin een nummer aan geven van de geheuge plaats. en op 8 1/0 poorten een 8bit woord zetten dat die dan op slaat op het adres wat ik heb in gegeven op de adres pin.

als ik dan de R/W ingang 0 maak en dan op de adres pin het zelfde adres zet als daarnet.
dat dan op de 8 1/0 poorten het 8bit woord komt te staan wat ik net heb ingegeven.

de werking met de pinnen en zo mag best wat af wijken.
bestaat zoon soort geheugen?
en als ik de spanning er af haal blijft het geheugen dan?

Robbert

Op 18 maart 2007 12:44:27 schreef Robbertbd:
hallo

...
de werking met de pinnen en zo mag best wat af wijken.
bestaat zoon soort geheugen?

Standaard RAM chippie. Je adres is echter ook een 8-bit (of groter) word.

en als ik de spanning er af haal blijft het geheugen dan?

Naar de electronische jachtvelden. Anders worden het een flash ROM of EEPROM o.i.d.

oke.
dan word het een flash ROM of EEPROM.
werken deze op de zelfde manier?
welke ic is simpel om mee te beginnen?

Robbert

ik heb deze gevonden:
http://www.futurlec.com/Pictures/93C56.jpg


Pin Number Description 
1 CS - Chip Select 
2 SK - Serial Data Clock 
3 DI - Serial Data Input 
4 DO - Serial Data Output 
5 GND - Ground 
6 ORG - Internal Organization 
7 DC - Don't Connect 
8 Vcc - Positive Power Supply 

alleen ik weet niet precies hoe die werkt.
ik heb in de datasheet gekeken maar daar word ik niet veel weizer van.
weet iemand heel simpel maar effectief uit te leggen hoe deze werkt?

Robbert

Ken het chippie niet. Als ik de pinning zo zie, doet het SPI en geen IIC.
Hoe deze werkt? Eh... nou... zo vreselijk gestandariseerd zijn die dingen nou ook weer niet... Staan er geen leuke diagrammetjes in de datasheet?

ik heb wat gevonden:


  ' Interface to a 24LC32 serial eeprom
 DEVICE = 16F877 
 DIM Loop AS BYTE
 DIM Array[10] AS BYTE

 ' Transmit bytes to the I2C bus
 BSTART                                 ' Send a START condition
 BUSOUT %10100000                       ' Target an eeprom, and send a WRITE command
 BUSOUT 0                               ' Send the HIGHBYTE of the address
 BUSOUT 0                               ' Send the LOWBYTE of the address
 
 FOR LOOP = 48 TO 57                    ' Create a loop containing ASCII 0 to 9
  BUSOUT LOOP                            ' Send the value of LOOP to the eeprom
 NEXT
                                   ' Close the loop
 BSTOP                                  ' Send a STOP condition
 DELAYMS 10                             ' Wait for the data to be entered into eeprom matrix

 ' Receive bytes from the I2C bus
 BSTART                                 ' Send a START condition
 BUSOUT %10100000                       ' Target an eeprom, and send a WRITE command
 BUSOUT 0                               ' Send the HIGHBYTE of the address
 BUSOUT 0                               ' Send the LOWBYTE of the address
 BRESTART                               ' Send a RESTART condition
 BUSOUT %10100001                       ' Target an eeprom, and send a READ command
 
 FOR Loop = 0 TO 9                      ' Create a loop
  Array[Loop] = BUSIN                    ' Load an array with bytes received 
  IF Loop = 9 THEN BSTOP : ELSE BUSACK   ' ACK or STOP ? 
 NEXT                                   ' Close the loop  
 
 PRINT AT 1,1, STR Array                ' Display the Array as a STRING 
 STOP

ik heb wat vraagjes over dit programma.


BUSOUT 0                               ' Send the HIGHBYTE of the address
 BUSOUT 0                               ' Send the LOWBYTE of the address

dit is toch de locatie van de gegevens die ik kwijt wil?
tot hoe ver gaan die?


FOR LOOP = 48 TO 57                    ' Create a loop containing ASCII 0 to 9
 BUSOUT LOOP                            ' Send the value of LOOP to the eeprom
 NEXT                                   ' Close the loop

dit is toch de informatie de verzonden moet worden naar het eeprom?
en deze neemt toch 9 byte in en die kan ik toch ook binair zenden?

nog wat vraagjes over het eerpom zelf.
welke pinnen verbind ik met het pic?
en de eeporm moet toch de zelfde kloksnelheid hebben als de pic?
dus een zelfde kristal?

Robbert

ik heb al het een en ander gevonden over de aansluiting van de scl en de sda pin.
en klopt het dat de a0, a1, en a2 pin niet aan gesl;oten hoeven worden?

ik zit eigenlijk alleen nog met de vraag hoe veel adressen er zijn:


BUSOUT 0                               ' Send the HIGHBYTE of the address
BUSOUT 0                               ' Send the LOWBYTE of the address

[Bericht gewijzigd door Robbertbd op ]

je gaat een SPI eeprom aansturen met I2C?
Veel succes.

24LC32 is I2C staat in de data sheet.

weet er iemand een site met een goede uitleg over I2C? wat daar snap ik toch nog altijd niks van

douwe

Tja als jij elke keer van onderwerp verranderd raken we ook wel in de war.

ik ga een pic 16F777A kopen
en een 24LC32.

als iemand het aantal adressen weet is dat nog staads welkom :p

Robbert

Zoek maar eens naar de I2C FAQ geschreven door vincent(vince)
Dan moet het wel duidelijk worden.
Voor onderdelen kijk eens bij VOTI.NL

[Bericht gewijzigd door The Headhunter op ]

jha daar bestel ik ook me spullen alleen de 24LC32 hebben ze helaas niet in dil vorm.

maar ik ga maandag effe langs "dil" in rotterdam.
even kijken of zie die daar hebben.
voor dubble prijs :p

[Bericht gewijzigd door Robbertbd op ]

link die hier op de site staat van de FAQ van vince is verandert naar: http://www.proto-labs.com/i2cfaq/i2cfaq.htm

dan op take me to the index klikken

[Bericht gewijzigd door doutsje op ]

die link werkt niet.

Robbert

ik heb wat simpels gevonden om naar het eprom te schrijven en er uit te lezen:

hier mee schrijf je naar de eeprom:


 ' Send a byte to the I2C bus.
 DIM VAR1 as BYTE                     ' We'll only read 8-bits
 DIM Address as WORD                  ' 16-bit address required
 SYMBOL Control = %10100000           ' Target an eeprom
 Address = 20                         ' Write to address 20
 VAR1 = 200                           ' The value place into address 20
 BUSOUT Control , Address , [ VAR1 ]  ' Send the byte to the eeprom
 DELAYMS 10                           ' Allow time for allocation of byte

read uit de eeprom:


 ' Receive a byte from the I2C bus and place it into variable VAR1.
 DIM VAR1 as BYTE               ' We'll only read 8-bits
 DIM Address as WORD            ' 16-bit address required
 SYMBOL Control %10100001       ' Target an eeprom
 Address = 20                   ' Read the value at address 20
 VAR1 = BUSIN Control , Address ' Read the byte from the eeprom

op deze manier ga ik mijn eeprom vol zetten met karakters.

Robbert

alleen waneer moet ik gewoon aan adres in vullen en waneer high bit en low bit.

Robbert

Als je naar de datasheet kijkt staat op pagina 1, de allereerste pagina in de sheet, hoe veel ruimte je beschikbaar hebt op je chip.

oke.
maar zit er dan nog verschil tussen het high en het low bit?

Robbert

ik heb nu twee eeprom's:
24LC32
24L32

als ik het goed begrijp kan ik bij de LC verzie met hihg byte en low byte werken.
waar ik geen hol van snap.
en met de L verzie ka ik gewoon een adres in vullen.
van 0 tot 8191?
en die zijn allemaal een byte groot?

is dat het enige verschil?

en nog een laatste vraag de 16F628A heeft toch geen I2C module?

als iemand deze alsjeblieft wil beantwoorden.
dan kan ik namelijk verder.
en ben ik helemaal gelukkig :p

Robbert

p.s. al vast bedankt.