Witam,
Podłączyłem do Atmegi 32 przetwornik cyfra-analog LTC1257 programowany przez SPI. Przetwornik ma pracować z napięciem odniesienia 10V i być zasilany 15 V napięcia.
Poniżej schemat połączeń.
Zgodnie z tym co wyczytałem w nocie katalogowej , wysyłam do przetwornika dwa razy po 8 bitów danych, a napięcie na wyjściu powinno pojawić się gdy linię LOAD przestawię w stan niski. Obsługę SPI realizuję to przez poniższe funkcję.
Mimo wysyłania do przetwornika różnych ciągów bitów, na wyjściu nie pojawia mi się żadne napięcie.
Sprawdziłem miernikiem połączenia. Na wyjściu DOUT pojawia się napięcie (~7,68V) więc układ powinien być sprawny.
W czym może tkwić problem? Możliwe, że istnieje konflikt urządzenia SPI z programatorem STK500 na liniach ISP? (Próbowałem z podłączonym i odłączonym programatorem i efekt jest ten sam.)
Podłączyłem do Atmegi 32 przetwornik cyfra-analog LTC1257 programowany przez SPI. Przetwornik ma pracować z napięciem odniesienia 10V i być zasilany 15 V napięcia.
Poniżej schemat połączeń.
Zgodnie z tym co wyczytałem w nocie katalogowej , wysyłam do przetwornika dwa razy po 8 bitów danych, a napięcie na wyjściu powinno pojawić się gdy linię LOAD przestawię w stan niski. Obsługę SPI realizuję to przez poniższe funkcję.
void SPI_MasterInit(void)
{
/* Set MOSI and SCK output, all others input */
DDRB = _BV(7) | _BV(5) | _BV(0);
PORTB |= _BV(0); // stan wysoki
/* Enable SPI, Master, set clock rate fck/16 */
SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0);
}
// funkcja wysyłania danych do przetwornika
void SPI_MasterTransmit(uint16_t a)
{
uint16_t b;
uint8_t c;
PORTB |= _BV(0); // stan wysoki
/* Start transmission */
b = ((a>>8)&0x000F);
c= b;
SPDR = c;
loop_until_bit_is_set(SPSR, SPIF);
c = (a&0x00FF);
SPDR = c;
loop_until_bit_is_set(SPSR, SPIF);
PORTB &= ~_BV(0); // stan niski
_delay_us(100);
PORTB |= _BV(0); // stan wysoki
}
Mimo wysyłania do przetwornika różnych ciągów bitów, na wyjściu nie pojawia mi się żadne napięcie.
Sprawdziłem miernikiem połączenia. Na wyjściu DOUT pojawia się napięcie (~7,68V) więc układ powinien być sprawny.
W czym może tkwić problem? Możliwe, że istnieje konflikt urządzenia SPI z programatorem STK500 na liniach ISP? (Próbowałem z podłączonym i odłączonym programatorem i efekt jest ten sam.)