Forum: Mikrocontroller und Digitale Elektronik MCP42XXX über SPI an Atmega644 mit Bascom


von Spix35 (Gast)


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.

von Wolfgang S. (wsm)


Lesenswert?

Mache aus

Spiout Potico , 1
Spiout Pot , 1

mal

Spiout Potico(1) , 1
Spiout Pot(1) , 1


Habe dies bisher nur so gemacht.

Prüfe mal die Ausgänge mit dem Oszi.

Ist dein Config SPI richtig?

Ggf. ist auch Enable SPI erforderlich.



W.

: Bearbeitet durch User
von Spix35 (Gast)


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ß

von MWS (Gast)


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.

von Spix35 (Gast)


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.

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.