ZMEMW16
Вторник 18 августа 2015 г., 21:08
Я пытаюсь поговорить с I2C AT24C08, встроенным в доску, которая
STM32F103ZET6 Минимальная плата разработки системы ARM STM32 Cortex-M3 M75
от
http: // www.eBay.сопутствующий.Великобритания/ITM/291305557264? ... Ebidx%3ait
Сканер I2C (из примеров) показывает это Сканирование...
Устройство I2C найдено на адресе 0x50
Устройство I2C найдено на адресе 0x51
Устройство I2C найдено на адресе 0x52
Устройство I2C найдено на адресе 0x53
сделанный Адрес устройства известен как 0x50, так что это просто плохое декодирование адреса или действительно возвращает 4 устройства?
Я склонен к первому :-)
В листе данных говорится, что один адрес и я пытаюсь написать, а затем читать обратно из места; упоминается
Повторяемый старт.
Итак, мой код
STM32F103ZET6 Минимальная плата разработки системы ARM STM32 Cortex-M3 M75
от
http: // www.eBay.сопутствующий.Великобритания/ITM/291305557264? ... Ebidx%3ait
Сканер I2C (из примеров) показывает это Сканирование...
Устройство I2C найдено на адресе 0x50
Устройство I2C найдено на адресе 0x51
Устройство I2C найдено на адресе 0x52
Устройство I2C найдено на адресе 0x53
сделанный Адрес устройства известен как 0x50, так что это просто плохое декодирование адреса или действительно возвращает 4 устройства?
Я склонен к первому :-)
В листе данных говорится, что один адрес и я пытаюсь написать, а затем читать обратно из места; упоминается
Повторяемый старт.
Итак, мой код
C:\Users\Devan\Desktop\dfu-util-0.9-win64>dfu-util -d 0483:df11 -a 0 -s 0x08000000:leave -D test.bin
dfu-util 0.9
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuERROR, status = 10
dfuERROR, clearing status
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash "
Downloading to address = 0x08000000, size = 21544
Download [=========================] 100% 21544 bytes
Download done.
File downloaded successfully
Transitioning to dfuMANIFEST state
C:\Users\Devan\Desktop\dfu-util-0.9-win64>
Fredbox
Ср 19 августа 2015 г., 4:26
ZMEMW16
Ср 19 августа 2015 г. 8:46 утра
Я сделаю некоторое исследование с мультиметром и проверю соединения.
Все, как и ожидалось, на схему. b6/b7 to chip & 4K7 поступают от 4K67 до 3V3 PIN; Я живу с 0.64% низкий
SPI Flash определенно помечена как Winbond 25x40bvn1g
Лист данных говорит Atmel AT24C08C, 8K Serial EEPROM: внутренне организованный с 64 страницами по 16 байтов каждый, 8K требует 10-битной
Адрес слова данных для случайной адресации слов. Признание: все адреса и слова данных последовательно передаются в EEPROM и из EEPROM восьми битвами. А
Eeprom отправляет ноль, чтобы признать, что он получил каждое слово. Это происходит во время девятого цикла такта. Маленькие маленькие B-это не они (таблицы данных :-)
Я использовал PB3 в качестве триггера для OLS и получал нагрузку побочного эффекта, поэтому переключился на PG14
Линия триггера теперь единственный импульс!
Стивен
Все, как и ожидалось, на схему. b6/b7 to chip & 4K7 поступают от 4K67 до 3V3 PIN; Я живу с 0.64% низкий
SPI Flash определенно помечена как Winbond 25x40bvn1g
Лист данных говорит Atmel AT24C08C, 8K Serial EEPROM: внутренне организованный с 64 страницами по 16 байтов каждый, 8K требует 10-битной
Адрес слова данных для случайной адресации слов. Признание: все адреса и слова данных последовательно передаются в EEPROM и из EEPROM восьми битвами. А
Eeprom отправляет ноль, чтобы признать, что он получил каждое слово. Это происходит во время девятого цикла такта. Маленькие маленькие B-это не они (таблицы данных :-)
Я использовал PB3 в качестве триггера для OLS и получал нагрузку побочного эффекта, поэтому переключился на PG14
Линия триггера теперь единственный импульс!
Стивен
ZMEMW16
Ср 19 августа 2015 г. 10:51
Хотя я отправляю 0x20, анализатор OLS I2C показывает, что он появляется как 0x40
Все данные SDA, по -видимому, охватывают 8 CLK и распространяются на первый импульс для следующей передачи
Как мне отправить набор из 9 часов, так как это то, что, кажется, сместит его осталось?
Стивен
Все данные SDA, по -видимому, охватывают 8 CLK и распространяются на первый импульс для следующей передачи
Как мне отправить набор из 9 часов, так как это то, что, кажется, сместит его осталось?
Стивен
Martinayotte
Ср 19 августа 2015 г., 14:56
ZMEMW16 написал:Хотя я отправляю 0x20, анализатор OLS I2C показывает, что он появляется как 0x40
ZMEMW16
Ср 19 августа 2015 г., 17:16
24C08 отображается в 0x50 и реагирует на адреса 0x50-0x53 от i2cscanner
То, что я пытался сделать, это установить место в чипе, из которого я хочу прочитать данные.
Осложением является то, что ему нужно 10-битное место, 0x00-0x3ff, которое я интерпретирую как отправку 2 байта;
И я продолжаю видеть внедорожник после первого.
другие есть
1. Повторное начало?
2. Девять тактовых циклов, я видел только любое упоминание о 9 битах в коде бит-бит i2c
Стивен
То, что я пытался сделать, это установить место в чипе, из которого я хочу прочитать данные.
Осложением является то, что ему нужно 10-битное место, 0x00-0x3ff, которое я интерпретирую как отправку 2 байта;
И я продолжаю видеть внедорожник после первого.
другие есть
1. Повторное начало?
2. Девять тактовых циклов, я видел только любое упоминание о 9 битах в коде бит-бит i2c
Стивен
Fredbox
Ср 19 августа 2015 г., 18:16
Посмотрите на форум Ника Гаммонса здесь. Есть хорошее объяснение I2C с множеством картинок и примером использования EEPROM.
Martinayotte
Ср 19 августа 2015 г., 18:42
Хотя я не использую 24C08, а 24C512 (также по адресу 0x50), это должно быть довольно похоже. Я использую его на своем F4 без проблем.
Вот фрагмент кода:
Вот фрагмент кода:
#include
#include
#include // Core graphics library
#include // Hardware-specific library
#define TFT_CS PA2
#define TFT_RST PA4
#define TFT_DC PA3
#define TFT_SCK PA5
#define TFT_SDA PA7
#define LCDROTATION 2
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
// -----------------gps
TinyGPSPlus gps;
static const int RXPin = PB10, TXPin = PB11;
static const uint32_t GPSBaud = 9600;
SoftSerialIntAP ss(15, 16, 3); // (15, 16, 3)???
// -----------------gps
// -----------------lcd screen heading
void wyswietlaniegps()
{
tft.setTextSize(2);
tft.setTextColor(ST7735_GREEN,0x0292);
tft.setCursor(16,1);
tft.print("GPS DATA");
tft.drawLine(0,17,127,17,ST7735_GREEN);
}
// -----------------lcd screen heading
void setup()
{
Serial.begin(9600);
ss.begin(GPSBaud);
while (ss.available() > 0)
gps.encode(ss.read());
tft.initR(INITR_BLACKTAB); // start ekranu
tft.setRotation(LCDROTATION); // ustawienie obrotu ekranu
tft.fillScreen(0x0292); // wypelnienie kolorem RGB565
wyswietlaniegps();}
void loop()
{
Serial.println("TEST");
Serial.println("-----");
Serial.println(gps.location.lat(),6);
Serial.println("_____");
delay(1000);
tft.setTextSize(2);
tft.setTextColor(ST7735_GREEN,0x0292);
tft.setCursor(10,30);
tft.print(gps.location.lat(),5);
tft.setTextSize(2);
tft.setTextColor(ST7735_GREEN,0x0292);
tft.setCursor(10,60);
tft.print(gps.location.lng(),6);
tft.setTextSize(1);
tft.setTextColor(ST7735_GREEN,0x0292);
tft.setCursor(30,90);
tft.print("**TEST**");
}
ZMEMW16
Ср 19 августа 2015 г., 20:09
код
// The serial connection to the GPS device
#define ss SERIAL1 // SoftwareSerial ss(RXPin, TXPin);
...
ss.begin(GPSBaud); // this will use UART1 pins PA9/PA10
Martinayotte
Ср 19 августа 2015 г., 20:33
Ой ! Я нашел кое -что, что я полностью забыл, так как я долго использовал эти маленькие AT23C02/04/08, я использую более крупный ...
Таблица данных http: // www.атмель.com/images/doc3256.PDF упомянуто, что адресация выполняется с помощью одного байта, более высокие биты из адреса должны быть связаны с адресом eEPROM, так что это не 2 байта адресации.
Таблица данных http: // www.атмель.com/images/doc3256.PDF упомянуто, что адресация выполняется с помощью одного байта, более высокие биты из адреса должны быть связаны с адресом eEPROM, так что это не 2 байта адресации.
- 24C08.JPG (12.55 киб) просмотрено 1099 раз
ZMEMW16
Ср 19 августа 2015 г., 21:07
Это то, что биты P1/P0 в той фигуре, которую я выставляю!!
Рисунок 8-1. Адрес устройства
Площадь доступа к плотности бит 6 -битный 6 -битный 4 -битный 4 -битный 3 -битный 2 -битный 1 бит 0
8K eeprom 1 0 1 0 A2 P1 P0 R/W
На самом деле я совершенно уверен, что сделал находку на P1/P0, эта таблица - единственное место, где они встречаются
не должен был выходить из технических пабов таким образом
Стандартный доступ eEPROM: устройство EEPROM 4K и 8K требует 8-разрядного адреса устройства после начала
условие для включения чипа для операции чтения или записи. Слово адреса устройства состоит из обязательного “1010” (0xa)
Последовательность для первых четырех наиболее значимых битов (MSB), как показано на рисунке 8-1 на стр. 11. Это общепринято для всех
Устройства EEPROM.
4K EEPROM использует только биты устройства A2 и A1, а третий бит - бит адреса страницы памяти. А
Два бита адреса устройства должны сравниться с их соответствующими жестким входным выводами. PIN -код A0 не подключен.
8K EEPROM использует только адрес адреса устройства A2, а следующие два бита для адресации страницы памяти. A2
Адрес бит должен сравниться с соответствующим входным штифтом с жестким проводником. Булавки A1 и A0 не подключены.
Восьмой бит адреса устройства - это операция чтения/записи выберите бит. Операция чтения инициируется, если этот бит высок и
операция записи инициируется, если этот бит низкий.
Рисунок 8-1. Адрес устройства
Площадь доступа к плотности бит 6 -битный 6 -битный 4 -битный 4 -битный 3 -битный 2 -битный 1 бит 0
8K eeprom 1 0 1 0 A2 P1 P0 R/W
На самом деле я совершенно уверен, что сделал находку на P1/P0, эта таблица - единственное место, где они встречаются
не должен был выходить из технических пабов таким образом
Стандартный доступ eEPROM: устройство EEPROM 4K и 8K требует 8-разрядного адреса устройства после начала
условие для включения чипа для операции чтения или записи. Слово адреса устройства состоит из обязательного “1010” (0xa)
Последовательность для первых четырех наиболее значимых битов (MSB), как показано на рисунке 8-1 на стр. 11. Это общепринято для всех
Устройства EEPROM.
4K EEPROM использует только биты устройства A2 и A1, а третий бит - бит адреса страницы памяти. А
Два бита адреса устройства должны сравниться с их соответствующими жестким входным выводами. PIN -код A0 не подключен.
8K EEPROM использует только адрес адреса устройства A2, а следующие два бита для адресации страницы памяти. A2
Адрес бит должен сравниться с соответствующим входным штифтом с жестким проводником. Булавки A1 и A0 не подключены.
Восьмой бит адреса устройства - это операция чтения/записи выберите бит. Операция чтения инициируется, если этот бит высок и
операция записи инициируется, если этот бит низкий.
ZMEMW16
Ср 19 августа 2015 г., 21:16
Это также объясняет ответы 0x50 - 0x53
Спасибо
Спасибо
Rogerclark
Ср 19 августа 2015 г. 22:04
Я погуглил, были ли существующие библиотеки для этого устройства, и нашел 2 или 3 разных библиотеки.
ИМХО, это, вероятно, работа, рассматривая либеральные либера
ИМХО, это, вероятно, работа, рассматривая либеральные либера
Martinayotte
Ср 19 августа 2015 г., 23:24
Да, я видел некоторое время назад, которые поддерживают все различные поведения чипов, просто предоставив ChipNo в конструкторе.
Я постараюсь найти его снова, либо на своих дисках, либо в сети ...
Итак, @zmemw16, у вас была возможность сделать реальное чтение/написать в свой ?
Я постараюсь найти его снова, либо на своих дисках, либо в сети ...
Итак, @zmemw16, у вас была возможность сделать реальное чтение/написать в свой ?
ZMEMW16
Ср 19 августа 2015 г., 23:46
Итак, вот как выглядят ваши процедуры сейчас
#include
// -----------------gps
TinyGPSPlus gps;
#define ss3 Serial3
static const uint32_t GPSBaud = 9600;
// -----------------gps
void setup()
{
Serial.begin(9600);
ss3.begin(GPSBaud);
while (ss3.available() > 0)
gps.encode(ss3.read());
}
void loop()
{
Serial.println("TEST");
Serial.println(gps.location.lat(),6);
Serial.println("_____");
delay(1000);
}
Martinayotte
Чт 20 августа 2015 г. 12:04
ZMEMW16 написал:]
аполы, но >>0 казались посторонними :-)
аполы, но >>0 казались посторонними :-)
ZMEMW16
Чт 20 августа 2015 г. 12:08
Я думал, что это выглядело немного в одной из ваших ссылок
Стивен
Стивен
Martinayotte
Чт 20 августа 2015 12:21
Martinayotte написал:Да, я видел некоторое время назад, которые поддерживают все различные поведения чипов, просто предоставив ChipNo в конструкторе.
Я постараюсь найти его снова, либо на своих дисках, либо в сети ...
Я постараюсь найти его снова, либо на своих дисках, либо в сети ...
Rogerclark
Чт 20 августа 2015 г., 21:41
Мартин
Спасибо
Я постараюсь проверить эту библиотеку на выходных. У меня есть несколько F103VET платы, из -за вина на eBay, а также 1 x F103ZET, все из которых имеют внешние Eeproms
Спасибо
Я постараюсь проверить эту библиотеку на выходных. У меня есть несколько F103VET платы, из -за вина на eBay, а также 1 x F103ZET, все из которых имеют внешние Eeproms
ZMEMW16
Пт 21 августа 2015 1:49
Я добился некоторого успеха с этими процедурами, однако у меня постоянно появляется NACK.
Мне нужно снова посмотреть на диаграммы.
У меня также есть пара или более из 103 ветеринаров & Zet Boards, один или несколько имеют ЖК -подключения.
В ЖК -соединениях существует серьезный вариант. 32/36/37/40 PINS, 9 или 16 линий данных, SPI,/RD,/WR, Touch и т. Д
мой следующий вопрос: как узнать, как водить его? Я посмотрел на Cubemx, и, похоже, это было
капризы ветра относительно того, как настроен FMSC?
Но я подозреваю, что это еще одна ветка....
Стивен
Мне нужно снова посмотреть на диаграммы.
У меня также есть пара или более из 103 ветеринаров & Zet Boards, один или несколько имеют ЖК -подключения.
В ЖК -соединениях существует серьезный вариант. 32/36/37/40 PINS, 9 или 16 линий данных, SPI,/RD,/WR, Touch и т. Д
мой следующий вопрос: как узнать, как водить его? Я посмотрел на Cubemx, и, похоже, это было
капризы ветра относительно того, как настроен FMSC?
Но я подозреваю, что это еще одна ветка....
Стивен
Rogerclark
Пт 21 августа 2015 1:55
Ваш лучший вариант на F103VET и Zet пока не подойдет по маршруту Cubemx, если вы не хотите SDIO или, возможно, (хотя может иметь проблемы, поскольку он делится своей оперативной памятью с USB, что делает их практически эксклюзивным аппаратным обеспечением)
SPI и I2C прекрасно работают в кленовом ядре.
Различные дисплеи были перенесены, но в основном они являются разнообразием интерфейса I2C и SPI, однако я думаю, что несколько человек исследуют портирование некоторых из либеров для дисплеев параллельных соединений
У меня есть один из этих 3.2IN Touch + LCD + SD Экраны, которые имеют 16-битный путь данных к ЖК-дисплею, но у меня просто нет времени даже подключить эту вещь, не говоря уже о том, чтобы начать смотреть на библиотеки ;-(
SPI и I2C прекрасно работают в кленовом ядре.
Различные дисплеи были перенесены, но в основном они являются разнообразием интерфейса I2C и SPI, однако я думаю, что несколько человек исследуют портирование некоторых из либеров для дисплеев параллельных соединений
У меня есть один из этих 3.2IN Touch + LCD + SD Экраны, которые имеют 16-битный путь данных к ЖК-дисплею, но у меня просто нет времени даже подключить эту вещь, не говоря уже о том, чтобы начать смотреть на библиотеки ;-(
ZMEMW16
Пт 21 августа 2015 г., 3:20 утра
Мой папа был инженером -механиком, который приобретал инструменты обычно древние; я, не практичный мех
Кто пошел по маршруту компьютеров, программного и аппаратного интерфейса - я, кажется, собираю разные электроники.
Держите меня от слишком много телевизионного дивана в течение долгих зимних вечеров :-)
Итак, у меня есть один или два 3.2 & Другие размеры TFT LCD + Touch + SD также
На самом деле я смотрел на Cubemx, так как мне приходится на это, что в какой -то момент эти «улучшенные» доски должны быть использованы, и как мы фактически можем реконструировать «адресация» улучшений.
Мысли из вариации LCD -разъемов, которые у меня есть до сих пор,
Мне нужно найти несколько 40 кабелей IDE, лишних длинных и трех разъемов.
Что действительно облегчит работу, так это обширные операции, 8 & 16 битов; может это уже существует?
Может быть, способ слияния «битов», чтобы вы могли прочитать/написать 8 или 16 битов, скрываясь так, как они могут быть разделены
PA0-PA3, PB4-PB7, PC0, PC3, PD4-PD9.
Мое оправдание это 0415
Стивен
Кто пошел по маршруту компьютеров, программного и аппаратного интерфейса - я, кажется, собираю разные электроники.
Держите меня от слишком много телевизионного дивана в течение долгих зимних вечеров :-)
Итак, у меня есть один или два 3.2 & Другие размеры TFT LCD + Touch + SD также
На самом деле я смотрел на Cubemx, так как мне приходится на это, что в какой -то момент эти «улучшенные» доски должны быть использованы, и как мы фактически можем реконструировать «адресация» улучшений.
Мысли из вариации LCD -разъемов, которые у меня есть до сих пор,
Мне нужно найти несколько 40 кабелей IDE, лишних длинных и трех разъемов.
Что действительно облегчит работу, так это обширные операции, 8 & 16 битов; может это уже существует?
Может быть, способ слияния «битов», чтобы вы могли прочитать/написать 8 или 16 битов, скрываясь так, как они могут быть разделены
PA0-PA3, PB4-PB7, PC0, PC3, PD4-PD9.
Мое оправдание это 0415
Стивен
Rogerclark
Пт 21 августа 2015 г., 3:57
Можно писать широкий порт, но для него нет API
Вам нужно написать в реестр выходных данных, но это действительно просто, я думаю, это что -то вроде
Вам нужно написать в реестр выходных данных, но это действительно просто, я думаю, это что -то вроде
uint32_t time;
void loop()
{
if ( (millis()-time)<1000 )
{
if (ss3.available())
gps.encode(ss3.read());
}
time = millis();
Serial.println("TEST");
Serial.println(gps.location.lat(),6);
Serial.println("_____");
}