Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Rozwiązano] Przesył pojedynczych bitów w czasie rzeczywistym z ADC

Sylosis 07 Wrz 2018 13:38 405 6
  • #1 07 Wrz 2018 13:38
    Sylosis
    Poziom 3  

    Witam!

    Próbuję przesłać dane na razie po prostu z przetwornika ADC wbudowanego w nucleo f103RB to zewnętrznego DAC'a po SPI. Odbiór pierwszego bitu z ADC (0 albo 1) powinien od razu być przesłany do wejscia SDI DAC'a (ADC taktuje z czestotliwoscią 44kHz a DAC'a 16MHz). I teraz pytanie: jak to zrobić? :D
    Czy powinienem wykorzystać jakieś przerwanie od timera? i tam odbierać bit z ADC i wysyłać od razu po SPI? Niestety wydaje mi sie to strasznie skomplikowane, pomocy;)

    0 6
  • Pomocny post
    #2 07 Wrz 2018 14:44
    Freddie Chopin
    Specjalista - Mikrokontrolery

    Nie da się z ADC odbierać bitów - tylko całe przekonwertowane wartości (10- lub 12-bitowe).

    0
  • #3 07 Wrz 2018 14:50
    Sylosis
    Poziom 3  

    Freddie Chopin napisał:
    Nie da się z ADC odbierać bitów - tylko całe przekonwertowane wartości (10- lub 12-bitowe).


    To znaczy, że taka pętla główna programu:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    ma sens?

    0
  • #4 07 Wrz 2018 14:55
    Freddie Chopin
    Specjalista - Mikrokontrolery

    Sens może i ma, ale jeśli `MCP4822_A_none_GA_SHDN` faktycznie jest równie 1000, to definitywnie popsuje wartość odczytaną z ADC.

    0
  • #5 07 Wrz 2018 14:57
    Sylosis
    Poziom 3  

    Freddie Chopin napisał:
    Sens może i ma, ale jeśli `MCP4822_A_none_GA_SHDN` faktycznie jest równie 1000, to definitywnie popsuje wartość odczytaną z ADC.


    Przesył pojedynczych bitów w czasie rzeczywistym z ADC

    Do MCP4822 trzeba wyslac najpierw 4 starsze bity konfiguracyjne. W takim przypadku będzie to miało sens?

    0
  • #6 08 Wrz 2018 11:08
    Sylosis
    Poziom 3  

    Próbuje tylko wysyłać dane z ADC1 bez odbierania ich od DAC, to znaczy próbuje tylko używać wyjścia MOSI, które jest podłączone do SDI przetwornika DAC.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Tak wygląda moje spi send, a konfiguracja spi tak:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Co można powiedzieć o tej konfiguracji spi? moja wartość conf_or_ADC_value podczas debugowania jest odpowiednia, tzn. wynosi np 0x1CCC, ale rejestr SPI1->DR ciągle wskazuje 0xFFFF. Jestem pewien, że SPI jest źle skonfigurowane, ale nie wiem dlaczego. Jakaś podpowiedź? :)

    EDIT: Wszystko działa, nie wlaczylem APB2 GPIOA... : D

    0
  • #7 08 Wrz 2018 18:49
    Sylosis
    Poziom 3  

    Próbuje tylko wysyłać dane z ADC1 bez odbierania ich od DAC, to znaczy próbuje tylko używać wyjścia MOSI, które jest podłączone do SDI przetwornika DAC.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Tak wygląda moje spi send, a konfiguracja spi tak:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Co można powiedzieć o tej konfiguracji spi? moja wartość conf_or_ADC_value podczas debugowania jest odpowiednia, tzn. wynosi np 0x1CCC, ale rejestr SPI1->DR ciągle wskazuje 0xFFFF. Jestem pewien, że SPI jest źle skonfigurowane, ale nie wiem dlaczego. Jakaś podpowiedź? :)

    EDIT: Wszystko działa, nie wlaczylem APB2 GPIOA... : D

    Dodano po 7 [godziny] 41 [minuty]:

    Następnym razem muszę zacząć zwracać uwagę na absolutne podstawy... często sie o nich zapomina, np o włączeniu taktowania dla portu:)

    0
  Szukaj w 5mln produktów