Strana 1 z 1

MAX31855 a SW SPI

Napísané: 28 Dec 2017, 10:58
od používateľa dan21
Zdravim,
postavil som si pajkovacku podla http://paja-trb.cz/konstrukce/mikropajka_2011.html . Som s nou spokojny ale chcem si tam dorobit nejake veci. Uz na zaciatku som nezohnal MAX 6675 a tak som ho nahradil MAX31855K. Original FW je pisany v bascome. Kedze v tom nemienim programovat, chcem si to prepisat do c (c++, asm ....). Tu nastava problem. Metoda na nacitanie teploty z MAX31855 v bascome funguje aj napriek tomu ze tento obvod je na 3v3 a ostatne obvody (MCU, Display) su na 5V. Pokusal som sa to prepisat do c a nic. Skusal som aj nejake zdrojaky z netu a stale mi to vracia 0. Trapim sa s tym uz druhy den. Nema niekto napad ?
Prikladm kus kodu (z netu) kde sa nacitava hodnota.
[code] int bitCount;
unsigned long data;
// Clear data
data = 0;

// Select the MAX31855 chip
//digitalWrite(cs, LOW);
PORTB &= ~(1 << cs);
_delay_us(50);

// Shift in 32-bit of data
for (bitCount = 31; bitCount >= 0; bitCount--)
{
//digitalWrite(sck, HIGH);
PORTB |= (1 << sck);
_delay_us(1);

// If data bit is high
//if (digitalRead(so))
if (PINB & (1 << so))
{
// Need to type cast data type to unsigned long, else compiler will
// truncate to 16-bit
data |= ((unsigned long)1 << bitCount);
}

//digitalWrite(sck, LOW);
PORTB &= ~(1 << sck);
_delay_us(1);
}

// Deselect MAX31855 chip
//digitalWrite(cs, HIGH);
PORTB |= (1 << cs);
_delay_us(500);

return(data);
[/code]

pozeral som to aj v datasheete a jedine co ma napada je problem v casovani. MCU mi bezi na 12MHz. Ci to nebude moc rychle ..
Diky

Re: MAX31855 a SW SPI

Napísané: 28 Dec 2017, 23:36
od používateľa peterple
Program je síce neefektívny, ale chybu v nôm nevidím. Typujem že ani časovaním to nebude. Veď tam máš všade delay tak pridaj ak si myslíš že to pomôže. Toto je zase na pozretie skopom alebo analyzátorom.

Re: MAX31855 a SW SPI

Napísané: 28 Dec 2017, 23:56
od používateľa dan21
HW SPI piny mam uz obsadene, tak musim ist cez SW SPI. Uz sa mi to nejako podarilo rozchodit, ale stale mi vracia chybu
short-circuited to GND aj ked nemam zapojene pero :-)
Neviem ci este na tom stravim nejaky cas. Mozno neskorsie. Dam to na policku oddychnut :-)

Re: MAX31855 a SW SPI

Napísané: 29 Dec 2017, 13:51
od používateľa peterple
Nemyslel som hneď na hw riešenie. Ale ten program sám o sebe je napísaný neefektívne. Vykonáva sa tam strašne veľa zbytočných rotácií.
Pre HW riešenie tiež nevidím problém na jedno SPI rozhranie môže byť aj viac zariadení. Veď sa dajú povoľovať blokovať pomocou CS pinu.
A v čom bol teda problém? Keď to už funguje.