PIC16F887 - Hardware -SPI und -I2C "gleichzeitig" nutzbar?

Gast #2743795
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
Gast #2743847
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.
Gast #2744311
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
#2744352
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.
Gast #2744527
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.