Witam,
Od 2 dni męczę ATmegę32, żeby tylko poprawnie komunikowała się z PC, zależy mi na transmisji szeregowej. Używam do tego modułu MMusb232RL. Do tego mam uC programowanego i debugowanego przez odpowiednika JTAG ICE mkI, i diody, bo nie mam wyświetlacza. Kod na końcu postu.
1. sprawa- nie wiem jak sprawdzić czy ten moduł MMusb232RL działa poprawnie (wbudowane diodki SMD się nie świecą)
2. nie jestem pewien czy dobrze połączyłem te dwa układy, w jednym z tematów przeczytałem, że wystarczy połączyć RxD, TxD i GND i będzie działało.
Ja połączyłem RxD po stronie ATmegi z TxD po stronie RS,
TxD po stronie ATM z RxD po stronie RS
połączyłem resety z przyciskiem zwierającym do masy
połączyłem wszystkie GND z GND w moim układzie
nie wiem co z XCK po stronie ATmegi - może pozostać niepołączone?
3. do sprawdzenia efektów komunikacji używałem SerialPort Teminal i tak: cokolwiek wysłałem, po przejściu przez ATmegę dostawałem '?' i cokolwiek wysyłałem z uC to też dostawałem '?' - dlatego zakładam, że komunikacja jest niepoprawna, aczkolwiek BAUD rate po obu stronach jest poprawne - inaczej nie dostane nawet tego '?' zwrotnego
4. Inicjalizację UART'a, otrzymywanie i wysyłanie danych, wziąłem wprost z dokumentacji Atmela, zresztą widziałem, że innym to działa: Link
i tu CHYBA znalazłem problem - podczas debugowania w AVRStudio 4.19 nie ustawia się bit URSEL w rejestrze UCSRC, po prostu jakby pomijał tą linijkę kodu:
a próbowałem na różne sposoby:
no chyba że każdy z nich jest zły - to proszę, powiedzcie mi to.
5. przypomniał mi się jeszcze jeden problem - w AVRStudio muszę używać zewnętrznego pliku Makefile, który wcześniej sobie zrobiłem programując ten sam procek przez samego WinAVR, w innym wypadku wyskakuje mi błąd:
podejrzewam, że chodzi o tę część pliku makefile:
a że dopiero niedawno zaczęła się moja historia z uC i wiem, że niewiadomych jest tyle, że można się pochlastać proszę o pomoc.
oto mój listing:
Od 2 dni męczę ATmegę32, żeby tylko poprawnie komunikowała się z PC, zależy mi na transmisji szeregowej. Używam do tego modułu MMusb232RL. Do tego mam uC programowanego i debugowanego przez odpowiednika JTAG ICE mkI, i diody, bo nie mam wyświetlacza. Kod na końcu postu.
1. sprawa- nie wiem jak sprawdzić czy ten moduł MMusb232RL działa poprawnie (wbudowane diodki SMD się nie świecą)
2. nie jestem pewien czy dobrze połączyłem te dwa układy, w jednym z tematów przeczytałem, że wystarczy połączyć RxD, TxD i GND i będzie działało.
Ja połączyłem RxD po stronie ATmegi z TxD po stronie RS,
TxD po stronie ATM z RxD po stronie RS
połączyłem resety z przyciskiem zwierającym do masy
połączyłem wszystkie GND z GND w moim układzie
nie wiem co z XCK po stronie ATmegi - może pozostać niepołączone?
3. do sprawdzenia efektów komunikacji używałem SerialPort Teminal i tak: cokolwiek wysłałem, po przejściu przez ATmegę dostawałem '?' i cokolwiek wysyłałem z uC to też dostawałem '?' - dlatego zakładam, że komunikacja jest niepoprawna, aczkolwiek BAUD rate po obu stronach jest poprawne - inaczej nie dostane nawet tego '?' zwrotnego
4. Inicjalizację UART'a, otrzymywanie i wysyłanie danych, wziąłem wprost z dokumentacji Atmela, zresztą widziałem, że innym to działa: Link
i tu CHYBA znalazłem problem - podczas debugowania w AVRStudio 4.19 nie ustawia się bit URSEL w rejestrze UCSRC, po prostu jakby pomijał tą linijkę kodu:
Kod: C / C++
a próbowałem na różne sposoby:
Kod: C / C++
Kod: C / C++
Kod: C / C++
Kod: C / C++
Kod: C / C++
no chyba że każdy z nich jest zły - to proszę, powiedzcie mi to.
5. przypomniał mi się jeszcze jeden problem - w AVRStudio muszę używać zewnętrznego pliku Makefile, który wcześniej sobie zrobiłem programując ten sam procek przez samego WinAVR, w innym wypadku wyskakuje mi błąd:
Cytat:cc1.exe: error: unrecognized command line option "-mmcu=atmega32"
podejrzewam, że chodzi o tę część pliku makefile:
## General Flags
PROJECT = serial
MCU = atmega32
TARGET = serial.elf
CC = avr32-gcc
CPP = avr-g++
## Options common to compile, link and assembly rules
COMMON = -mmcu=$(MCU)a że dopiero niedawno zaczęła się moja historia z uC i wiem, że niewiadomych jest tyle, że można się pochlastać proszę o pomoc.
oto mój listing:
Kod: C / C++
