#include <stdint.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <getopt.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <linux/types.h>
#include <linux/spi/spidev.h>
static void pabort(const char *s)
{
perror(s);
abort();
}
static uint32_t mode;
static uint8_t bits = 8;
static uint32_t speed = 100000;
static uint16_t delay;
uint8_t reg_addr_value[16] = {
0};
typedef struct _spi_t8a34002_reg {
unsigned int reg_size;
unsigned long reg_addr;
unsigned long reg_value;
unsigned int reg_flag;
}spi_t8a34002_reg_t;
spi_t8a34002_reg_t spi_t8a34002_reg_value[] =
{
{
0x4, 0x7C, 0x00C01020, 1},
{
0x4, 0x7C, 0x00C11020, 1},
{
0x2, 0x60, 0x0000, 1},
{
0x6, 0x64, 0x000000000000, 1},
{
0x2, 0x6C, 0x0000, 1},
{
0x1, 0x71, 0x00, 1},
{
0x4, 0x7C, 0x80C11020, 1},
{
0x1, 0x12, 0x00, 1},
{
0x6, 0x14, 0x002D31010000, 1},
{
0x1, 0x1B, 0x00, 1},
//{0xA, 0x24, 0x000012FDED02FFFF8940},
{
0x5, 0x24, 0x000012FDED, 0},
{
0x4, 0x02, 0xFFFF8940, 1},
{
0x6, 0x30, 0x010000000000, 1},
{
0x2, 0x38, 0x0100, 1},
{
0x1, 0x3D, 0x01, 1},
//{0xA, 0x40, 0x0040420F00007D000100},
{
0x5, 0x40, 0x0040420F00, 0},
{
0x4, 0x00, 0x7D000100, 1},
{
0x2, 0x4C, 0x0101, 1},
{
0x6, 0x50, 0x40787D010000, 1},
{
0x2, 0x58, 0x0100, 1},
{
0x2, 0x5C, 0x0201, 1},
{
0x4, 0x7C, 0x00C21020, 1},
{
0x6, 0x00, 0x40787D010000, 1},
{
0x2, 0x08, 0x0100, 1},
{
0x2, 0x0C, 0x0301, 1},
//{0xA, 0x10, 0x0000093D00007D000100},
{
0x5, 0x10, 0x0000093D00, 0},
{
0x4, 0x00, 0x7D000100, 1},
{
0x2, 0x1C, 0x0401, 1},
//{0xA, 0x20, 0x0000093D00007D000100},
{
0x5, 0x20, 0x0000093D00, 0},
{
0x4, 0x00, 0x7D000100, 1},
{
0x2, 0x2C, 0x0501, 1},
{
0x2, 0x38, 0x0100, 1},
{
0x2, 0x3C, 0x0600, 1},
{
0x2, 0x4C, 0x0720, 1},
{
0x6, 0x50, 0x010000000000, 1},
{
0x2, 0x58, 0x0100, 1},
{
0x2, 0x5C, 0x0801, 1},
//{0xA, 0x60, 0x0040420F00007D000100},
{
0x5, 0x60, 0x0040420F00, 0},
{
0x4, 0x00, 0x7D000100, 1},
{
0x2, 0x6C, 0x0901, 1},
{
0x4, 0x7C, 0x80C21020, 1},
{
0x6, 0x00, 0x40787D010000, 1},
{
0x2, 0x08, 0x0100, 1},
{
0x2, 0x0C, 0x0A01, 1},
{
0x6, 0x10, 0x40787D010000, 1},
{
0x2, 0x18, 0x0100, 1},
{
0x2, 0x1C, 0x0B01, 1},
//{0xA, 0x20, 0x0000093D00007D000100},
{
0x5, 0x20, 0x0000093D00, 0},
{
0x4, 0x00, 0x7D000100, 1},
{
0x2, 0x2C, 0x0C01, 1},
{
0x2, 0x38, 0x0100, 1},
{
0x2, 0x3C, 0x0D00, 1},
{
0x2, 0x4C, 0x0E00, 1},
{
0x2, 0x5C, 0x0F40, 1},
{
0x1, 0x6B, 0x03, 1},
{
0x1, 0x77, 0x03, 1},
{
0x4, 0x7C, 0x00C31020, 1},
{
0x1, 0x0B, 0x03, 1},
{
0x1, 0x17, 0x03, 1},
{
0x1, 0x23, 0x03, 1},
{
0x1, 0x2F, 0x03, 1},
{
0x1, 0x38, 0x00, 1},
{
0x1, 0x3B, 0x00, 1},
{
0x1, 0x42, 0x00, 1},
{
0x1, 0x47, 0x00, 1},
{
0x1, 0x53, 0x03, 1},
{
0x1, 0x5F, 0x03, 1},
{
0x1, 0x6B, 0x03, 1},
{
0x1, 0x74, 0x00, 1},
{
0x1, 0x77, 0x03, 1},
{
0x4, 0x7C, 0x80C31020, 1},
{
0x1, 0x0B, 0x03, 1},
{
0x1, 0x17, 0x00, 1},
{
0x1, 0x23, 0x00, 1},
{
0x1, 0x2F, 0x00, 1},
{
0x1, 0x33, 0x02, 1},
{
0x1, 0x36, 0x00, 1},
{
0x2, 0x3B, 0x0A01, 1},
{
0x1, 0x5B, 0x00, 1},
{
0x2, 0x62, 0x2828, 1},
{
0x1, 0x67, 0x00, 1},
{
0x4, 0x7C, 0x00C41020, 1
linux用户层下通过spi配置idt8a34002
最新推荐文章于 2025-11-01 20:04:38 发布
本文详细介绍了如何通过C语言操作Linux SPI设备驱动,对IDT8a34002时钟芯片进行初始化设置,包括SPI模式、位宽、速度等,并执行了一系列寄存器读写操作。

最低0.47元/天 解锁文章
1732

被折叠的 条评论
为什么被折叠?



