Forum: Mikrocontroller und Digitale Elektronik PIC16F887 - Hardware -SPI und -I2C "gleichzeitig" nutzbar?


von PIC (Gast)


Lesenswert?

Hallo,

ich habe zwei Experimentierboards hier mit dem PIC16F887.
Deshalb möchte ich diesen Controller verwenden.

Meine Absicht war nun ein SPI-LCD
(http://www.lcd-module.de/deu/pdf/grafik/dogs102-6.pdf) und einen 
Beschleunigungssensor
(http://www.elv.de/3-achsen-beschleunigungssensor-3d-bs-komplettbausatz.html),
den man wahlweise mit I2C oder SPI ansprechen kann, damit anzusteuern.

Heute ist mir dann aufgefallen, dass es nur ein MSSP-Modul gibt.
Somit steht also entweder I2C oder SPI zur Verfügung.

Das heißt doch, dass ich jetzt eine dieser Schnittstellen in Software 
machen müsste...
Welche würde sich dafür am Besten anbieten?

Was für eine Software-Architektur würded ihr hierfür verwenden?
Einfach simpel die Super-Loop-Architektur oder mit einem einfachen 
kooperativen Scheduler?


Viele Grüße

von holger (Gast)


Lesenswert?

>Das heißt doch, dass ich jetzt eine dieser Schnittstellen in Software
>machen müsste...
>Welche würde sich dafür am Besten anbieten?

SPI ist recht simpel.
Besser wäre es aber einen Controller zu nehmen der beide
Schnittstellen hat. Muss es ein PIC16 sein? Muss es
überhaupt ein PIC sein?

>Was für eine Software-Architektur würded ihr hierfür verwenden?
>Einfach simpel die Super-Loop-Architektur oder mit einem einfachen
>kooperativen Scheduler?

Scheduler auf PIC16 willst du nicht wirklich.

von PICfan (Gast)


Lesenswert?

PIC schrieb im Beitrag #2743795:
> den man wahlweise mit I2C oder SPI ansprechen kann

Also wenn der auch über SPI geht, würde ich beide an einem SPI legen. 
Über SPI kann man mehrerer geräte ansprechen.  Mann braucht nur für 
jedes einem CS leitung.

HTH

von Michael S. (rbs_phoenix)


Lesenswert?

holger schrieb:
> Muss es ein PIC16 sein? Muss es
> überhaupt ein PIC sein?

Zu 1. geb ich dir "recht", es gibt zwar PIC16 mit 2 MSSP-Modulen (z.B. 
16F1827), PIC18 ist allerdings schon besser und kostet ca. gleich viel.

Zu 2. Wieso nicht PIC?? Der schafft es doch locker, ich sehe keinen 
logischen sinn drin, deswegen zu wechseln.


Ich frag mich allerdings auch, was dich daran hindert, beides auf SPI 
laufen zu lassen, wenn du es wählen kannst. Selbst wenn du 2 Module 
hast, musst du 2 Interruptroutinen schreiben oder halt beide Module 
nutzen usw. Mit einem ist es doch viel angenehmer.

von PIC (Gast)


Lesenswert?

PICfan schrieb:
> PIC schrieb:
>> den man wahlweise mit I2C oder SPI ansprechen kann
>
> Also wenn der auch über SPI geht, würde ich beide an einem SPI legen.
> Über SPI kann man mehrerer geräte ansprechen.  Mann braucht nur für
> jedes einem CS leitung.
>
> HTH

Michael Skropski schrieb:
> Ich frag mich allerdings auch, was dich daran hindert, beides auf SPI
> laufen zu lassen, wenn du es wählen kannst. Selbst wenn du 2 Module
> hast, musst du 2 Interruptroutinen schreiben oder halt beide Module
> nutzen usw. Mit einem ist es doch viel angenehmer.

Stimmt! Also wieso ich daran jetzt nicht gedacht habe... xD

Wieso PIC? Weil ich PICs mag und weil ich wie gesagt die beiden Boards 
da habe mit einem 16F887 drauf.

Wenn ich den mit den maximalen internen 8 MHz laufen lasse, habe ich 
"effektiv" ca. 2 MHz (wegen fosc/4).
Bei einem 1 ms "Tick" hätte ich dann noch 2000 Befehle minus den 
Overhead für einen Task zur Verfügung.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.