Robbertbd
robotica rules :D
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.
Robbertbd
robotica rules :D
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.
Robbertbd
robotica rules :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
Robbertbd
robotica rules :D
ik heb deze gevonden:
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?
Robbertbd
robotica rules :D
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
Robbertbd
robotica rules :D
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 ]
doutsje
vroeger was ik een twijfelaar maar plots weet ik het niet meer zo goed.
weet er iemand een site met een goede uitleg over I2C? wat daar snap ik toch nog altijd niks van
douwe
Robbertbd
robotica rules :D
ik ga een pic 16F777A kopen
en een 24LC32.
als iemand het aantal adressen weet is dat nog staads welkom 
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 ]
Robbertbd
robotica rules :D
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 
[Bericht gewijzigd door Robbertbd op ]
doutsje
vroeger was ik een twijfelaar maar plots weet ik het niet meer zo goed.
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 ]
Robbertbd
robotica rules :D
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
Robbertbd
robotica rules :D
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.
Robbertbd
robotica rules :D
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 
Robbert
p.s. al vast bedankt.