Zdravím, šlo by vytvořit něco jako převodník RS232/SPI?
Vsechno nejak jde. Zalezi co od toho cekas…
Neni preci problem vzit procesor, na jednu stranu se pripojit na hw uart a z druhy strany mas hw spi… A kdyby nahodou ne, lze to resit softwarove.
Jde spis o to, kolik zarizeni chces ovladat. uart je urcen pro sponeji 2 uzlu, kdezto spi jich muze ridit vic - obsahuje navic signaly pro vyber zarizeni. Mas-li ale zajem o pripojeni jen 1 obvodu tak neni problem.
chtěl bych připojit pouze jedno zařízení…takže by to neměl být problém?
Ne, neměl.
Pri UARTe sa ma pri prenose kazdy preneseny bajt definovany svoj zaciatok i koniec.
Pri SPI ma zaciatok a koniec iba cela sprava. Musis si preto stanovit pravidla, na zaklade coho ma MCU ( to, co robi gumu medzi UARTom a SPI) signal /CS nastait na log.0 a na zaklade coho ho ma nastavit na log.1. Predpokladam, ze budes chciet z SPI zariadenia data i nacitavat. Ak pouzijes ine fyzicke rozhranie ako RS232 (full duplex), napr. RS485 (half duplex), musis osetrovat este aj toto.
Asi najjednoduchsie by bolo SPI ovladat cez MCU asi na zaklade dohodnutej spravy cez rozlozenie bajtov na ASCII znaky. Pre komunikaciu sa potom da pouzit i nejaky hyperterminal.
Priklad
PC -> MCU
prvy znak ‘Z’ // uvodny znak spravy
2.bajt // cislo SPI kanala, urcujes, ktory /CS sa ma pouzit
3.bajt // N - kolko bajtov posles do MCU a budes chciet, aby ich potom tento vyslal na SPI
4.bajt // od ktoreho bajtu chces, aby ti MCU poslal nacitane bajty zo zariadenia
5.bajt // kolko bajtov chces nacitat zo zariadenia
6.bajt … (N+6) bajt // data pre zariadenie
N+7. bajt CHS // kontrolna suma spravy, alebo CRC
posledny znak 0x0d // koniec spravy
Ak je sucet hodnot 4. a 5. bajtu vacsia ako 3.bajt, MCU bude posielat (pri nacitavani zvysnych dat) do zariadenia 0xff.
Ak komunikaciu programujes a nechces pouzit hyperterminal, potom mozes
prenasat priamo bajty. Koniec spravy budes detekovat na zaklade casu, pocas ktoreho si nic neprijal.
Pocet zapisovanych bajtov principialne posielat netreba, da sa implicitne odvodit z dlzky spravy. Ale pre MCU je to jednoduchsie.
MCU vsetko vykona a do PC posle nacitane data.
jj díky…potřeboval bych totiž sestrojit něco jako tohle avr.hw.cz/isp_prog/isp_prog.html …akorát tam chybý ten program a ten ovládací soft nějak nejde stáhnout
… no a zkoušel jsi alespoň zagooglit? Jako vodítko zkus AVR910 (viz článek z linku) na stránce Atmel.
jo dík…už jsem cosi našel