Forum: Mikrocontroller und Digitale Elektronik PIC vs IRdA / PIC18Fmit MCP2410


von Axel F. (pfennig)


Lesenswert?

Hallo erstmal :)

Lesen tu ich nun schon seit was längeren in diesen Forum und bin bislang 
begeistert,

Sachliche Foren in dieser Richtung sind derweil sehr selten

nun aber ist es soweit, wo auch ich mir einige Fragen stelle

es geht um einen Mikrocontroller der über die UART mit einen PDA über 
IRdA kommunizieren soll

grundlegende Erfahrungen mit dem PIC18F von Microchip sind vorhanden, so 
das wir uns derweil schwer tun mit einen Umstieg auf die PIC24F Familie 
wo das IRdA über einen on Board Encoder bereits implementiert ist....

nun weiss ich das der PIC18F ausserdem auch mit bis zu 2 UART's 
erhältlich ist, nun ist der PIC18F aber gennerelle wohl als 8 Bit 
Prozessor zu verstehen,

daher die 1. Frage,

Funktioniert eine Kommunikation prinzipielle über einen externen IRdA 
Encoder wie dem MCP2140 (denn der würde schon ein ausreichendes 
Protokoll liefern) mit einen 8Bit Architektur Chip wie den PIC18F? In 
der Literatur fand ich nichts in der hinsicht, ausser das der externe 
Encoder erstmal wohl mit PIC Chips zusammenarbeiten kann (der MCPXXX ist 
ja auch von Microchip ö.Ö), welche eine IRdA Code Tabelle mit on Board 
haben, bei den PIC 18 F kann ich dies aber nicht mit Sicherheit sagen! 
spielt so eine Tabelle überhaupt eine Rolle, sollte der MCPXXX Chip die 
nicht onBoard haben?

2. Frage
kann jeder Chip mit einer UART schnittstelle über dem MCP2140 
kommunizieren?

p.s. bei digikey werben sie mit einen Produkt, bei welchen ein PIC18FXXX 
in Verwendung ist, welcher wohl laut Werbung mit dem MCP2140 zusammmen 
arbeitet, (ist Werbung von Leuten denen ich mal eiskalt unterstelle, das 
die gerne was verkaufen wollen, und ich trau dort den Braten nicht, denn 
ich suche ja nach einer schnellen Lösung für ein Problem und nicht nach 
einer Herrausvorderung ....)

eine dritte Frage kam noch auf,
da microchip mit der PIC24F Familie Chips anbietet, welche wohl mit 
einen onBoard IRdA Enccoder ausgestattet sind, fragten wir uns, 
funktioniert die Kommunikation ausschliesslich nur über einen 16 BIT 
Architektur Chip (die PIC24F sind generelle ja 16bit) oder ist dies nur 
Zufall?


ich bedanke mich mal in Vorraus für jedes Informationsbringende 
Engargement

mit grüssen
Axel

von Frank K. (fchk)


Lesenswert?

Axel F. schrieb:

> grundlegende Erfahrungen mit dem PIC18F von Microchip sind vorhanden, so
> das wir uns derweil schwer tun mit einen Umstieg auf die PIC24F Familie
> wo das IRdA über einen on Board Encoder bereits implementiert ist....

An welcher Stelle tut Ihr Euch schwer? Programmiert Ihr noch in 
Assembler? Ja dann ist klar. In C sollte der Umstieg relativ schmerzlos 
sein.

> Funktioniert eine Kommunikation prinzipielle über einen externen IRdA
> Encoder wie dem MCP2140 (denn der würde schon ein ausreichendes
> Protokoll liefern) mit einen 8Bit Architektur Chip wie den PIC18F?

Prinzipiell ja. Der Haken ist: Welche Teile von IRDA braucht Ihr?

Braucht Ihr OBEX? Wenn ja, dann braucht Ihr mindestens einen 16 Bit PIC 
und könnt mit IRDA-Bridges wie dem MCP2140, aber auch anderen nicht oder 
nur eingeschränkt arbeiten.

Braucht Ihr FIR? Wenn ja, dann ist der MCP2140 zu langsam, dann braucht 
Ihr eine gänzlich andere Lösung.

Ein wenig Grundwissen über Irda und die einzelnen Protokollbestandteile 
braucht Ihr, um zu entscheiden, was Ihr nehmen könnt.

> kann jeder Chip mit einer UART schnittstelle über dem MCP2140
> kommunizieren?

prinzipiell ja.

> eine dritte Frage kam noch auf,
> da microchip mit der PIC24F Familie Chips anbietet, welche wohl mit
> einen onBoard IRdA Enccoder ausgestattet sind, fragten wir uns,
> funktioniert die Kommunikation ausschliesslich nur über einen 16 BIT
> Architektur Chip (die PIC24F sind generelle ja 16bit) oder ist dies nur
> Zufall?

Ein Faktor ist der Hardware-Fähigkeit eines UARTs, ein anderer die 
Komplexität bestimmter Protokollbestandteile wie OBEX. Das hängt davon 
ab, welche Fähigkeiten Ihr braucht.

fchk

von Axel F. (pfennig)


Lesenswert?

Danke erstmal für die ausführliche und schnelle Antwort

also, Programmiert wird der chip wohl in ein Like C Derivat, hier sind 
Erfahrungen vorhanden und dürfte nicht das Problem sein,
Befürchtungen waren vorhanden, beim Verwenden von vorhandenen oder nicht 
vorhandenen  Registern oder halt knapp ausgedrückt, die Angst vor bösen 
Überraschungen

