Sida 1 av 1

Pic16f628 spi ds1620

Postat: 14 maj 2008, 09:47:52
av victor_passe
Hej, jag ska läsa temperaturen från en ds1620 och visa den på en hd44780 lcd.
All kod sak skrivas i assembler, jag har redan fått ut text på displayen men hur använder jag spi?
Skickar jag bara ett värde till ett register och sedan aktiverar spi eller något?
om du ska skriva en bit kod för att skicka något värde över spi skulle jag bli mycket glad.

Finns det något lättare sätt att läsa temp på en pic? jag behöver inte någon hög upplösning, 2C duger fint.

Och allt måste kodas i asm.

Postat: 14 maj 2008, 13:25:54
av sodjan
Det heter "DS1620", "HD44780", "SPI" och "PIC".

> men hur använder jag spi?

Jag utgår från att DS1620 är en SPI krets...

Det står inte i inlägget vilken PIC du tänker använda, men en del
PIC modeller har en hårdvaru-SPI modul och då använder du den.
För andra PIC modeller (utan hårdvaru-SPI modul), så får du skriva
programvarurutiner...

Postat: 14 maj 2008, 17:43:44
av Micke_s
Ta en titt på denna
http://www.maxim-ic.com/appnotes.cfm/ap ... umber/2361
Sedan får du koppla MOSI och MISO och i sin tur MISO till DS1620 med ett motstånd, ex 1k eftersom du har 3wire spi och inte 4wire (om du vill använda koden rakt av).

Annars så går den modifiera så att det bara kräver 3 pinnar på processorn.
SPI:n i exemplet är mjukvaruemulerad, men du behöver inte någon hastighet så.

Postat: 14 maj 2008, 20:24:24
av victor_passe
Jag skrev iof pic16f628 i rubriken.
Och visst, det saknas några versaler i mina texter.

Och jag tror att jag köper an av de kretsarna som ger ett pulståg på en pinne linjär med spänningen istället för då kan jag använda en pic16f84A och behöver inte skaffa en 628.
Men tack för svaren!

Postat: 14 maj 2008, 20:31:54
av mri
Du behöver inte hårvarustöd i MCU'n för att läsa av en DS1620! Det räcker bra med en vanlig I/O pinne som hanteras med mjukvara.

Postat: 14 maj 2008, 23:32:46
av sodjan
> Jag skrev iof pic16f628 i rubriken.

Den syns inte när man skriver svaret.
All rellevant info bör finnas i själva inlägget.

> ...för då kan jag använda en pic16f84A

Skulle det vara en fördel ??

Postat: 15 maj 2008, 12:16:36
av vfr
mri skrev:Du behöver inte hårvarustöd i MCU'n för att läsa av en DS1620! Det räcker bra med en vanlig I/O pinne som hanteras med mjukvara.
SPI kräver minst två I/O-pinnar (CLK + DATA) plus ev. chipselect ovanpå det. Men det går utmärkt att göra i mjukvara om man inte har en SPI-modul.

Postat: 15 maj 2008, 12:32:47
av mri
Varför SPI är med i diskussionen är jag inte helt säker på. Vad jag dock är säker på är att DS1820 använder ett så kallat 1-Wire protokoll och där räcker det med en vanlig I/O pinne som kan switchas mellan ingång och utgång. DS1820 har olika många ben beroende på kapsel, men bara tre av dem används: Vdd, GND och DQ.

När jag skulle koppla en DS1820 till min Renesas MCU hitta jag färdig C kod på nätet. Koden var iofs skriven för AVR men kunde med minimala förändringar användas på Renesas. Garanterat hittar du motsvarande kod för PIC i assembler. Att läsa av en DS1820 är inte triviellt så du sparar nog en massa tid på att låna färdig kod.

Postat: 15 maj 2008, 12:44:42
av vfr
Jo, men det står DS1620, inte 1820.

I databladet står specifikt tre pinnar; DQ, CLK och /RST. Sedan om man måste använda /RST, vet jag inte.

Postat: 15 maj 2008, 12:49:01
av mri
Ahh! OK, mitt fel. Då är jag med. :)