Wpis z mikrobloga

#elektronika #fpga #vhdl

Chcę sobie otworzyć komunikację (na razie ultra prostą, po prostu aby zobaczyć czy bangla) z prockiem PicoBlaze zaimplementowanym w FPGA po RS232.

RSa mam na przejściówce USB->RS232, ale to nie ma raczej większego znaczenia. Do komunikacji ze strony kompa chcę użyć terminala Hercules, ale to też nie ma większego znaczenia raczej. Jako, że mam taktowanie 27 MHz na kwarcu, to zrobiłem sobie timer, który dzieli mi to przez 1875 i mamy baud 14400. PicoBlaze w ogóle nie posiada timera jako takiego, który by mu aktywował przerwania und stuff.

Ogółem zamierzenie jest takie aby procesur ręcznie obsługiwał cały sygnał. Nie ma żadnych UARTów czy innych narzędzi. Gołodupiec totalny, trzeba od zera w asemblerze. W każdym razie na ten moment chcę zrobić to w asemblerze (dla prezentacji), a potem sobie spróbuję dorobić osobny driver jako komponent w VHDLu, który będzie przetwarzał sobie sygnał na pełne 8 bitów i wypluwał w całości do procka jak się uzbiera, bo tak będzie po prostu lepiej.

Driver do RSa w tej płytce jest takowy: http://www.analog.com/static/imported-files/data_sheets/ADM3232E.pdf

Mamy RXD, TXD no i CTS oraz RTS z sygnałów. I teraz zastanawiam się jak on to widzi i jak się do tego zabrać. Czy np. odpalać przerwanie przez CTS, czy w ogóle bez handshake'a to zrobić? Mam gołodupca, czyli muszę najpierw wykrywać pierwszy bit (który jak rozumiem będzie logiczną 1 po wyjściu z drivera jako, że mamy w logice ujemnej 1 na RSie) i bit po bicie przesuwać i ładować ramkę danych.

Ale ale jest jeden problem. Każda instrukcja w PicoBlaze trwa przez dwa takty zegarowe. I zastanawiam się czy to jest w ogóle możliwe zrobić to ręcznie na procesorze, czy muszę jednak zrobić sobie specjalny układ cyfrowy?

Na razie ten schemat jest niepodłączony w ogóle do komunikacji. Sprawdzałem tylko, czy mi dzielnik działa.
Khaine - #elektronika #fpga #vhdl

Chcę sobie otworzyć komunikację (na razie ultra ...

źródło: comment_l4M26OXImR0wH70eAO4GDziBrxQe8h6V.jpg

Pobierz
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@aloalo83: No jest pewien problem tutaj tego typu, że trzeb DOKŁADNIE wiedzieć jak się to gunwo zachowuje w środku. W zwykłym mirkokontrolerze łączysz się z USARTem, dostosowujesz timer na odpowiedniego bauda i masz z głowy. A tutaj jest gołodupiec i dumaj teraz jak to poprawnie skomunikować.
  • Odpowiedz
Teraz jeszcze jest pytanie -> czy jak jest tam ten przetwornik RS232, to on mi usuwa bity startu i stopu, czy wywala z siebie 10 bitowe ramki? Bo teraz w sumie nie wiem też jak to potraktować. Czy ten układ komunikacyjny musi mi tylko sekwencyjnie przetwarzać sygnał seryjny na wektor, czy jeszcze bity stopu i startu wywalać?
  • Odpowiedz