zum 2. Punkt

das es hier eine Client Server Kommunikation gibt, hmm, hier müsst ich 
in Erfahrung bringen, ob der eingespannte PDA welcher über IrDA mit den 
PIC kommunizieren soll, seine Informationen über OBEX bereitstelllt oder 
nicht, ich denke mal das man hier das OBEX Protokol umgehen kann in dem 
man im PIC entsprechende Register ausliest und  entsprechend 
interpretiert,

hier kommt noch hinzu, das der Auftraggeber das PDA mit eigener Software 
ausstattet, bei welcher noch spezifiziert werden kann, das er dem OBEX 
ausweicht

also PDA schickt Anforderung an PIC, dieser liest ankommende Daten aus, 
und interpretiert diese entsprechend

hmmm, FIR stimmt, dafür ist der MCP2410 zu langsam, der ist gefixt auf 
9600 Baud
gefordert in der Anwendung ist aber nur SIR in der Baudrate 9,6k, da 
würde er funktionieren, als reines Übertragungsprotokol war tinyTP 
vereinbart

ich glaube ich werde noch einmal mich in das OBEX hineinlesen, das kann 
nicht unwichtig sein, schaden schon gar nicht ...,,

deine Antwort zumindest bekräftigt mich grad darin mich für den PIC 18 F 
zu entscheiden, dann aber müsst ich das OBEX nachimplementieren oder auf 
den 8 bit portieren, oder ich vereinbare ein eigene Lösung


hmmmm,
:) danke für die Hilfreiche Antwort

jetzt muss ich nur noch herrausfinden wieviel Energie die PIC18FXXX so 
im Schnitt ziehen

LG
Axel

von Frank K. (fchk)


Lesenswert?

Müsst Ihr einen PIC18 verwenden?

Ansonsten schaut Euch mal die TI MSP430-Serie an.

Plus diese Appnote - die ist für Dich auch so sehr empfehlenswert, weil 
Du darin sehr viele IRDA Basics findest:

http://www.ti.com/mcu/docs/litabsmultiplefilelist.tsp?sectionId=96&tabId=1502&literatureNumber=slaa202a&docCategoryId=1&familyId=342

Die in dieser Appnote vorgeschlagene Lösung hätte den Vorteil, dass Ihr 
den IRDA-Protokollchip wegoptimieren könntet - weniger Platz, weniger 
Strom, weniger Kosten. Obendrein ist das eine sehr energieeffiziente 
Lösung - stromsparend zu programmieren ist beim MSP430 besonders 
einfach, weswegen die MSP430 sehr gerne bei batteriebetriebenen Geräten 
zum Einsatz kommen.

fchk

von Frank K. (fchk)


Lesenswert?

Axel F. schrieb:

PS: Was mir noch auffiel:

> deine Antwort zumindest bekräftigt mich grad darin mich für den PIC 18 F
> zu entscheiden, dann aber müsst ich das OBEX nachimplementieren oder auf
> den 8 bit portieren, oder ich vereinbare ein eigene Lösung

Du hast mich nicht verstanden: Wenn Du den IRDA-Protokollchip 
verwendest, macht der das GESAMTE Protokoll. Du wirst dann keine 
Möglichkeit haben, irgendetwas am IRDA-Protokollstack 
nachzuimplementieren. Dann geht ausschließlich IrComm mit dem, was der 
Chip halt kann.

> jetzt muss ich nur noch herrausfinden wieviel Energie die PIC18FXXX so
> im Schnitt ziehen

Wenn es denn unbedingt ein PIC18 mit dem Irda-Protokollchip sein muss, 
dann nimm einen PIC mit einem J in der Typenbezeichnung. Das sind die 
modernen Typen mit dem geringsten Stromverbrauch und 2.5V Core.

fchk

von Axel F. (pfennig)


Lesenswert?

Sorry, konnt erst jetzt Antworten

also ein PIC 18 muss es aus den einfachen Grund sein, weil der 
Verantwortliche Schiss vor anderen Chips hat, es besteht die Befürchtung 
das es kurzfristig zu Problemen kommen könnte, die dann nicht 
beherrschbar sind

das schränkt die Auswahlmöglichkeit stark ein.

nun, das OBEX das weiss ich nun, arbeitet in Zusammenhang mit FIR 
zusammen, im SIR wird dies nicht verwendet

hier bestand auch eines der Probleme
hätte nun der Kunde FIR verlangt, so hätten wir uns einen eigenen FIR 
Treiber basteln müssen, sofern es keinen gegeben hätte, der das ohnehin 
schon kann, danach gesucht hab ich aber nicht mehr, da der Kunde mit SIR 
zufrieden ist

dort wird das OBEX nicht verwendet (Zumindest beim Kunde nicht)

nun OBEX wird aufgesetzt oberhalb von Schicht 5 das ist in etwa die 
gleiche Kommunikationsschicht wie HTTP beim Internet (OSI-Model) also 
irgendwo bei Schicht 6 oder 7
es ist eine Server Client Kommunikationsebene, schlicht gesagt, hätte 
ich eine Art Browser in Chip implementieren müssen, für den Fall das 
OBEX eine Rolle gespielt hätte,,,
da hatte ich aber Glück
da konnte ich andere Wege gehen

nun jetzt liegt mir erstmal der programmer und ein satz chips vor so das 
ich erstmal loslegen kann :)

ich werde mir deinen linkhinweis zur TI seite einmal anschauen noch, 
danke dir für deine Hilfe bis dahin :)

es grüsst
Axel F.

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.