Ahoj pratele,
Tady je odpoved na dotazy:
Proc dalsi protokol:
1. Neodolatelna touha vytvorit si vlastni protokol. Lezel mi v hlave a
jedina moznost jak zjistit zda by to fungovalo je... udelat to!
2. Snaha vytvorit protokol, kteremu bych rozumel na urovni bitu a
napetovych urovni (vzpominam na hlasku jednoho sitare: "Tomu nerozumi
nikdo. Ani ty co to vyvijej!").
3. Maximalni jednoduchost - takova krystalka mezi superhety. Mam pocit, ze
takove veci v IT vseobecne chybi. Spise si doma clovek postavi krystalku
ale "postavit superhet, to je quest" jak se vyjadril jeden problematiky
znaly clovek.
4. Moznost komunikace sebedebilnejsich zarizeni, nehrozi problem
synchronizace (viz. popis).
5. Kdyz se cokoliv pokazi, mam k dispozici ihned autora abych mu vynadal
24/7.
6. Je to podobne, jak kdyz nekdo leze na skalu. I kdyz nepokori rekord
nebo po nem nenazvou nove obevene uzemi, dela mu to dobre.
Jaky problem jsem vyresil:
zatim uprimne jen pretlak v hlave - porad mi vrtalo hlavou zda by to tak
mohlo fungovat.
Planuji vymyslet rozlicna zarineni, kde by byl pouzit a tajne doufam ze to
chytne dalsi.
Napadlo mne, ze by bylo mozne propojovat ruzne plattformy s dostatecnym
poctem I/O;
Porovnani s existujicimi protokoly:
Castecne to pripomina SPI, ale s oboustrannym potvrzovanim.
Kamarad tvrdi, ze to pripomina PCI Express.
Za porovnani s jinymi protokoly budu moc vdecny!
Jake plattformy jsem pouzil:
Pro Master - Raspberry PI
Pro Slave - Atmega8
Melo by fungovat vsechno co ma dost I/O pinu.
Nyni nasleduje dokumentace. Psal jsme ji jen pro sebe a tak neni prilis
typograficky upravena.
Pokud nekomu nebude neco jasne, ptejte se.
MISO
-----------------------------
MOSI
-----------------------------
SCK
-----------------------------
ACK
--------------
CHIPSELECT
-----------------------------
Set up of IO on M and S:
M S
INPUT MISO OUTPUT
OUTPUT MOSI INPUT
OUTPUT SCK INPUT
INPUT ACK OUTPUT
Initial State before communication 's start on both M and S:
SCK and MOSI gets HIGH, causing slave to put MISO and ACK high.
HIGH = 1
LOW = 0
MISO = HIGH
MOSI = HIGH
SCK= HIGH
ACK= HIGH
CS=HIGH
Slave waits for CS to be HIGH
Slave waiting for SCK to be HIGH if necessary.
Slave sets MISO and ACK HIGH when SCK is set HIGH.
End of byte transmission:
MISO = LOW
MOSI = LOW
SCK= LOW
ACK= LOW
Slave sets ACK HI (if not already).
SLAVE sets MISO HI (if not already).
Master sets SCK LOW.
Slave sets ACK LOW
Master sets MOSI LOW (if not already).
SLAVE sets MISO LOW (if not already).
Communication:
==== sending of byte MASTER -> SLAVE ====
Master Slave
1] MOSI - set first bit (high = 1, low = 0)
2] SCK toggled (inverted)
3] BIT received from MOSI
4] ACK toggled that bit has been received
5] Repeat above for remaining bits
6]SCK is set to LOW after 8th bit to be able to leave the cycle without
starting again
7]ACK is set to 0
8] waiting until ACK is 1
9]MISO is set to 0
10] waiting util MISO is 1
SCK is set to HIGH to send another byte
When CS is set LO then slave aborst communication
-check for CS must be implemented in all of waiting loops.
==== sending of byte SLAVE -> MASTER ====
Slave waits for CS to be HIGH
Slave waiting for SCK to be HIGH if necessary.
Slave sets MISO and ACK HIGH when SCK is set HIGH.
necessary bits are sent from slave to master then:
Master Slave
1 ] MISO - set first bit (high = 1, low = 0)
2]ACK is toggled
3] BIT received from MISO
4] SCK toggled
5] Repeat above for remaining bits
6]SCK is set to LOW after 8th bit to be able to leave the cycle without
starting again
7]ACK is set to 0
8] waiting until ACK is 1
9]MISO is set to 0
10] waiting util MISO is 1
To je vse.
Pokud z prace odejdu zitra vecer rozume, tak to prinesu do brm ukazat.
V soucasne dobe mam zarizeni schopne prijmout prikaz pro echo - prijmout
talsi byte a poslat jej zpet.
Zatim ahoj and happy hacking,
Mr.Holub
On Wed, 23 Sep 2015 23:21:17 +0200, George Blackhead
<blackh...@blackhead.cz> wrote:
Cau
Posli popis, me to zajima!
Diky!
BH
-----Original Message-----
From: Brmlab [mailto:brmlab-boun...@brmlab.cz] On Behalf Of Mr.Holub
Sent: Wednesday, September 23, 2015 9:54 PM
To: brmlab@brmlab.cz
Subject: [Brmlab] Vymyslel jsme si vlastni prenosovy protokol - byl by
zajem o prednasku?
Ahoj,
prave jsem zprovoznil na univrzalni desce prenos pomoci protokolu HCP
(Holub's Communication Protocol).
Mym cilem bylo vytvorit jednoduchy seriovy protokol, kde nema casovani
vliv (obe strany cekaji jak je treba.
Libilo by se Vam, kdybych to napr. tento patek prinesl vecer to Brmlabu a
predvedl/popsal?
Zatim ma jedno testovaci zarizeni s prikazem prijmout 1B dat a poslat
zpet.
Pokud chcete, predem poslu jeho popis.
Mr.Holub
---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
_______________________________________________
Brmlab mailing list
Brmlab@brmlab.cz
https://brmlab.cz/cgi-bin/mailman/listinfo/brmlab
_______________________________________________
Brmlab mailing list
Brmlab@brmlab.cz
https://brmlab.cz/cgi-bin/mailman/listinfo/brmlab
--
Using Opera's mail client: http://www.opera.com/mail/
---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
_______________________________________________
Brmlab mailing list
Brmlab@brmlab.cz
https://brmlab.cz/cgi-bin/mailman/listinfo/brmlab