Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 3 maja 2026, o 18:24


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 
Autor Wiadomość
PostNapisane: 15 lis 2014, o 11:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 68
Pomógł: 0

Problem polega na tym, że po inicjalizacji SPI procesor ATmega328P wogóle nie wysyła sygnału SCK. Poziom napięcia SCK przy obecnych ustawieniach wynosi ok. 135mV.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2014, o 12:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 sty 2014
Posty: 39
Lokalizacja: Pszczyna
Pomógł: 4

SCK włącza się tylko na czas wysyłania, a nigdzie nie wywołujesz funkcji MasterSPI, masz ją tylko zdefiniowaną.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2014, o 13:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 68
Pomógł: 0

Zrobiłem to tak, ale wciąż to samo.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2014, o 13:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 sty 2014
Posty: 39
Lokalizacja: Pszczyna
Pomógł: 4

Jeśli programujesz za pomocą USBasp, po zaprogramowaniu spróbuj odłączyć programator.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2014, o 13:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 68
Pomógł: 0

Też już tak próbowałem i to samo.

------------------------ [ Dodano po: kilkunastu sekundach ]

To jest moja pierwsza przygoda z SPI także proszę o wyrozumiałość ;]. Zadam pewnie dziwne pytanie, ale co tam: Czy bez podłączenia zewnętrznego przetwornika ADC powinien pojawić się sygnał SCK na pinie procka po prawidłowym skonfigurowaniu SPI w procesorze, czy dopiero jak wszystko będzie pięknie podłączone wtedy ruszy ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2014, o 15:42 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

lucasenior napisał(a):
Czy bez podłączenia zewnętrznego przetwornika ADC powinien pojawić się sygnał SCK na pinie procka po prawidłowym skonfigurowaniu SPI w procesorze

Tak.

W pętli while masz teraz poprawnie (chociaż wysyłasz zawsze 0), ale funkcja MasterSPI powinna wyglądać tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Zmienne ekg i bajt są nie wiadomo po co globalne i nie wiadomo dlaczego z modyfikatorem volatile, ale to tak na marginesie, bo nie wiem co planujesz.
Jak to cały program to dodaj jeszcze funkcję obsługi przerwania albo usuń linię włączającą przerwanie timera.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2014, o 16:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 68
Pomógł: 0

Zmieniłem tak jak mi poradziłeś i niestety wciąż nie działa.
Ogólnie chodzi mi o coś takiego, żeby wysłać przez UART dane z zewnętrznego przetwornika ADC z częstotliwością równą 500 Hz dlatego stosuje tutaj przerwania. Narazie męcze się z komunikacją z zewnętrznym ADC, ale wydaje mi sie, że nie byłoby problemu gdyby nie fakt, że nie widzi mi wogóle sygnału SCK po skonfigurowaniu SPI na procku. Troche zmieszałem się też jeżeli chodzi o PIN SS bo już wkońcu nie wiem jak ma być ustawiony żeby odebrać dane. W nocie Przetwornika jest napisane że musi być stan niski z kolei na procesorze ma być w stanie wysokim i nie wiem już czy to trzeba łączyć żeby współgrało jakość czy jednak oddzielnie poprowadzić do różnych potencjałów. Chciałbym, żeby program wyglądał mniej wiecej tak:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2014, o 16:30 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

Witam
Jaki masz przetwornik ? Z tego co zawsze mi się wydawało to aby coś wrzucić do czegoś na SPI to CS lub jak kto woli SS powinien być w stanie niskim. Nie wiem do końca , ale moim zdaniem nie sprawdzisz czy sygnał jest czy go nie ma tak sobie np. woltomierzem, tylko oscyloskopem lub analizatorem stanów. Podłącz wszystko na stykówce jak masz w THT i sprawdź. Ja używam SPI i nie ma problemu, nigdy nie odpalałem SPI na sucho.

------------------------ [ Dodano po: 1 minucie ]

przy okzji co ty chcesz wysyłać do przetwornika adc? Chyba raczej chcesz odczytywać.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2014, o 16:33 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

lucasenior napisał(a):
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Definicja funkcji wewnątrz funkcji?! Kompilator to w ogóle przyjął?

_________________
+++++[>++++<-]>[>++++++<-]>.---------.+++.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2014, o 16:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 68
Pomógł: 0

przyjął :D

------------------------ [ Dodano po: kilkunastu sekundach ]

