Hey,

Ik wil graag gaan leren over seriele dataoverdracht bijvoorbeeld tussen 2 controllers. Ik wil daar PIc's oid voor gaan gebruiken. Het probleem is alleen dat ik er (nog) een giga-n00b in ben. Weten jullie misschien handige sites oid waar ik daarover kan leren?

alvast bedankt,
Bernd

nobody?

Ik wil eigenlijk beginnen met het simpelweg (nouja simpel) overtsurenvan bijvoorbeeld wat bytes van de ene pic naar de andere. Bijvoorbeeld van een 16f628 naar een 16f877 oid.

Als je niet heel erg snel wilt kunnen communiceren kan je het via de UART's doen. Die knoop je dan aan elkaar. Je moet dan wel zelf een protocol bedenken voor je dataoverdracht.

Een andere mogelijkheid is bijvoorbeeld om een I2C bus te maken tussen de twee MCU's... Dat is wel wat meer programmeer-werk (als je daar geen software bibliotheken voor hebt) maar het voordeel is dat je meer dan 2 MCU's aan elkaar kan koppelen.

Een derde mogelijkheid is het bebruiken van gedeeld geheugen. Je moet dan 1 geheugen-chip bereikbaar maken voor allebij de MCU's. Dit vergt wel wat meer hardware kennis dan de twee andere oplossingen, maar op deze manier kan je heel snel gegevens uitwisselen.

Ok, nou hier gaan we dus al. Hoe zitten die I2C protocols en USARTS in elkaar. Ik heb gister al wel vlug wat gelzen over de USARt in de 877, maar vond geen nuttige info. Zo'n I2C protocol zie je heel vaak en het lijkt me wel leuk als ik volgend jaar tijdens mijn vervolgopleiding daar al wel wat van kan.
Ik zou dus graag een i2c systeempje opzetten. Snelheid is nu echt nog niet belangrijk. Mag lekker traag zijn :)

Voor de specificaties van de I2C bus kan je de volgende 'datasheet' gebruiken:

http://www.philipslogic.com/products/collateral/i2c/pdf/spec-i2cbus21.…

Nu weet ik niet zo heel veel van PIC-processoren, maar bij mijn weten zitten er in de 2 typen die jij noemt (16F628 & 16F877) geen ingebouwde I2C peripherals. Dit houdt in dat je het protocol (zoals in de datasheet staat) zelf moet gaan implementeren. Hiervoor gebruik je het beste 2 I/O lijnen van je microcontroller: 1 als kloklijn SCL en 1 als datalijn SDA.

Overigens kan je hierover op het internet veel meer informatie vinden. Zo heeft Philips ook een application note waarin ze op deze manier het I2C protocol implementeren op een 8051.

Op 24 april 2003 20:48:34 schreef Jeroen Koeter:
Voor de specificaties van de I2C bus kan je de volgende 'datasheet' gebruiken:

http://www.philipslogic.com/products/collateral/i2c/pdf/spec-i2cbus21.…

Nu weet ik niet zo heel veel van PIC-processoren, maar bij mijn weten zitten er in de 2 typen die jij noemt (16F628 & 16F877) geen ingebouwde I2C peripherals.

klopt voor de 16F628, maar de 16F877 heeft een MSSP die als ik het goed heb zowel als master als als slave kan gebruiken. Aangezien een software slave lastig is zou ik de 16F877 als slave en de 16F628 als master nemen.

Ok, bedankt alvast voor de info. Ik heb het sheetje ff egdownload. Maar aangezien in een behoorlijke n00b ben is het misschien handig als ik ook eerst ff een tutorial of website, whatever, lees met de basisbegrippen zegmaar. Ik zal nu ook weer ff gaan zoeken op google, maar als jullie nog iets weten...graag.
In wat voor taal moet ik dit soort dingen eigenlijk gaan proggen. Ik zou het graag in asm willen doen, maar als dat niet kan wil ik ook best een andere taal aanleren ofzo.

@ wouter: wat is een MSSP?

Op 25 april 2003 11:25:00 schreef Bernd:
@ wouter: wat is een MSSP?

RTFM [ http://www.wikipedia.org/wiki/RTFM ]

Het is de microchip naam voor de hardware module die (oa) I2C onderteunt.

Hier heb je een application note van de makers van de PIC. Hierin wordt I2C geimplementeerd met de MSSP (Master Synchronous Serial Port = o.a. een master/slave I2C port).

http://www.microchip.com/download/appnote/pic16/00735a.pdf

En je hebt gelijk Wouter, de 877 heeft een MMSP.

ok ik ga het allemaal even rustig lezen/leren en dan blaat ik wel weer iets onzinnigs hier :)