LTC2602 DAC programozása

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

LTC2602 DAC programozása

Hozzászólás Szerző: Sanci »

Szervusztok!

Soha nem kezeltem DAC-t és belefutottam ezzel kapcsolatosan egy problémába.
MCU: ATMEGA32
DAC IC: LTC2602
CRYSTAL: 11059200
DAC Referencia fesz: 3.3V

Az alábbi módon próbálom kezelni SPI-ban, de egyszerűen nem hajlandó végrehajtani semmit.
A "portb.4" -n van egy INCLINOMETER. Ő megfelelően működik.


Kód ide vonatkozó része:
'_________________________________SPI CONFIG____________________________________
Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 4 , Noss = 1
Config Portb.4 = Output ' PORTB.4 SPI Control pin
Spiinit

Dim Address_high As Byte , Address_low As Byte , Address As Word
Dim Command_address As Byte

Do
Address = Address + 1000 'növelem DAC kimeneti fesz-t.
Address = 1000
Address_low = Low(address)
Address_high = High(address)


Reset Portc.5
Command_address = &B00011111 'Write to all DAC Register "A" and "B" outputs
Spiout Command_address , 1
Spiout Address_high , 1
Spiout Address_low , 1
Set Portc.5
Waitms 50
Toggle Status_led
Loop
'------------------------------------------------


Azért nem raktam be a teljes kódot, mert sajnos köt a titoktartási szerződés....
megértéseteket kérem ezzel kapcsolatban.

Tudnátok benne segíteni hogy mit szúrok el? valamit nagyon benézek szerintem...
Előre is KÖSZÖNÖM!
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

Re: LTC2602 DAC programozása

Hozzászólás Szerző: Sanci »

Futtatható állapotban, de sajnos így sem működik. :(
$regfile = "m32def.dat"
$crystal = 11059200
$hwstack = 100
$swstack = 100
$framesize = 100




'_________________________________SPI CONFIG____________________________________

Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 4 , Noss = 1
Config Portc.5 = Output ' PORTB.4 SPI Control pin
Spiinit

Dim Address_high As Byte , Address_low As Byte , Address As Word
Dim Command_address As Byte
'Sample:
'Address = 3500
'Address_low = Low(address)
'Address_high = High(address)
'__________________________________STATUS LED___________________________________
Status_led Alias Portc.3 : Config Status_led = Output 'Status led
Set Status_led
Wait 1
Reset Status_led
Waitms 500



Do
Address = Address + 1000
Address = 1000
Address_low = Low(address)
Address_high = High(address)


Reset Portc.5
Command_address = &B00011111 'Write to all DAC Register
Spiout Command_address , 1
Spiout Address_high , 1
Spiout Address_low , 1
Set Portc.5
Waitms 50
Toggle Status_led
Loop
End
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: LTC2602 DAC programozása

Hozzászólás Szerző: Robert »

Kód: Egész kijelölése

Config Portc.5 = Output ' PORTB.4 SPI Control pin
Most melyik?
http://www.tavir.hu - a gazda :)
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

Re: LTC2602 DAC programozása

Hozzászólás Szerző: Sanci »

Szia!
Portb.4 az INCLINOMETER
PortC.5 pedig az LTC2602
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

Re: LTC2602 DAC programozása

Hozzászólás Szerző: Sanci »

A fenti kódban csak az LTC2602-t próbálom életre kelteni, de sajnos nem reagál...
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Re: LTC2602 DAC programozása

Hozzászólás Szerző: kapu48 »

Adatlap 6.oldal mutatja, hogy az alacsonyabb bit megy elöl!
Ezért a SPI beállítása: Data Order = Lsb
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

Re: LTC2602 DAC programozása

Hozzászólás Szerző: Sanci »

Igen, már egészen belekavarodtam ahogy próbálkoztam mindennel. Átírtam a kódot erre és még mindig nem működött.....

EZT ÍRTAM HOZZÁ VÉGÜL:

$regfile = "m32def.dat"
$crystal = 11059200
$hwstack = 50
$swstack = 50
$framesize = 50


Dim Value As Word
Dim VALUEl As Byte At VALUE Overlay
Dim VALUEh As Byte At VALUE + 1 Overlay
Dim Varia As Word
Dim Comd As Byte

Dim Ertek As Word

Config Pinb.5 = Input
Config Portb.4 = Output ' PORTB.4 SPI Control pin
Config Portc.5 = Output

'_________________________________SPI CONFIG____________________________________

Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 4 , Noss = 1

Spiinit


'__________________________________STATUS LED___________________________________
Status_led Alias Portc.3 : Config Status_led = Output 'Status led
Set Status_led
Wait 1
Reset Status_led
Waitms 100

ERTEK = &B00011111_11111111




Do
'Comd = &B0010_0001 'ch 1
'Comd = &B0010_0000 'ch 2
Comd = &B0010_1111 'ch all

ERTEK = ERTEK - 1000

VALUE = Varia
Shift VALUE , Left , 2
Value = Value Or Ertek

Portc.5 = 0
Spiout Comd , 1
Spiout VALUEh , 1
Spiout Valuel , 1
Portc.5 = 1
Toggle Status_led

Loop
End




Logikai analizátor, szkóp, stb. mindent ráakasztottam amit lehet.
És akkor arra jutottam hogy kicsrélem a vadonat új IC-t.

Utána rögtön életre kelt!
Szóval működik KÖSZÖNÖM az észrevételeket!
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Re: LTC2602 DAC programozása

Hozzászólás Szerző: kapu48 »

Légy szíves! Legközelebb program beszúráskor használd a fenti 'Code' gombot!

Kód: Egész kijelölése

EZ olvashatóbb lessz! :

$regfile = "m32def.dat"
$crystal = 11059200
$hwstack = 50
$swstack = 50
$framesize = 50
És a "KÓD: EGÉSZ KIJELÖLÉSE"-vel könyebben másolható!
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

Re: LTC2602 DAC programozása

Hozzászólás Szerző: Sanci »

Jogos!
Elnézést kérek!
Válasz küldése