Отговори на тема  [ 21 мнения ]  Отиди на страница Предишна  1, 2
Прототипен SPI драйвер 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Мар 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
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 03, 2005 2:21 am
Мнения: 12825
Местоположение: София
Мнение Re: Прототипен SPI драйвер
Grubi написа:
...Следващото е как да поддържаш комуникацията жива - т.е. да им нулираш WDT, там има друг таймер - от 200мсек до 2 сек или нещо такова. Ако валидната комуникация, изчезне - това изключва релетата...

На някакъв интервал четеш статуса на някой регистър или ако има директен достъп за изчистване на WDT го нулираш.

Не му се стягай толкова. Вероятно звучи по-страшно отколкото е на практика.


Чет Юли 11, 2024 2:42 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Мар 16, 2006 9:42 am
Мнения: 12118
Местоположение: Гьотеборг
Мнение Re: Прототипен SPI драйвер
Така е, шубето е голям страх.


Чет Юли 11, 2024 2:59 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 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
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Окт 25, 2009 1:48 pm
Мнения: 1073
Мнение Re: Прототипен SPI драйвер
Grubi, смени локацията на темата. Не е за обяви, определено!


Пет Юли 12, 2024 12:03 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Мар 16, 2006 9:42 am
Мнения: 12118
Местоположение: Гьотеборг
Мнение Re: Прототипен SPI драйвер
Не съм админ, някой админ да я смени.
Тя работата стана малко като с моя доктор - аз кашлям, той ми отваря книгата и вика прочети какво ти има ;)
Само не знам защо всеки път преди да изляза в отпуска сам си причинявам проблеми...

Благодаря за всички съвети, ще гледам да се справя и ще питам пак, ако нещо има. Мисля, че е добра тема за учене - тия драйвери ще се увеличават или ще пропаднат тотално, когато заменят релетата с транзистори.


Пет Юли 12, 2024 8:38 am
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 21 мнения ]  Отиди на страница Предишна  1, 2

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 30 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни