Найдено 76 результатов

warptred12
Пт мар 15, 2024 13:15:55
Форум: AVR
Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
Ответы: 137
Просмотры: 26993

Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313

На данный момент проблема заключается в том, что slave не может обработать посылки от мастера, я модульно тестировал блоки кода программы и нормально работает пока что только код отвечающий за генерацию частоты. Снизу скину код мастера atmega128 и attiny2313.
Мастер:
#include <mega128.h>
#include ...
warptred12
Вт мар 12, 2024 17:11:07
Форум: AVR
Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
Ответы: 137
Просмотры: 26993

Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313

вопрос открыт еще на данный момент, сижу думаю
warptred12
Ср июл 12, 2023 19:25:21
Форум: AVR
Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
Ответы: 137
Просмотры: 26993

Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313

a797945 , вот что я мастером отправляю:
dFi.w = F*1 ;
PORTB &= ~(1<<PORTB0);
SPI_MasterTransmit(Cnt & 0x03);
SPI_MasterTransmit(dFi.b[0]);
SPI_MasterTransmit(dFi.b[1]);
SPI_MasterTransmit(dFi.b[2]);
SPI_MasterTransmit(0xff); //пустышка
SPI_MasterTransmit(0xff); // младший байт из fG
SPI ...
warptred12
Ср июл 12, 2023 10:45:00
Форум: AVR
Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
Ответы: 137
Просмотры: 26993

Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313

a797945 , вот что получилось.

код слейва:
#include <mega8.h>
#include <math.h>
#include <io.h>
#include <delay.h>

#define F_CPU (8000000)
#define VFG_TIMER_MAX (65535)
#define VFG_DDR DDRD
#define VFG_PORT PORTD

volatile unsigned char b1,b2,b3,b4;
volatile unsigned char i=0;
volatile unsigned ...
warptred12
Вт июл 11, 2023 22:01:51
Форум: AVR
Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
Ответы: 137
Просмотры: 26993

Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313

veso74 , ну да, в датамемори все тоже самое что и на spi анализаторе. Просто на spi анализаторе можно время приема-передачи увидеть и все наглядней. А изза того что я отправляю обратно данные обратно на мастера, они могут искажаться ?
a797945 , завтра попробую подумать, как это можно сделать ...
warptred12
Вт июл 11, 2023 19:06:53
Форум: AVR
Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
Ответы: 137
Просмотры: 26993

Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313

a797945, а если использовать внешнее прерывание INT1, например ?
Вот что получилось на выходе.
warptred12
Вт июл 11, 2023 18:40:18
Форум: AVR
Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
Ответы: 137
Просмотры: 26993

Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313

a797945 , вот что получается на выходе.
Код мастера:
#include <mega128.h>
#include <io.h>
#include <delay.h>

volatile unsigned char reqTr,reqTm;

struct Tmr_t {
unsigned char n;
double F;
};

struct Tmr_t T;

unsigned char chrT;

typedef union //объединение
{
unsigned long int w ; // w as ...
warptred12
Вт июл 11, 2023 12:35:32
Форум: AVR
Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
Ответы: 137
Просмотры: 26993

Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313

veso74, да, боюсь еще хуже будет, сейчас весь код вроде как до минимума сокращен, а вот если что-то еще добавлять, будут дополнительные проблемы.
warptred12
Вт июл 11, 2023 08:28:39
Форум: AVR
Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
Ответы: 137
Просмотры: 26993

Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313

a797945 , перепробовал много вариаций, предложенного вами варианта, но итог все равно тот же. Еще и протеус начал ругаться PC=0x0190 SPDR Write collision. Written data(0x00) is ignored, как он может ругаться, что 0 записывается в SPDR, если в коде я нигде не записываю 0.

Код слейва:
#include ...
warptred12
Пн июл 10, 2023 20:13:48
Форум: AVR
Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
Ответы: 137
Просмотры: 26993

Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313

a797945, как попробую отпишусь.
warptred12
Пн июл 10, 2023 20:00:29
Форум: AVR
Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
Ответы: 137
Просмотры: 26993

Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313

a797945, все равно, неправильно читает данные.
warptred12
Пн июл 10, 2023 19:57:02
Форум: AVR
Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
Ответы: 137
Просмотры: 26993

Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313

a797945, не компилится, если внутрь цикла for их засовывать.

Добавлено after 1 minute 5 seconds:
а, нет компилируется
warptred12
Пн июл 10, 2023 19:47:51
Форум: AVR
Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
Ответы: 137
Просмотры: 26993

Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313

a797945, вот такой вот результат получился, немного отличается от прошлых результатов, хотябы тем, что протеус больше не ругается.
warptred12
Пн июл 10, 2023 19:19:12
Форум: AVR
Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
Ответы: 137
Просмотры: 26993

Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313

a797945 , ситуация та же. Непонятно почему слейв даже просто байты пустышки неверно сохраняет.

мастер:
#include <mega128.h>
#include <io.h>
#include <delay.h>

volatile unsigned char reqTr,reqTm;

struct Tmr_t {
unsigned char n;
double F;
};

struct Tmr_t T;

unsigned char chrT;

typedef ...
warptred12
Пн июл 10, 2023 08:44:06
Форум: AVR
Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
Ответы: 137
Просмотры: 26993

Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313

a797945 , некоторые байты просто не записываются, скриншот приложу. Так же протеус ругается PC=0x0136 SPDR Write collision. Written data(0xFF) is ignored. Это опять слейв шлет обратно мусорные байты в регистр данных или данные просто не сохраняются в определенные биты памяти ?

Актуальный код ...
warptred12
Пт июл 07, 2023 16:53:15
Форум: AVR
Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
Ответы: 137
Просмотры: 26993

Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313

a797945 , я не понимаю как и где мне его посмотреть, когда я принимаю полученные байты на слейве - я присваиваю их значение элементам массива master_array и отправляю присвоенные значения обратно, а потом уже склеиваю их в переменной fG, эти элементы массива я никак не меняю, но при передаче этих ...
warptred12
Пт июл 07, 2023 16:21:45
Форум: AVR
Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
Ответы: 137
Просмотры: 26993

Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313

a797945, ну тогда так получается: fG = (master_arr[1])|(master_arr[2] << 8)|(master_arr[3] << 16);
warptred12
Пт июл 07, 2023 15:13:06
Форум: AVR
Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
Ответы: 137
Просмотры: 26993

Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313

Изменил код, теперь время получения посылки и отправки ее обратно мастеру - совпадают. Но почему-то нулевой байт посылки, отправляемой обратно мастеру всегда неверен. Например, мастер отправляет посылку: 02 89 41 00, а вот слейв отправляет обратно мастеру: 00 02 89 41 - это значит, что прочитанное ...
warptred12
Пт июл 07, 2023 09:37:16
Форум: AVR
Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
Ответы: 137
Просмотры: 26993

Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313

Подправил код, добавил в прерывание проверку 1-го входящего байта, добавил еще 1 счётчик flagRT, чтобы попытаться соблюсти в точности последовательность входящих байт, изменил формулу расчёта fG, но все равно слейв считывает мусор. Вот измененный код:
#include <mega8.h>
#include <math.h>
#include ...

Перейти к расширенному поиску