SPI - generování hodin pro příjem

Zdravim,

Mám menší komplikaci s komunikací SPI mezi procesorem a RTC, s SPI sem zatím jen vysílal a vše chodilo, ale když sem se pokusil přijmou data tak nic. Doměřil sem se že procesor negeneruje hodiny pro příjem. Pročet sem co se dalo, ale nějak mi pořád uniká jak procesoru vysvětli že chci přijímat, aby začal generovat hodiny. Kde je ten fígl? jediný co mě napadlo tak že pošlu první bajt s adresou odkud chci vyčítat s nastavenym bitem pro čtení, a pak poslat nějakej nevýznamnej bajt, třebas nuly nebo jedničky, a tim bych generoval hodiny a RTCčko by vysílalo, ale to nevim jestli je tak uplně správně.

(PIC18F4620, RTC DS1306, MPLAB assembler)

cau, myslim ze to tak bylo , mastr poslal prikaz ze chce cist a pak se posilalo jen 0xff a cetlo …+ ohlidat SS jestli se pouziva

ahaaa, takže sem to vyzkoušel a už to něco vyčítá, a vypadá to že asi i dobrý data, vyčítám vteřiny a posílám si je seriovou linkou do PC a je vidět jak se hodnota po vteřinách zvyšuje.

takže jestli je toto řešení správné a takto se používá, tak děkuji za ujištění :slight_smile:

a jestli se mohu eště zeptat, používají se na tuto komunikaci pullup rezistory ??? viděl sem dost zapojení a někde byly a někde ne,

ja zas vydel SPI s pulldown tak pullup, davaj se tam pro zajisteni logicke urovne kdy na strane uP sou piny ve vysoke impedanci, to jestly jsou tam treba se koukni do DS k DS1306… , pokud tam budou a komunikace bude v poratku chybu neudelas

vyzkouším oboje a uvidí se, v DS nic nepíšou, jen že RTC má na pinu SS interní rezistor.

ohledně rezistorů se podivej do datasheetu k jednočipu, něco mi ale řiká, že u Microchipů to potřeba není…
K SPI: mrkni jak funguje. Jsou to dva posuvný registry, jeden u slave a jeden u master, když pak cvakají hodiny tak se postupně po bitu prohodí(co bylo u mastera bude u slave) z toho vyplívá, že pokud chceš číst, tak musíš něco odesílat :wink: v podstatě tak můžeš odeslat i novej příkaz, když si ty data vyzvedáváš

ani v DS k procíku sem nenašel zmínku o rezistorech, jen u I2C, tam je to jasný, Na blokové schéma jak funguje SPI sem koukal, pak sem se i někde dočet, že je možné přesouvat data zároveň, proto mě právě napadlo jestli při přijímání nemám něco odesílat abych tim generoval hodinovej signál. No ted už je mě funkce SPI docela jasná, přes víkend vyzkoušim a proměřim.
Jináč děkuji za reakce :wink: