Pertanyaan Jam Teoretis

8

Hanya pertanyaan teoretis lebih dari segalanya. Apakah sinyal clock harus memiliki lebar yang sama antara peeks dan palung?

Sinyal jam normal dengan data (di bawah):

Jam Normal

Sinyal jam acak dengan data (data masih sinkron dengan jam) (di bawah):

Jam acak

Akankah chip (semua chip pada umumnya, tetapi sebagai contoh, serial paralel keluar register geser) masih berperilaku normal dengan jam yang lebih acak? Jika tidak, mengapa tidak?

Sekali lagi, bukan karena saya berencana untuk melakukan ini, tetapi secara teoritis apakah ada alasan bahwa saya tidak dapat menggunakan pin ouput standar pada Raspberry Pi / Arduino sebagai jam dan pin lain sebagai data?

Contoh kode semu:

fakeClockPin = 1;
dataPin = 2;

setPin(dataPin, HIGH);
setPin(fakeClockPin, HIGH);
sleep(1); //1ms
setPin(fakeClockPin, LOW);
sleep(1); //1ms

setPin(dataPin, LOW);
setPin(fakeClockPin, HIGH);
sleep(1); //1ms
setPin(fakeClockPin, LOW);
sleep(1); //1ms

setPin(dataPin, HIGH);
setPin(fakeClockPin, HIGH);
sleep(1); //1ms
setPin(fakeClockPin, LOW);
sleep(1); //1ms

setPin(dataPin, LOW);
setPin(fakeClockPin, HIGH);
sleep(1); //1ms
setPin(fakeClockPin, LOW);
sleep(1); //1ms
vimist
sumber
Tidak semua jam simetris. Beberapa mikroprosesor lama membutuhkan siklus tugas 66% (jika saya ingat benar) jam.
HL-SDK
1
Teknik yang dijelaskan oleh pseudo-code Anda disebut bit banging , dan itu sah untuk dilakukan.
Phil Frost

Jawaban:

12

Sinyal jam Anda memicu-tepi, dalam contoh Anda di tepi positif. Anda bisa tahu karena data harus stabil dalam waktu singkat sebelum tepi jam ( waktu setup ), dan jika jam akan mengunci tepi jatuh itu akan bertepatan dengan perubahan data Anda.

Kecuali untuk waktu setup ada beberapa kendala: jam mungkin tetap tinggi selama yang diinginkan. Namun Anda harus memiliki waktu rendah minimum, sebelum kenaikan berikutnya.

radagast
sumber
7

Sebuah chip akan berperilaku normal selama Anda mengoperasikannya dalam 'parameter operasi normal' seperti yang ditentukan dalam lembar data. Kebanyakan chip hanya memiliki persyaratan tentang waktu minimum antara tepi jam, dan waktu setup (data stabil ke tepi jam aktif). Tidak ada yang dilanggar dengan meregangkan jam.

Dalam praktiknya, sinyal clock yang dihasilkan perangkat lunak akan selalu memiliki variasi waktu yang besar. Poin pentingnya adalah Anda tidak melakukan hal terlalu cepat untuk chip eksternal. Tetapi waktu register geser tipikal diekspresikan dalam 10's dari ns, yang merupakan beberapa pesanan lebih cepat dari 1 ms yang Anda amati.

Wouter van Ooijen
sumber
1

Sebuah chip sederhana dengan "pin jam" tidak peduli ketika ujung jam tiba, hanya saja itu yang terjadi. Bahkan, pulsa isochronous lebih untuk kepentingan perangkat lunak atau perangkat keras yang lebih kompleks, misalnya perangkat berbasis PLL.

Ignacio Vazquez-Abrams
sumber