do giciors:
1.Mój przetwornik to max189
2.Niestety nie mam oscyloskopu ani analizatora sygnałów, a szkoda :(
3.Chce odebrać dane z zewnętrznego przetwornika(w tym przypadku max189) w procku i przesłąć je do przez UART z częstotliwością 500Hz przez BTM222 do komputera :)..... wiem, że funkcja może wydawać się dziwna, ale już próbuje wszystkiego żeby ruszyło i w penym momęcie pomyślałem, że może to idzie tak, że musi coś wysyłać przez MOSI(puste dane,pin odłączony), żeby mogło coś pobrać przez MISO :)
4. Spróbuje jeszcze zrobić tak jak ty mówisz, żeby to wszystko podłączyć i próbować dalej(chociaż już i tak próbowałem)
5 A jakie wychodzi prawidłowe napięcie sygnału SCK na oscyloskopie ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2014, o 17:02 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

w datasheet patrz strona 6 i strona 10 tam jest wszystko opisane co i ja trzeba zrobic aby odczytać dane (bardzo ciekawy układ ...na marginesie)
napięcie jest jake zasilasz ale szybko się zmienia i woltomierz czasami pokazuje bzdury.
muszę lecieć póxniej popartrzę .
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2014, o 17:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 68
Pomógł: 0

No układ jest ciekawy, spec z uczelni mi go poradził :) .Ok później będę jeszcze walczył bo mi też coś wypadło a narazie dzięki :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2014, o 17:31 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Tak to powinno wyglądać:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2014, o 22:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 68
Pomógł: 0

Dzięki Krauser to dla mnie jak prezent na gwiazdke bo pewnie bym jeszcze chwile pobłądził jeżeli chodzi o kod :) . Niestety to chyba wina przetwornika, po moich nie małych testach już pewnie ma dość i nie chce się odezwać. Dzięki wszystkim za pomoc! Jak uda mi się go odpalić to napisze co było źle...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2014, o 22:40 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

Tak przy okazji to jest 12 bitowy ADC to czytamy liczbę int czyli dwa razy trzeba odczytać adc

------------------------ [ Dodano po: 1 minucie ]

znalazłem coś takiego pewnie Ci pomoże.
http://www.edaboard.com/thread278582.html

------------------------ [ Dodano po: 2 minutach ]

:D zresztą zmyślnie zrobione

------------------------ [ Dodano po: 3 minutach ]

....tak przy okazji robisz EKG ? Jakiego użyłeś wzmacniacza pomiarowego ? AD630 może? Masz jakiś schemacik ciekawy?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2014, o 23:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 68
Pomógł: 0

Ja tylko przesyłam sygnał ekg bezprzewodowo z urządzenia które zbiera sygnał z serca, ale mogę Ci takowy schemat załatwić bo to robił student jako prace inżynierską u tej samej promotorki co ja teraz , to poprosze ją o schemat i pewnie mi da :) Sam też pewnie sobie coś takiego będę chciał zrobić. Jego urządzenie już testowałem na sobie także działa dobrze :)
A co do przetwornika to rzeczywiście może to w ten sposób trzeba go obudzić :)
Wygrzebałeś to chyba z końca internetu :D, ale gościowi odpaliło to być może i mi też pójdzie :)
Próbujemy więc dalej... :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lis 2014, o 21:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 68
Pomógł: 0

Dzisiaj walczyłem z tym przetwornikiem w laboratorium i udało się go pięknie uruchomić, program też mam, ale jeszcze mam problem z uartem tzn. z prawidłowym poskładaniem i wysłaniem liczby, ale jak ogarnę wszystko to od razu wrzucę na forum :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2014, o 18:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 68
Pomógł: 0

Zgodnie z obietnicą wrzucam kod odpalenia malucha jakim jest przetwornik max189. Wszystko pięknie działa :). Problemem okazała się prawdopodobnie zbyt mała pamięć mikroprocesora 328P dlatego musiałem wyłączyć całkowicie procedurę obsługi przerwania od timera . Mój projekt przeniosłem natomiast na Atmege32 i tam już nie miał problemów z niczym :) . Oprócz tego dodatkowo zmieniłem rozmiar zmiennej value na uint16_t w funkcji " uart_putint" w buforze cyklicznym(kod pana Mirka). Kodu nie mogę wrzucić, dlatego zachęcam do zakupu niebieskiej książki ;). Poniżej wrzucam kod który działa na procesorze Atmega328P(smacznego! :P )
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO