|
Виж темите без отговор | Виж активните теми
Дата и час: Пет Авг 21, 2026 9:56 am
| Автор |
Съобщение |
|
Grubi
Ранг: Форумен бог
Регистриран на: Чет Мар 16, 2006 9:42 am Мнения: 12118 Местоположение: Гьотеборг
|
 Re: Прототипен SPI драйвер
Да, това май ми стана ясно. Следващото е как да поддържаш комуникацията жива - т.е. да им нулираш WDT, там има друг таймер - от 200мсек до 2 сек или нещо такова. Ако валидната комуникация, изчезне - това изключва релетата. Плюс CRC. Както казах ще ми отнеме време, докато рабера, че и го подкарам на каквато и да е платформа. Имам AARDARK интерфейс, но и тай няма май да ми помогне много ако не знам какви ги върша. https://www.totalphase.com/products/aardvark-i2cspi/
|
| Чет Юли 11, 2024 2:20 pm |
|
 |
|
itso.t
Ранг: Форумен бог
Регистриран на: Чет Фев 03, 2005 2:21 am Мнения: 12825 Местоположение: София
|
 Re: Прототипен SPI драйвер
На някакъв интервал четеш статуса на някой регистър или ако има директен достъп за изчистване на WDT го нулираш. Не му се стягай толкова. Вероятно звучи по-страшно отколкото е на практика.
|
| Чет Юли 11, 2024 2:42 pm |
|
 |
|
Grubi
Ранг: Форумен бог
Регистриран на: Чет Мар 16, 2006 9:42 am Мнения: 12118 Местоположение: Гьотеборг
|
 Re: Прототипен SPI драйвер
Така е, шубето е голям страх.
|
| Чет Юли 11, 2024 2:59 pm |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6107
|
 Re: Прототипен SPI драйвер
 |  |  |  | Код: #include <SPI.h> SPIClass SPI( ??? );
#define CS_PIN ??? #define CS_INIT() pinMode(CS_PIN, OUTPUT); #define CS_LOW() digitalWrite(CS_PIN, 0) #define CS_HIGH() digitalWrite(CS_PIN, 1)
uint16_t read(uint8_t address){ CS_LOW(); //? always uint16_t v; SPI.transfer(address); // Transmit the Address(first byte) v = (uint16_t)SPI.transfer(0xFF) << 8; // Transmit dummy data second byte & Receive MSB v |= (uint16_t)SPI.transfer(0xFF); // Transmit dummy data third byte & Receive LSB CS_HIGH(); //? //? 625 ns settling delay return v }
void write(uint8_t address, uint16_t data){ CS_LOW(); //? always SPI.transfer(address) // Transmit First Byte, address Byte SPI.transfer((uint8_t)(data >> 8)) // Transmit Second Byte, upper data Byte SPI.transfer((uint8_t)(data)) // Transmit Third Byte, lower data Byte or CRC: A, B, CMD CS_HIGH(); //? //? 625 ns settling delay }
void setup(){ CS_INIT(); SPI.setClockDivider( ??? ); // 1MHz SPI.setBitOrder( ??? ); // LSBFIRST or MSBFIRST SPI.setDataMode( ??? ); // SPI_MODE0,1,2,3? SPI.begin(); CS_LOW(); //? always
int v = read(0) Serial.print(v) }
|  |  |  |  |
_________________ main[-1u]={1};
|
| Чет Юли 11, 2024 4:16 pm |
|
 |
|
d_jelev
Ранг: Форумен бог
Регистриран на: Нед Окт 25, 2009 1:48 pm Мнения: 1073
|
 Re: Прототипен SPI драйвер
Grubi, смени локацията на темата. Не е за обяви, определено!
|
| Пет Юли 12, 2024 12:03 am |
|
 |
|
Grubi
Ранг: Форумен бог
Регистриран на: Чет Мар 16, 2006 9:42 am Мнения: 12118 Местоположение: Гьотеборг
|
 Re: Прототипен SPI драйвер
Не съм админ, някой админ да я смени. Тя работата стана малко като с моя доктор - аз кашлям, той ми отваря книгата и вика прочети какво ти има  Само не знам защо всеки път преди да изляза в отпуска сам си причинявам проблеми... Благодаря за всички съвети, ще гледам да се справя и ще питам пак, ако нещо има. Мисля, че е добра тема за учене - тия драйвери ще се увеличават или ще пропаднат тотално, когато заменят релетата с транзистори.
|
| Пет Юли 12, 2024 8:38 am |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 30 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|