Hallo zusammen, für ein kleines Bastelprojekt möchte ich einen PIC16F1454 benutzen. Dieser soll mittels SPI die Werte eines Temperatursensor auslesen. Das ganze programmiere ich mit einem PICKIT3. Nun zu meinem Problem, der vorhandene µC hat jeweils 2 Anschlüsse für ICSPDAT und ICSPCLK, nämlich RC0 und RC1 und RA0 und RA1. Sobald ich den Microcontroller mit dem PICKIT über die PINS RA 0 bzw RA1 verbinden und programmieren will, meckert das Programm rum, dass die Device ID nicht vorhanden ist. An den Anschlüssen RC0 und RC1 funktioniert alles, aber dort will ich die SPI Daten aufnehmen. Wie kann ich dem µC sagen, dass ich die PINS RA0 bzw. RA1 benutze zum ICSP programmieren? Danke
Hallo Toni, schau mal ins DB auf Seite 12. Dort gibt es die Ergänzung #3 bei PORTA.0/1. Dort steht: 3: LVP support for PIC18(L)F1XK50 legacy D.h. bei Deinem PIC steht ICSP nur an PORTC zur Verfügung. DB: https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/PIC16LF1454-5-9-14-20-Pin-8-Bit-Flash-USB-Microcontroller-with-XLP-Technology-DS40001639C.pdf
:
Bearbeitet durch User
Okay super vielen Dank. Das heißt aber dann auch dass der Sensor für das Auslesen des SPI Sensors nicht geeignet ist, da RC1 sowohl der SDI als auch der ICSPCLK beinhaltet. Also entweder SPI oder ICSP und nicht beides.
Da Du nicht gesagt hast um welchen Sensor es sich handelt, wäre meine Antwort... Kann sein das ICSP auch mit angeschlossenem Sensor funktioniert oder auch nicht. Probier es doch eben mal aus wenn alle Bauteile vorhanden. Sensor dran, PicKit dran und Du hast die Antwort.
:
Bearbeitet durch User
Volker schrieb: > Hallo Toni, > > schau mal ins DB auf Seite 12. Dort gibt es die Ergänzung #3 bei > PORTA.0/1. Dort steht: 3: LVP support for PIC18(L)F1XK50 legacy > D.h. bei Deinem PIC steht ICSP nur an PORTC zur Verfügung. Nein, das heisst diese Fußnote gerade NICHT! Warum sollte es auch bei einem Datenblatt zu einem ganz anderen PIC erwähnt werden. Diese Fußnote bedeutet das auf diesen PINs ICSP zur Verfügung steht um den IC als "Plug-In" Ersatz in SCHALTUNGEN einzusetzen die ursprünglich für die Pic 18F1xK50 designt/Layoutet wurden. Allerdings steht dieser Port NUR im LVP Modus zur Verfügung. Das bedeutet das, um diesen Port zu verwenden, das LVP Bit gesetzt sein muss und man natürlich im LVP Modus arbeiten muss. Siehe: https://ww1.microchip.com/downloads/en/DeviceDoc/41620C.pdf Gruß Carsten
:
Bearbeitet durch User
Du kannst natürlich SPI auch einfach in Software implementieren. Dann kannst Du beliebige andere Pins verwenden. fchk
Man koennte den Sensor auch z.B. ueber 1 k Widerstaende anschliessen. Da gewinnt der ICSP-Programmer am Controller direkt dann locker. :) Manche Leute stellen sich aber auch an...
Das mit den Widerständen probiere ich noch. Wenn jedoch ICSP und SPI auf den gleichen Pins hängen, lässt sich der µC garnicht ansprechen. Dann meckert der Compiler auch wegen der Device ID.
Toni schrieb: > Das mit den Widerständen probiere ich noch. > > Wenn jedoch ICSP und SPI auf den gleichen Pins hängen, lässt sich der µC > garnicht ansprechen. Dann meckert der Compiler auch wegen der Device ID. Dann solltest du das mit den Widerstaenden vielleicht erstmal probieren.
Ein gern gemachter Fehler ist, das /CS von SPI-Chips floaten zu lassen. Einfach einen Pullup nach VCC dran und schon ist Ruhe auf dem SPI und der Programmer kann die selben Pins benutzen.
Das mit den Widerständen auf SDO und SCK funktioniert, nun wird der Controller durch die Software erkannt. Interessant zu wissen wäre nun ob beim Debugging selber, die Daten auf dem Bus verfälscht werden. Also kann nun durch das PICKIT gleichzeitig gedebuggt und die Sensordaten gelesen werden?
Toni schrieb: > Das mit den Widerständen auf SDO und SCK funktioniert, nun wird der > Controller durch die Software erkannt. Ei sischa. :) > Interessant zu wissen wäre nun ob > beim Debugging selber, die Daten auf dem Bus verfälscht werden. Also > kann nun durch das PICKIT gleichzeitig gedebuggt und die Sensordaten > gelesen werden? Und? Hast du es schon herausbekommen? Total OT: Die Mannen von ST, sagen uebrigens auf ihren Veranstaltungen immer DebÜgger dazu. Das waere dann kwasi "gedebÜggt". :) Aber die sind ja auch aus Fronkroisch.
Habe den Code geschrieben, irgendwas stimmt aber nicht, da die SSPBUF Register komplett leer sind. Der PIC soll mit dem MAX6675 kommunizieren, der liefert ein 12bit Signal. Was mache ich falsch?
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.