MCP42XXX über SPI an Atmega644 mit Bascom

Gast #3578630
Lesenswert?

Hallo, Im Rahmen eines Projektes wollte mit einem Atmega644 einen 
digitalen Potentiometer (MCP42010) über SPI ansteuern.
Den µC Programmiere ich über Bascom.
Nun habe ich ein kleines Programm geschrieben um nur den Poti testweise 
anzusteuern.
'______________
CLK an SCK
SDI an MOSI
CS an SS
SDO an MISO
Reset an Reset
SHDN an 5v
'______________

' SPI Test
'______________________________________________---
$regfile = "m644def.dat"                                    'Atmega 644
$crystal = 16000000                                         '16 MHz
$hwstack = 32
$swstack = 10
$framesize = 40

Dim Potico As Byte
Dim Pot As Byte
Potico = &B00010011 'Commandbytes
Pot = &B11111111    'Potiwert

Config Portb = Output

Cs Alias Portb.4

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

Spiinit


Do
Cs = 0
Spiout Potico , 1
Spiout Pot , 1
Cs = 1
Wait 2
Loop

End

nun habe ich das Problem das iwie der Poti nichts macht, der Schleifer 
bleibt immer in Mittelposition.
Gast #3578689
Lesenswert?

Danke für die schnelle Antwort, habe das Programm geändert, doch es tut 
sich immer noch nichts, habe die spi ausgänge mit einem oszi gemessen, 
es besteht kein CLK sowie MOSI Signal am µC.
CS wird aber immer getoggelt.

gruß
Gast #3578823
Lesenswert?

Wenn Du CS per Code kontrollieren möchtest, dann konfiguriere Noss = 1
Ansonsten sollte da an CLK und MOSI etwas rauskommen, allerdings muss 
man den Burst von insgesamt 4µs nach einer Pause von 2 Sek auch 
erwischen.
Gast #3579935
Lesenswert?

Danke MWS, habe nun keine Sekunde Wartezeit drinne und hab es nochmal am 
oszi gehalten aber nun im µS bereich mit andere Trigger einstellung.
Der µC gibt doch ein clk, cs und miso signal ab, aber
der SPI Slave will trotzdem nicht regeln.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren